提出背景
现有的知识图谱推荐通过用户和物品之间的路径进行推理,忽略了用户的历史点击序列,用户的某段历史点击序列可以归纳出用户对某类物品的喜爱程度,从而进行更加准确的推荐。
本文贡献
- 我们提出了一种基于知识图谱的注意力推理网络KARN,该网络融合了用户的点击历史记录序列和KG中的路径连接以进行推荐。
- 我们通过结合基于用户物品知识图中物品的文本知识和上下文知识来提取物品表示。
- 我们提出了两个组件,分别从用户的点击序列和KG中的路径连通性获得用户的历史兴趣和潜在意图的特征。
基本架构
物品表示提取
我们从文本知识和上下文知识中提取项目表示。在这里,我们将物品的标题作为文本知识,因为标题通常给出了这个物品实体的主要主题,而将物品在KG中的近邻作为上下文知识,因为上下文实体通常提供更多的补充信息来提高物品实体的可识别性。
- 物品文本表示采用CNN\color{red}{CNN}CNN
v′=g1([p1,p2,…,pF])\mathbf{v}^{\prime}=g_{1}\left(\left[\mathbf{p}_{1}, \mathbf{p}_{2}, \ldots, \mathbf{p}_{F}\right]\right) v′=g1?([p1?,p2?,…,pF?]) - 物品实体的嵌入
v∈Rd\mathbf{v} \in R^{d} v∈Rd - 物品上下文表示是所有与该物品相关的实体的文本表示的平均值
v?=∑ei∈C(v)ei∣C(v)∣\overline{\mathbf{v}}=\frac{\sum_{e_{i} \in C(v)} \mathbf{e}_{i}}{|C(v)|} v=∣C(v)∣∑ei?∈C(v)?ei??
将三者结合
I=g2([v,v′,v?])\mathbf{I}=g_{2}\left(\left[\mathbf{v}, \mathbf{v}^{\prime}, \overline{\mathbf{v}}\right]\right) I=g2?([v,v′,v])
用户历史兴趣提取
为了获得用户的历史兴趣,SRA组件被设计为RNN和注意力网络的堆栈,该网络将用户的点击项目序列作为输入,并输出用户的历史兴趣表示。
{v1,v2,…,vt}\left\{v_{1}, v_{2}, \ldots, v_{t}\right\}{
v1?,v2?,…,vt?} as {I1,I2,…,It}\left\{\mathbf{I}_{1}, \mathbf{I}_{2}, \ldots, \mathbf{I}_{t}\right\}{
I1?,I2?,…,It?}
长短期记忆网络
hj=LSTM?(hj?1,Ij)\mathbf{h}_{j}=\operatorname{LSTM}\left(\mathbf{h}_{j-1}, \mathbf{I}_{j}\right) hj?=LSTM(hj?1?,Ij?)
注意力网络
A=softmax?(W1σ(W2H))a=fa(AHT)s=[a;ht]\begin{aligned} \mathbf{A} &=\operatorname{softmax}\left(\mathbf{W}_{1} \sigma\left(\mathbf{W}_{2} \mathbf{H}\right)\right) \\ \mathbf{a} &=f_{a}\left(\mathbf{A} \mathbf{H}^{T}\right) \\ \mathbf{s} &=\left[\mathbf{a} ; \mathbf{h}_{t}\right] \end{aligned} Aas?=softmax(W1?σ(W2?H))=fa?(AHT)=[a;ht?]?
用户潜在兴趣提取
- 给定一个路径pj={e1,r1,e2,r2,…,eq}p_{j}=\left\{e_{1}, r_{1}, e_{2}, r_{2}, \ldots, e_{q}\right\}pj?={ e1?,r1?,e2?,r2?,…,eq?},j=[1,…,n]j=[1, \ldots, n]j=[1,…,n],我们将当前实体eie_iei?的嵌入、其实体类型ei′e_i'ei′?和关系rir_iri?连在一起,作为LSTM单元的输入向量xi=[ei;ei′;ri]\mathbf{x}_{i}=\left[\mathbf{e}_{i} ; \mathbf{e}_{i}^{\prime} ; \mathbf{r}_{i}\right]xi?=[ei?;ei′?;ri?]。这里我们使用物品实体的物品表示,并为最后一个实体eqe_qeq?定义一个空关系rqr_qrq?,将其垫在路径的末端。因此,将输入路径嵌入表示为{x1,x2,…,xq},它不仅包含了路径的顺序信息,还包含了实体的组成语义信息及其与下一个实体的关系。
- 在确定了路径pjp_jpj?的输入表示为{x1,x2,…,xq}\left\{\mathbf{x}_{1}, \mathbf{x}_{2}, \ldots, \mathbf{x}_{q}\right\}{ x1?,x2?,…,xq?}后,我们采用SRA网络来探索路径的顺序信息,并生成单路径表示来编码其整体语义为sjs_jsj? 。对于用户u与物品v之间的路径集P(u,v)={p1,p2,…,pn}P(u, v)=\left\{p_{1}, p_{2}, \ldots, p_{n}\right\}P(u,v)={ p1?,p2?,…,pn?},我们可以得到其特征表示为{s1,s2,…,sn}\left\{\mathbf{s}_{1}, \mathbf{s}_{2}, \ldots, \mathbf{s}_{n}\right\}{ s1?,s2?,…,sn?}。不同的路径对用户潜在意图的建模影响不同,因此我们利用SRA组件中使用的注意力机制来产生用户的潜在意图表示s?\overline{s}s,它是多个单路径特征表示{s1,s2,…,sn}\left\{\mathbf{s}_{1}, \mathbf{s}_{2}, \ldots,\mathbf{s}_{n}\right\}{ s1?,s2?,…,sn?}的不同权重的聚合。
推荐概率计算
- 结合历史兴趣和潜在兴趣
u=sigmoid?(U1[s;s?]+b1)\mathbf{u}=\operatorname{sigmoid}\left(\mathbf{U}_{1}[\mathbf{s} ; \overline{\mathbf{s}}]+\mathbf{b}_{1}\right) u=sigmoid(U1?[s;s]+b1?) - 预测点击率
y~=sigmoid?(U2T[u;I]+b)\tilde{y}=\operatorname{sigmoid}\left(\mathbf{U}_{2}^{T}[\mathbf{u} ; \mathbf{I}]+b\right) y~?=sigmoid(U2T?[u;I]+b)
训练
输入
X=X=X= {(u,v),S(u),P(u,v),y},\{(u, v), S(u), P(u, v), y\},{
(u,v),S(u),P(u,v),y}, where S(u)={v1,v2,…,vt}S(u)=\left\{v_{1}, v_{2}, \ldots, v_{t}\right\}S(u)={
v1?,v2?,…,vt?}
is the users’ history clicked item sequence, P(u,v)=P(u, v)=P(u,v)= {p1,p2,…,pn}\left\{p_{1}, p_{2}, \ldots, p_{n}\right\}{
p1?,p2?,…,pn?} is the set of paths between user uuu and item v,v,v, and yyy is the label that equals to 1 if XXX is the positive sample,otherwise 0.
损失函数
L=?{∑X∈Δ+ylog?(y~)+∑X′∈Δ?(1?y)log?(1?y~)}L=-\left\{\sum_{X \in \Delta^{+}} y \log (\tilde{y})+\sum_{X^{\prime} \in \Delta^{-}}(1-y) \log (1-\tilde{y})\right\} L=?{ X∈Δ+∑?ylog(y~?)+X′∈Δ?∑?(1?y)log(1?y~?)}
数据集
亚马逊评论数据集