www2019
本文利用kg的结构(structure)信息和语义(semantic)信息来提高推荐的效果。受到gcn的启发,提出KGCN( Knowledge Graph Convolutional Networks),KGCN核心跟GCN一样,都是通过将a邻居结点的信息传播到结点a上(想到了概率图模型中的belief)。这样设计有两个好处1)通过聚合操作,每个实体能够捕获到( local proximity structure)局部近似结构,
文章将entity u u u和item v v v中对齐,因此后面可以当作同样的理解。
π r u = g ( u , r ) \pi_{r}^{u}=g(\mathbf{u}, \mathbf{r}) πru=g(u,r)
π ~ r v , e u = exp ( π r v , e u ) ∑ e ∈ N ( v ) exp ( π r v , e u ) A ˚ \tilde{\pi}_{r_{v}, e}^{u}=\frac{\exp \left(\pi_{r_{v}, e}^{u}\right)}{\sum_{e \in \mathcal{N}(v)} \exp \left(\pi_{r_{v, e}}^{u}\right)}Å π~rv,eu=∑e∈N(v)exp(πrv,eu)exp(πrv,eu)A˚
v N ( v ) u = ∑ e ∈ N ( v ) π ~ r v , e u e \mathbf{v}_{\mathcal{N}(v)}^{u}=\sum_{e \in \mathcal{N}(v)} \tilde{\pi}_{r_{v}, e}^{u} \mathbf{e} vN(v)u=e∈N(v)∑π~rv,eue
π r v \pi_r^v πrv:relation r r r对 user u u u 的重要性,作用等同于个性化过滤(personalized filters)
N ( v ) N(v) N(v) :直接和entity/item v v v 关联的entity集合;
v S ( v ) u v_{S(v)}^u vS(v)u: 用户 v v v邻居的表示
考虑到对不同的 e e e, N ( e ) N(e) N(e)的数量变化很大,文章为每个实体均匀采样了固定大小的邻居 S ( e ) S(e) S(e)而不是用它全部的邻居,如下, k k k表示了一层感知域的范围。
S ( v ) ≜ { e ∣ e ∼ N ( v ) } and ∣ S ( v ) ∣ = K \mathcal{S}(v) \triangleq\{e | e \sim \mathcal{N}(v)\} \text { and }|\mathcal{S}(v)|=K S(v)≜{e∣e∼N(v)} and ∣S(v)∣=K
提出了三种聚合实体 v v v和邻居 S ( v ) S(v) S(v)的方法:
a g g s u m = σ ( W ⋅ ( v + v S ( v ) u ) + b ) agg_{s u m}=\sigma\left(\mathbf{W} \cdot\left(\mathbf{v}+\mathbf{v}_{\mathcal{S}(v)}^{u}\right)+\mathbf{b}\right) aggsum=σ(W⋅(v+vS(v)u)+b)
Concat aggregator
a g g concat = σ ( W ⋅ concat ( v , v S ( v ) u ) + b ) agg_{\text {concat }}=\sigma\left(\mathbf{W} \cdot \operatorname{concat}\left(\mathbf{v}, \mathbf{v}_{\mathcal{S}(v)}^{u}\right)+\mathbf{b}\right) aggconcat =σ(W⋅concat(v,vS(v)u)+b)
Neighbor aggregator
a g g n e i g h b o r = σ ( W ⋅ v S ( v ) u + b ) agg_{neighbor}=\sigma\left(\mathbf{W} \cdot \mathbf{v}_{\mathcal{S}(v)}^{u}+\mathbf{b}\right) aggneighbor=σ(W⋅vS(v)u+b)
表示用户u将会engage(可以理解为喜好)商品v的程度。 Y Y Y是交互历史。
y ^ u v = F ( u , v ∣ Θ , Y , G ) \hat{y}_{u v}=\mathcal{F}(u, v | \Theta, \mathrm{Y}, \mathcal{G}) y^uv=F(u,v∣Θ,Y,G)
这里loss的计算考虑了负采样的策略。 J J J表示交叉熵,每个采样的数量 T u T^u Tu取决于原始的的历史交互次数 T u = ∣ v : y u v = 1 ∣ T^u=|{v:y_{uv}=1}| Tu=∣v:yuv=1∣, P P P是采样的分布,文中服从均匀分布。
方法在 MovieLens-20M (movie), Book-Crossing (book), and Last.FM (music).三个数据集上进行测试。其中的items和KG的数据集Microsoft Satori中的entity进行对齐。对齐过程中,如果出现匹配到多个或者没有匹配到的,就不做考虑。
邻居结点采样数量的影响
迭代次数的影响
embedding维度的影响
KDD2019,August 4–8, 2019: https://arxiv.org/pdf/1905.07854.pdf
github: https://github.com/xiangwang1223/knowledge_graph_attention_network
Tat-Seng Chua团队的,资深做推荐。包括
黄色部分和灰色部分通过KGAT方式可以发现相关但是传统方式捕获不到。
之前利用CKG的论文可以分为两种:
1)Path-based方式,抽取一些路径去训练模型,相当于两个阶段,因此第一个阶段路径的抽取对最后的性能有很大的影响。另外抽取path是 labor-intensive。
2)Regularization-based 方式主要是在loss中加入了跟kg相关的部分去捕获KG结构信息。这种方式encode kg的方式比较implicit,因此“neither the long-range connectivities are guaranteed to be captured, nor the results of high-order modeling are interpretable.”
因此提出Knowledge Graph Attention Network (KGAT),“ a model that can exploit high-order information in KG in an efficient, explicit, and end-to-end manner.”
GCN的整个过程分为Information Propagation和Information Aggregation
将上述传递,扩展到多跳:(直接看公式就是加了层次的上标 ( l ) (l) (l))
3. prediction
各层拼接作为最终表示:
预测:
4. loss: BPR loss
其中, O = { ( u , i , j ) ∣ ( u , i ) ∈ R + , ( u , j ) ∈ R − } O = \{(u,i,j)|(u,i) ∈ R^+,(u,j) ∈ R^−\} O={(u,i,j)∣(u,i)∈R+,(u,j)∈R−}, R − R^− R−表示历史记录中跟user u u u没有交互记录的item j j j。
(负采样的时候,被采样的是跟用户没有交互的item,但是并不表示用户dislike这些,应该是考虑到item量大…?反正交互稀疏?)
所以怎样的训练是合理的?原始的训练方式
https://arxiv.org/pdf/1703.06103.pdf, 2018
https://arxiv.org/pdf/1903.07293.pdf
https://arxiv.org/pdf/1902.07243.pdf
KGCN:
RGCN | KGCN | KGAT | |
---|---|---|---|
场景 | KGE | RS | RS |
思路 | 给不同relation不同权重 | 不同用户对不同relation会有不同的计算不同weight,为每个用抽取sub-KG | 将user-item的交互和KG信号放在一张图中 |
attention | —— | ||
传播 |
RS:推荐
KGE:kg embedding