应用场景
新闻推荐
提出背景
- 新闻因具有实时性因而不适用于传统的CF技术推荐。DKN[2018]中,物品通过新闻标题和知识图谱中对应实体和实体上下文表示,用户通过用户历史推荐序列进行表示,但是新闻标题可能是语义模糊的,历史行为可能是数据稀疏的。
- GNN在推荐系统中的应用越来越多,目前GNN模型利用节点属性和图结构来表示用户和物品,虽然利用节点关系,视觉特征,知识图谱中传播信号增强了语义信息,但是文本内容却没有充分利用。
本文贡献
- 我们利用transformer结构对新闻标题的文本内容进行建模,通过文本意识的新闻表示来提高了节点嵌入。
- 引入GERL,Graph EnhancedRepresentation Learning (GERL)。
如图所示是用户-物品二部图,定义如下概念:
- 邻居新闻:被同一用户浏览过的新闻
- 邻居用户:浏览过同一新闻的用户
- 新闻可以通过邻居新闻增强表示
- 用户可以通过邻居用户增强表示
基础架构
模型由两部分组成,第一部分是one hop交互,依据用户历史点击来表示用户和基于文本内容表示候选新闻;第二部分是two hop graph learning方法,通过学习知识图谱中邻居节点来增强用户物品表示。
Transformer for Context Understanding
- 将新闻标题嵌入到低维空间
[ e 1 , e 2 , … , e M ] \left[\mathbf{e}_{1}, \mathbf{e}_{2}, \ldots, \mathbf{e}_{M}\right] [e1,e2,…,eM] - multi-head self-attention network,单词之间的交互对于表示学习是重要的,采用多头自注意力机制形成文本的单词向量表示
-
α
i
,
j
k
=
exp
(
e
i
T
W
s
k
e
j
)
∑
m
=
1
M
exp
(
e
i
T
W
s
k
e
m
)
h
i
k
=
W
v
k
(
∑
j
=
1
M
α
i
,
j
k
e
j
)
\begin{aligned} \alpha_{i, j}^{k} &=\frac{\exp \left(\mathbf{e}_{i}^{T} \mathbf{W}_{s}^{k} \mathbf{e}_{j}\right)}{\sum_{m=1}^{M} \exp \left(\mathbf{e}_{i}^{T} \mathbf{W}_{s}^{k} \mathbf{e}_{m}\right)} \\ & \mathbf{h}_{i}^{k}=\mathbf{W}_{v}^{k}\left(\sum_{j=1}^{M} \alpha_{i, j}^{k} \mathbf{e}_{j}\right) \end{aligned}
αi,jk=∑m=1Mexp(eiTWskem)exp(eiTWskej)hik=Wvk(j=1∑Mαi,jkej)
W s k \mathbf{W}_{s}^{k} Wsk and W v k \mathbf{W}_{v}^{k} Wvk是第k个自注意力头的投影矩阵, α i , j k \alpha_{i, j}^{k} αi,jk表示第i和j单词之间的相关性,第i个单词的多头表示为 [ h i 1 ; h i 2 ; … ; h i N ] \left[\mathbf{h}_{i}^{1} ; \mathbf{h}_{i}^{2} ; \ldots ; \mathbf{h}_{i}^{N}\right] [hi1;hi2;…;hiN] - 通过dropout层防止过拟合
- 通过一个attention网络对不同单词的重要性进行建模
β i w = exp ( q w T tanh ( U w × h i + u w ) ) ∑ j = 1 M exp ( q w T tanh ( U w × h j + u w ) ) \beta_{i}^{w}=\frac{\exp \left(\mathbf{q}_{w}^{T} \tanh \left(\mathrm{U}_{w} \times \mathbf{h}_{i}+\mathbf{u}_{w}\right)\right)}{\sum_{j=1}^{M} \exp \left(\mathbf{q}_{w}^{T} \tanh \left(\mathbf{U}_{w} \times \mathbf{h}_{j}+\mathbf{u}_{w}\right)\right)} βiw=∑j=1Mexp(qwTtanh(Uw×hj+uw))exp(qwTtanh(Uw×hi+uw)) - 新闻的话题也可以揭示用户的偏好,所以对话题通过一个嵌入网络进行建模,得到
v
p
\bold {v_p}
vp,最终得到新闻的表示为
v = [ v t ; v p ] \mathbf{v}=\left[\mathbf{v}_{t} ; \mathbf{v}_{p}\right] v=[vt;vp]
One-hop Interaction Learning
候选新闻语义表示
候选新闻采用transformer建模表示。
目标用户语义表示
目标用户的偏好可以通过历史点击揭示,因此,对用户历史点击的新闻的内容进行建模,不同的新闻重要度不同,采用一个注意力网络,假设用户u的历史点击新闻列表为
[
n
1
,
n
2
,
…
,
n
K
]
\left[n_{1}, n_{2}, \ldots, n_{K}\right]
[n1,n2,…,nK],经过transformer后编码为
[
v
1
,
v
2
,
…
,
v
K
]
\left[\mathbf{v}_{1}, \mathbf{v}_{2}, \ldots, \mathbf{v}_{K}\right]
[v1,v2,…,vK],注意力网络权重表示为
β
i
n
=
exp
(
q
n
T
tanh
(
U
n
×
v
i
+
u
n
)
)
∑
q
=
1
K
exp
(
q
n
T
tanh
(
U
n
×
v
q
+
u
n
)
)
\beta_{i}^{n}=\frac{\exp \left(\mathbf{q}_{n}^{T} \tanh \left(\mathbf{U}_{n} \times \mathbf{v}_{i}+\mathbf{u}_{n}\right)\right)}{\sum_{q=1}^{K} \exp \left(\mathbf{q}_{n}^{T} \tanh \left(\mathbf{U}_{n} \times \mathbf{v}_{q}+\mathbf{u}_{n}\right)\right)}
βin=∑q=1Kexp(qnTtanh(Un×vq+un))exp(qnTtanh(Un×vi+un))
目标用户ID表示
用户IDs代表独一无二的用户,我们为每一个用户学习一个向量 u e O \mathbf{u}_{e}^{O} ueO
Two-hop Graph Learning
该模块主要利用二部图中的用户邻居和物品邻居关系,对于一个用户,他和他的邻居用户有相似的偏好;新闻也是如此。
目标用户的邻居用户ID表示
目标用户u的邻居用户为
[
u
n
1
,
u
n
2
,
…
,
u
n
D
]
\left[u_{n_{1}}, u_{n_{2}}, \ldots, u_{n_{D}}\right]
[un1,un2,…,unD],ID嵌入为
[
m
u
1
,
m
u
2
,
…
,
m
u
D
]
\left[\mathbf{m}_{u_{1}}, \mathbf{m}_{u_{2}}, \ldots, \mathbf{m}_{u_{D}}\right]
[mu1,mu2,…,muD],注意力权重为
β
i
u
=
exp
(
q
u
T
tanh
(
U
u
×
m
u
i
+
u
u
)
)
∑
q
=
1
D
exp
(
q
u
T
tanh
(
U
u
×
m
u
q
+
u
u
)
)
\beta_{i}^{u}=\frac{\exp \left(\mathbf{q}_{u}^{T} \tanh \left(\mathbf{U}_{u} \times \mathbf{m}_{u_{i}}+\mathbf{u}_{u}\right)\right)}{\sum_{q=1}^{D} \exp \left(\mathbf{q}_{u}^{T} \tanh \left(\mathbf{U}_{u} \times \mathbf{m}_{u_{q}}+\mathbf{u}_{u}\right)\right)}
βiu=∑q=1Dexp(quTtanh(Uu×muq+uu))exp(quTtanh(Uu×mui+uu))
最终two-hop邻居用户ID示为
u
e
T
=
Σ
i
=
1
D
β
i
u
m
u
i
\mathbf{u}_{e}^{T}=\Sigma_{i=1}^{D} \beta_{i}^{u} \mathbf{m}_{u_{i}}
ueT=Σi=1Dβiumui
候选新闻的邻居新闻ID表示
候选新闻n的邻居新闻为 [ n n 1 , n n 2 , … , n n D ] \left[n_{n_{1}}, n_{n_{2}}, \ldots, n_{n_{D}}\right] [nn1,nn2,…,nnD],ID嵌入为 [ m n 1 , m n 2 , … , m n D ] \left[\mathbf{m}_{n_{1}}, \mathbf{m}_{n_{2}}, \ldots, \mathbf{m}_{n_{D}}\right] [mn1,mn2,…,mnD],同上述相同注意力机制,最终获取邻居新闻表示为 n e T \mathbf{n}_{e}^{T} neT。
候选新闻的邻居新闻语义表示
利用邻居新闻的文本内容经过transformer,attention建模学习 n t T \mathbf{n}_{t}^{T} ntT。
推荐模块
目标用户用 u = [ u t O ; u e O ; u e T ] \mathbf{u}=\left[\mathbf{u}_{t}^{O} ; \mathbf{u}_{e}^{O} ; \mathbf{u}_{e}^{T}\right] u=[utO;ueO;ueT],候选新闻用 n = [ n t T ; n e T ; n t O ] \mathbf{n}=\left[\mathbf{n}_{t}^{T} ; \mathbf{n}_{e}^{T} ; \mathbf{n}_{t}^{O}\right] n=[ntT;neT;ntO]
评分函数
y ^ = u T n \hat{y}=\mathbf{u}^{T} \mathbf{n} y^=uTn
损失函数
L = − ∑ i log ( exp ( y ^ i + ) exp ( y ^ i + ) + ∑ j = 1 λ exp ( y ^ i , j − ) ) \mathcal{L}=-\sum_{i} \log \left(\frac{\exp \left(\hat{y}_{i}^{+}\right)}{\exp \left(\hat{y}_{i}^{+}\right)+\sum_{j=1}^{\lambda} \exp \left(\hat{y}_{i, j}^{-}\right)}\right) L=−i∑log(exp(y^i+)+∑j=1λexp(y^i,j−)exp(y^i+))