| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- hin
- nlp
- food recommender system
- digital health
- graphrag
- Rag
- mature-food
- DeepFM
- yum-me
- heterogeneous graph attention network
- food recommendation system
- heterogeneous graph
- heterogeneous graph neural network
- retrieval augmented generation
- GenAI
- Neo4j
- fooddist
- graph
- retrieval-augmented generation
- Machine Learning
- μΆμ² μμ€ν
- Factorization Machine
- μΆμ²μμ€ν
- gat
- Today
- Total
π μνμμ AI 곡λΆνκΈ°
Heterogeneous Graph Attention Networkμ μ΄ν΄μ νμ© λ³Έλ¬Έ
Heterogeneous Graph Attention Networkμ μ΄ν΄μ νμ©
FoodAI 2025. 4. 7. 22:09π‘λ€μ΄κ°λ©°
μ€λλ μ°λ¦¬λ μν, μμμ, μλ¦¬λ² λ± λ€μν μμκ° λ³΅μ‘νκ² μ½ν μλ μν μ 보μ λ°λ€ μμ μ΄κ³ μμ΅λλ€. μ΄λ¬ν μ 보λ₯Ό ν¨κ³Όμ μΌλ‘ λΆμνκ³ νμ©νκΈ° μν΄μλ λ¨μν λ°μ΄ν° λΆμμ λμ΄μ μ§λ₯μ μΈ μ κ·Όλ²μ΄ νμν©λλ€. μ΄κΈ°μ’ κ·Έλν μ΄ν μ λ€νΈμν¬(Heterogeneous Graph Attention Network)λ μλ‘ λ€λ₯Έ μ νμ λ°μ΄ν° κ°μ 볡μ‘ν κ΄κ³λ₯Ό λͺ¨λΈλ§νλ κ°λ ₯ν λꡬλ‘, μμ λ° μν λΆμΌμμ νλͺ μ μΈ λ°μ μ κ°μ Έμ¬ μ μλ κΈ°μ μ λλ€. μ΄ κΈμμλ μ΄κΈ°μ’ κ·Έλν μ΄ν μ λ€νΈμν¬μ κΈ°λ³Έ κ°λ λΆν° μμ μ 보 λΆμμ μ΄λ»κ² μ μ©ν μ μλμ§ μ΄ν΄λ³΄κ² μ΅λλ€.
I. Heterogeneous Information Network(HIN) μ΄ν΄νκΈ°
Heterogeneous Information Network (HIN, μ΄κΈ°μ’ μ 보 λ€νΈμν¬)λ μλ‘ λ€λ₯Έ μ ν(νμ )μ λ Έλμ μ£μ§λ‘ ꡬμ±λ κ·Έλνλ₯Ό λ§ν©λλ€. μΌλ°μ μΈ κ·Έλνμ λ¬λ¦¬, μ΄κΈ°μ’ κ·Έλνμμλ λ Έλμ μ£μ§κ° λ€μν μ νμ κ°μ§ μ μμ΄ λ³΅μ‘ν μ€μΈκ³ λ°μ΄ν°λ₯Ό λ μ ννκ² ννν μ μμ΅λλ€.
μ΄κΈ°μ’ λ€νΈμν¬μ νΉμ±

λ€μν κ΄κ³ νν κ°λ₯
- κ°μ λ Έλλ λ€μν κ΄κ³λ₯Ό κ°μ§ μ μμ (μ: νμ΄μ€λΆκ³Ό νΈμν° κ°μ μλ‘ λ€λ₯Έ νλ«νΌμμμ κ΄κ³)
- μμ λΆμΌμμλ μμ-μμμ, μμ-쑰리λ², μμμ-건κ°ν¨κ³Ό λ± λ€μν κ΄κ³ λͺ¨λΈλ§ κ°λ₯
λ©ν ν¨μ€λ₯Ό ν΅ν μ 보 μΆμΆ
- λ Έλ κ° κ΄κ³λ₯Ό ν΅ν΄ λ€λ₯Έ μ 보λ₯Ό μΆμΆ κ°λ₯
- μ: λ°°μ°-μν-λ°°μ°(A-M-A) κ΄κ³ λλ κ°λ -μν-κ°λ (D-M-D) κ΄κ³
- μμ λΆμΌμμλ μμ-μμμ-건κ°ν¨κ³Όμ κ°μ λ©ν ν¨μ€ νμ© κ°λ₯
μν μμ λΆμΌ μ μ© μ¬λ‘
- λ μνΌ-μ¬λ£-μμμ λ€νΈμν¬: μ리λ², μμ¬λ£, μμμ κ°μ 볡μ‘ν κ΄κ³ λͺ¨λΈλ§
- μ¬μ©μ-μμ-건κ°μν λ€νΈμν¬: κ°μΈνλ μμ μΆμ² μμ€ν ꡬμΆ
- μν-μλ λ₯΄κΈ°-μ¦μ λ€νΈμν¬: μν μμ μ± λ° μλ λ₯΄κΈ° κ΄λ¦¬ μμ€ν
II. μ΄κΈ°μ’ λ€νΈμν¬μ ꡬ쑰μ νμ©
Side Information νμ©
μ΄κΈ°μ’ λ€νΈμν¬μμλ μ£Όμ λ°μ΄ν° μΈμλ λΆκ°μ μΈ μ 보(Side Information)λ₯Ό ν¨κ» νμ©ν μ μμ΅λλ€. μμ λΆμΌμμλ λ€μκ³Ό κ°μ λΆκ° μ 보λ₯Ό νμ©ν μ μμ΅λλ€:
- μνμ μ§κ°, μμ, ν₯λ―Έ λ±μ κ°κ°μ νΉμ±
- μ§μλ³ μμ΅κ΄ λ° λ¬Ένμ λ°°κ²½
- κ³μ μ±, κ°κ²©, μ κ·Όμ± λ±μ μ€μ©μ μ 보
Side Informationμ κ·Έλν λ€νΈμν¬λ₯Ό νμ©νμ¬ ν¨κ³Όμ μΌλ‘ μ²λ¦¬ν μ μμΌλ©°, κΈ°μ‘΄ GNN(Graph Neural Network)μ μ΄κΈ°μ’ νμ λ Έλλ₯Ό μΆκ°νμ¬ λ νλΆν μ 보 λͺ¨λΈλ§μ΄ κ°λ₯ν©λλ€.
Meta-path κΈ°λ° λ°©μμ νκ³μ
Meta-path μ€μ μ λλ©μΈ μ§μμ΄ νμνκ³ , μ΄λ₯Ό μ°Ύκ³ μΆμΆνλ μμ μ μκ°μ΄ λ§μ΄ μμλ©λλ€. νΉν λ€μκ³Ό κ°μ νκ³κ° μμ΅λλ€:
- 미리 μ μλ pathλ§ νμ© κ°λ₯νμ¬ μλ €μ§μ§ μμ ν¨ν΄ λ°κ²¬μ΄ μ΄λ €μ
- λ°μ΄ν°κ° κ³μ λ³ννλ μμ λΆμΌμμλ path μ¬μ μκ° μμ£Ό νμ
- Path μ€μ μ μ¬μ©λμ§ μλ λ°μ΄ν° μ‘΄μ¬ (μμ€ μ 보)
III. Graph Attention Network (GAT)μ μ리
μ΄ν μ λ©μ»€λμ¦(Attention Mechanism)μ κ°λ

κ·Έλν μ΄ν μ λ€νΈμν¬λ λ Έλ κ°μ μ€μλλ₯Ό νμ΅νλ μ΄ν μ λ©μ»€λμ¦μ νμ©ν©λλ€. μ΄λ λ€μκ³Ό κ°μ μ§λ¬Έμ λ΅νλ κ³Όμ μ λλ€:
- μ΄λ€ μ΄μμ΄ λλ μ μ¬νκ°?
- μ΄λ€ μ΄μμ΄ λμκ² μ μ΅ν μ 보λ₯Ό μ£Όλκ°?
μμ λΆμΌμμ μ΄λ "μ΄λ€ μνμ΄ νΉμ μμμ νλ‘νκ³Ό μ μ¬νκ°?" λλ "μ΄λ€ μμ¬λ£κ° νΉμ κ±΄κ° ν¨κ³Όμ λ ν° μν₯μ λ―ΈμΉλκ°?"μ κ°μ μ§λ¬ΈμΌλ‘ ν΄μλ μ μμ΅λλ€.
κ°μ€μΉ κ³μ° λ°©μ
GATμμλ λ€μκ³Ό κ°μ λ°©μμΌλ‘ κ°μ€μΉλ₯Ό κ³μ°ν©λλ€:
- Coefficient matrix νμ©: λ Έλ κ° κ΄κ³λ₯Ό μμΉν

- νμ΅ κ°λ₯ν νλΌλ―Έν°(Learnable parameter) μ¬μ©

- Multi-Head AttentionμΌλ‘ λ€μν νΉμ± κ³ λ €
μλ₯Ό λ€μ΄, μμ λ°μ΄ν°μμλ λΉνλ―Ό Cμ ν¨λ, λ¨λ°±μ§ ꡬμ±, μ§λ°© μ ν λ± λ€μν νΉμ±μ λμμ κ³ λ €νμ¬ μν κ°μ κ΄κ³λ₯Ό νμ΅ν μ μμ΅λλ€.
IV. Meta Path κΈ°λ° μ΄μ μ μ
Meta pathμ κ°λ

Meta pathλ λ Έλμ νμ μ λ°λ₯Έ κ²½λ‘λ‘, 볡μ‘ν κ΄κ³λ₯Ό νννλ λ°©λ²μ λλ€. μλ₯Ό λ€μ΄:
- κ° λ Έλλ λ μνΌ, μ¬λ£, μμμ, 건κ°ν¨κ³Ό λ± μλ―Έλ₯Ό κ°μ§ λ Έλ νμ μ΄ μμ
- κ° λ Έλλ μμ μ νμ μ λ°λΌ μ°κ²°λλ κ·Έλν ꡬ쑰λ₯Ό 보μ
- νΉμ μλ―Έλ₯Ό λ΄ν¬ν μ μλ pathλ₯Ό meta pathλ‘ μ μ
μμ λΆμΌ μμ:
- μ¬λ£-λ μνΌ-μ¬λ£(I-R-I): μ μ¬ν μ리μ μ¬μ©λλ μ¬λ£λ€
- μμμ-μν-μμμ(N-F-N): μμ νλ‘νμ΄ μ μ¬ν μνλ€
- μ¬μ©μ-λ μνΌ-μμμ-건κ°ν¨κ³Ό(U-R-N-H): μ¬μ©μ μ νΈ μ리μ 건κ°μ μ΄μ
λ Έλ νμ λ³ μ ν λ³ν

μ΄κΈ°μ’ κ·Έλνμμλ κ° λ Έλ νμ λ³λ‘ λ€λ₯Έ νΉμ± 곡κ°μ κ°μ§ μ μμ΄, νμ λ³ μ ν λ³νμ΄ νμν©λλ€:
- κ·Έλνλ μ μ -λ μνΌ-μμ¬λ£-μμμ±λΆ-λ μνΌ κ΄κ³ λ± λ€μν κ΄κ³λ‘ μ΄λ£¨μ΄μ§
- κ° λ Έλμ νμ μ λ°λΌ μ νλ³νμ κ±°μΉλ©° νΉμ± μΆμΆ
- κ° λ Έλκ° κ°μ§λ μμ΄ν 곡κ°μ μλ² λ©μ λ Έλμ μκ΄μλ 곡κ°μΌλ‘ λ³ν
μλΈκ·Έλν μμ±κ³Ό μ΄ν μ κ³μ°
Meta pathμ λ°λΌ μλΈκ·Έλνλ₯Ό μμ±νκ³ , νκ² λ Έλμ μμ€ λ Έλ κ°μ μ΄ν μ μ μλ₯Ό κ³μ°ν©λλ€:
- μ μλ κ΄κ³(μ: λ μνΌ-μ¬λ£)μ λν μ΄ν μ λ²‘ν° μμ±
- νμ΅ κ°λ₯ν κ°μ€μΉλ‘ λ Έλ κ° μ€μλ κ³μ°
- LeakyReLU λ±μ νμ±ν ν¨μλ‘ λΉμ νμ± μΆκ°
μμ λΆμμμλ μ΄λ₯Ό ν΅ν΄ "μ΄ μ리λ²μμ κ°μ₯ μ€μν μμμλ 무μμΈκ°?", "μ΄ μμμλ₯Ό μν μ΅μ μ μν μ‘°ν©μ 무μμΈκ°?"μ κ°μ μ§λ¬Έμ λλ΅ν μ μμ΅λλ€.

V. μμ λΆμμ μν μ΄κΈ°μ’ κ·Έλν λͺ¨λΈ ꡬν
νμ΄μ¬ ꡬν μμ
μ΄κΈ°μ’ κ·Έλν μ΄ν μ λ€νΈμν¬λ₯Ό νμ΄μ¬μΌλ‘ ꡬννλ κΈ°λ³Έ μ½λμ λλ€:
import torch
import torch.nn as nn
import torch.nn.functional as F
class SemanticAttention(nn.Module):
def __init__(self, in_size, hidden_size=128):
super(SemanticAttention, self).__init__()
self.project = nn.Sequential(
nn.Linear(in_size, hidden_size),
nn.Tanh(),
nn.Linear(hidden_size, 1, bias=False)
)
def forward(self, z):
w = self.project(z)
beta = torch.softmax(w, dim=1)
return (beta * z).sum(1)
class HANLayer(nn.Module):
def __init__(self, meta_paths, in_size, out_size, layer_num_heads, dropout):
super(HANLayer, self).__init__()
self.gat_layers = nn.ModuleList()
for i in range(len(meta_paths)):
self.gat_layers.append(GATConv(in_size, out_size, layer_num_heads,
dropout, dropout, activation=F.elu))
self.semantic_attention = SemanticAttention(in_size=out_size * layer_num_heads)
self.meta_paths = list(tuple(meta_path) for meta_path in meta_paths)
def forward(self, g, h):
semantic_embeddings = []
for i, meta_path in enumerate(self.meta_paths):
new_g = construct_meta_path_graph(g, meta_path)
semantic_embeddings.append(self.gat_layers[i](new_g, h).flatten(1))
return self.semantic_attention(torch.stack(semantic_embeddings, dim=1))
μμ λΆμ μμ€ν κ΅¬μΆ κ³Όμ
μμ λΆμμ μν μ΄κΈ°μ’ κ·Έλν μμ€ν μ ꡬμΆνλ κ³Όμ μ λ€μκ³Ό κ°μ΅λλ€:
- λ°μ΄ν° μμ§: μν DB, μμμ±λΆν, λ μνΌ λ°μ΄ν° λ± λ€μν μμ€μμ λ°μ΄ν° ν보
- λ Έλ μ μ: μν, μμμ, λ μνΌ, μ¬μ©μ, 건κ°μν λ± λ€μν λ Έλ νμ μ€μ
- κ΄κ³ μ μ: μν-μμμ ν¨μ λ, λ μνΌ-μν ν¬ν¨ κ΄κ³, μ¬μ©μ-λ μνΌ μ νΈλ λ±
- λ©ν ν¨μ€ μ€κ³: μμ λΆμμ μ μ©ν μλ―Έ μλ ν¨μ€ μ μ
- λͺ¨λΈ νμ΅: ꡬμΆλ λ°μ΄ν°λ‘ μ΄κΈ°μ’ κ·Έλν μ΄ν μ λ€νΈμν¬ νμ΅
νμ© κ°λ₯ μ¬λ‘
Heterogeneous Graph Attention Networkλ₯Ό νμ©νμ¬ μμ λΆμμ μ λͺ©ν μ μλ μμλ‘λ λ€μκ³Ό κ°μ΄ μκ°ν΄ λ³Ό μ μμ΅λλ€:
- κ°μΈνλ μλ¨ μΆμ²: μ¬μ©μμ κ±΄κ° μν, μ νΈλ, μμ μꡬμ¬νμ κ³ λ €ν μ΅μ μ μλ¨ μΆμ²
- μμμ μνΈμμ© λΆμ: 볡μ‘ν μμμ κ° μνΈμμ©μ λͺ¨λΈλ§νμ¬ μμ κ· ν μ΅μ ν
- λ체 μν μΆμ²: μλ λ₯΄κΈ°λ μμ΄ μ νμ΄ μλ κ²½μ°, μ μ¬ν μμ νλ‘νμ κ°μ§ λ체 μν μΆμ²
- μν νΈλ λ μμΈ‘: μ¬μ©μ μ νΈλμ μμ μꡬμ¬νμ κΈ°λ°μΌλ‘ λ―Έλ μν νΈλ λ μμΈ‘
IV. κ²°λ‘ π―
μ΄κΈ°μ’ κ·Έλν μ΄ν μ λ€νΈμν¬λ μμ λ° μν λΆμΌμ 볡μ‘ν λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ λΆμν μ μλ κ°λ ₯ν λꡬμ λλ€. μν, μμμ, λ μνΌ, κ±΄κ° ν¨κ³Ό λ± λ€μν μ νμ λ Έλ κ° κ΄κ³λ₯Ό λͺ¨λΈλ§ν¨μΌλ‘μ¨, λ¨μν λ°μ΄ν°λ² μ΄μ€ 쿼리λ ν΅κ³ λΆμμΌλ‘λ λ°κ²¬νκΈ° μ΄λ €μ΄ ν¨ν΄κ³Ό ν΅μ°°μ μ»μ μ μμ΅λλ€.
νΉν μ΄ν μ λ©μ»€λμ¦μ ν΅ν΄ κ° κ΄κ³μ μ€μλλ₯Ό νμ΅νκ³ , λ©ν ν¨μ€λ₯Ό ν΅ν΄ μλ―Έ μλ κ΄κ³λ₯Ό μ μν¨μΌλ‘μ¨, λ μ ννκ³ λ§₯λ½μ λ§λ λΆμμ΄ κ°λ₯ν©λλ€. μ΄λ κ°μΈνλ μμ μΆμ², μλ¨ μ΅μ ν, μν νΈλ λ μμΈ‘ λ± λ€μν μμ© λΆμΌμ νμ©λ μ μμ΅λλ€.
μμΌλ‘ λΉ λ°μ΄ν°μ μΈκ³΅μ§λ₯ κΈ°μ μ λ°μ κ³Ό ν¨κ», μ΄κΈ°μ’ κ·Έλν μ΄ν μ λ€νΈμν¬λ μμ κ³Όνκ³Ό μν μ°μ μ λ λ§μ νμ μ κ°μ Έμ¬ κ²μΌλ‘ κΈ°λλ©λλ€. μνκ³Ό 건κ°μ 볡μ‘ν κ΄κ³λ₯Ό λ κΉμ΄ μ΄ν΄νκ³ , κ°μΈκ³Ό μ¬νμ κ±΄κ° μ¦μ§μ κΈ°μ¬νλ μ§λ₯ν μμ μμ€ν ꡬμΆμ΄ κ°λ₯ν΄μ§ κ²μ λλ€.
μ°Έκ³ λ¬Έν:
- Wang, X., Ji, H., Shi, C., Wang, B., Ye, Y., Cui, P., & Yu, P. S. (2019). Heterogeneous Graph Attention Network. The World Wide Web Conference.
- Zhang, C., Song, D., Huang, C., Swami, A., & Chawla, N. V. (2019). Heterogeneous Graph Neural Network. Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining.
- Fan, W., Ma, Y., Li, Q., He, Y., Zhao, E., Tang, J., & Yin, D. (2019). Graph Neural Networks for Social Recommendation. The World Wide Web Conference.
'Food_Health_AI > μΆμ² μμ€ν ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| κ·Έλν κΈ°λ° μΆμ² μμ€ν : GraphSAGEμ μ리μ νμ© (0) | 2025.04.03 |
|---|---|
| κ·Έλν κΈ°λ° μΆμ² μμ€ν (1) | 2025.04.03 |
| DeepFM (0) | 2025.03.30 |
| Factorization Machine (FM) (2) | 2025.03.30 |