Conditional Graph Attention Networks for Distilling and Refining Knowledge Graphs in Recommendation
由于知识图的泛化和规模, 大多数知识关系对目标用户-物品的预测没有帮助。为了利用知识图谱捕获推荐系统中特定目标的知识关系,需要对知识图谱进行提炼以保留有用的信息,并对知识图谱进行提炼以捕获用户的偏好。KCAN是将知识图谱整合到推荐任务中的端到端的模型。
知识图蒸馏:从完整的海量知识图谱中提取出与目标任务相关的小子结构的知识图。值得注意的是,知识图谱蒸馏描述的是将完整的知识图谱转化为一个小型的集中图谱,以准确捕捉用户偏好的过程,而不是像知识蒸馏那样,用一个小型的学生模型来模仿一个预先训练好的较大的教师模型。
知识图提炼:对不同的目标用户给与不同的知识边权重,例如在图1中,我们的目标是为目标用户User1和User2推荐。边< Movie2, genre, Comedy >的权重仅基于节点Movie2和Comedy,与User1和User2无关。但是用户1和用户2可能对电影类型有不同的偏好。也就是说,对于User1和User2来说,边的权重可能不同。
**模型既能保持全局语义相似度,又能动态生成目标特定的子图,**对知识图进行提炼和细化,从而准确推断局部用户偏好。
模型
Knowledge Graph Distillation
Knowledge Graph Embedding
将user点击item作为一种关系,因为一个user会点击多个item,因此存在一对多,使用可以建模一对多的TransH,生成实体的嵌入向量e,关系的嵌入向量r。
Knowledge-Aware Graph Covolutional Network
但是上述的只是图嵌入只关注单独的知识三元组,无法捕获实体之间的高阶相似性,因此利用图卷积网络对知识嵌入进行聚合来捕获实体的高阶相似度,为了区分知识图中不同类型关系的影响,我们建议在传播过程中使用知识感知的注意机制:
其中注意力因子
π
r
(
v
,
t
)
\pi_{r}(v,t)
πr(v,t)是特定于关系,衡量了在关系r空间下,实体v对t的重要性,在关系r空间下,如果实体t和v相近,那么应该要传播更多的信息:
最后,将实体表示
e
v
e_{v}
ev和邻域表示
e
N
(
v
)
e_{N(v)}
eN(v)结合起来,将实体表示更新为
e
v
(
1
)
e^{(1)}_{v}
ev(1)。
Target-specific Sampling
对于给定的user-item对(u,v),KAGCN的注意力依赖于知识边,和目标无关。为了捕获目标的局部影响,我们利用子图而不是整个庞大的知识图。和随机游走等方法相比,子图保留有多样性。
T
=
v
1
,
…
,
v
k
\mathcal T={v_{1},…,v_{k}}
T=v1,…,vk,其中k=2,
T
\mathcal T
T是user-item对。由于每个节点的邻居节点的数目不固定,因此我们对其固定大小M采样。未用GraphSAGE的对邻居节点统一采样,因为知识图通常是有噪声的,并且充满了与目标无关的信息。考虑到我们已经获得了衡量实体相似性的全局注意力值(𝑣,𝑡),我们以其注意力值(𝑣,𝑡)作为采样概率,对相邻节点进行采样。对每个节点𝑣得到采样的𝐾-hop邻域为
S
^
K
(
v
)
\hat S_{K}(v)
S^K(v)后,我们可以将它们合并得到目标集的接受域:
Knowledge Graph Refinement
知识图蒸馏模块将知识图提炼为目标特定的子图,作为目标集的接受域。
这一部分对知识进行重新加权,以细化知识图。将实体的信息传播到经过提炼的特定于目标的子图上。为了捕获目标对知识关系的偏好,我们建议使用一种条件注意传播机制来细化子图:
其中
α
(
v
,
r
,
t
∣
T
)
\alpha(v,r,t|\mathcal T)
α(v,r,t∣T)是依赖于目标
T
\mathcal T
T的条件注意力。
N
T
(
v
)
N^{\mathcal T}(v)
NT(v)是目标集接受域
S
^
K
(
T
)
\hat S_{K}(\mathcal T)
S^K(T)中实体v的邻居节点集。为了更好的基于目标提炼子图,条件概率包括两个方面:(1)知识关系(v,r,t)的重要性
α
1
(
v
,
r
,
t
)
\alpha_{1}(v,r,t)
α1(v,r,t)重,这部分独立于目标,衡量的是知识关系本身对任务的重要性,令
α
1
=
π
^
r
(
v
,
t
)
\alpha_{1}=\hat \pi_{r}(v,t)
α1=π^r(v,t)。(2)实体对目标集的重要性
α
2
(
t
∣
T
)
\alpha_{2}(t|\mathcal T)
α2(t∣T)。这个术语衡量的是目标相对于尾部实体的局部偏好。与目标更相似的实体应该对目标更重要。
为了使目标集和实体兼容,将目标集的表征定义为目标集包含是所有实体向量的拼接:
然后衡量实体对所设定目标的重要性:
结合这两个重要分数,我们得到条件注意:
注意力越大,表明与目标相关的知识越重要。通过条件关注,将局部知识图细化为随目标变化的加权图。
KAGCN类似,可以得到目标实体表示如下:
为了捕获高阶偏好,进一步堆叠更多的LCSAN层。以确保每个节点的信息可以在所有子图上传播,设置i最大为2:
Multi-layer Perceptron Prediction
为了有效地保持局部相似性和局部偏好,提高嵌入的可表示性,将LAGCN输出的特定于目标的表征向量
e
v
∣
T
K
+
1
e_{v|\mathcal T}^{K+1}
ev∣TK+1以及KAGCN的输出
e
v
1
e_{v}^{1}
ev1拼接起来,为了平衡这两个向量,将拼接起来的向量送入MLP获得最终的输出表示:
对于具有user-item对预测的推荐,预测的分数是在给定目标
T
u
i
=
{
u
,
i
}
\mathcal T_{ui}=\{u,i\}
Tui={u,i}后,用户和项目表示的内积: