原文:KGAT: Knowledge Graph Attention Network for Recommendation
源码:knowledge_graph_attention_network
假设项与项(这里我们把它称作实体,记为 h h h和 t t t)之间存在某种关系 r r r,其中 h , t ∈ E h, t \in \mathcal{E} h,t∈E, r ∈ R r \in \mathcal{R} r∈R。于是可以得到这样一个知识图谱:
G = { ( h , r , t ) ∣ h , t ∈ E , r ∈ R } G=\{(h, r, t) | h, t \in \mathcal{E}, r \in \mathcal{R}\} G={ (h,r,t)∣h,t∈E,r∈R}
其中 E \mathcal{E} E是实体集, R \mathcal{R} R是边集。
存在用户 u ∈ U u \in \mathcal{U} u∈U, 该用户与项 i i i之间存在某种交互(即包括购买行为,点击行为等等),这种交互以及用户和项可以构成图 G ′ G^\prime G′:
G ′ = { ( u , y u i , i ) ∣ u ∈ U , i ∈ I } G^\prime = \{(u, y_{ui}, i) | u \in \mathcal{U}, i \in \mathcal{I}\} G′={ (u,yui,i)∣u∈U,i∈I}
其中 U \mathcal{U} U是用户集, I \mathcal{I} I是项集。 y u i = 1 y_{ui} = 1 yui=1表示用户 u u u与项 i i i之间存在交互, y u i = 0 y_{ui} = 0 yui=0表示用户 u u u和项 i i i之间不存在交互。
为了利用知识图谱来完成个性化推荐,我们可以将 G G G和 G ′ G^\prime G′融合。即 E ′ = E ∪ U \mathcal{E}^\prime = \mathcal{E} \cup \mathcal{U} E′