今天带来的论文是发表于 IJCAI 2019 的新闻推荐作品《Neural News Recommendation with Attentive Multi-View Learning》,论文聚焦于对新闻的标题、内容、分类等文字特征进行提取和交叉影响的建模,完成对最终新闻点击结果的预测。
文章提出模型 NAML,成为新闻推荐领域引用较多的作品之一。
模型通过文字feature进行建模,遵照模型结构图可以看到,分为三部分,news encoder模块,user encoder模块以及预测模块。
news encoder用于提取每个新闻的交叉特征。
news encoder模块又分为四部分,category encoder,title encoder, body encoder以及注意力融合模块。
对于news title,首先是 Embedding 层,新闻 title 包含 M M M 个单词,表示为 [ w 1 t , w 2 t , ⋯ , w M t ] [w_{1}^t, w_{2}^t, \cdots, w_{M}^t] [w1t,w2t,⋯,wMt], 通过check-up table W e ∈ R V × D \mathbf{W}_e \in \mathbb{R}^{V \times D} We∈RV×D ( V V V 表示所有语料的单词数量, D D D 表示单词向量维度),将每个单词映射成词向量 [ e 1 t , e 2 t , ⋯ , e M t ] [\mathbf{e}_{1}^t, \mathbf{e}_{2}^t, \cdots, \mathbf{e}_{M}^t] [e1t,e2t,⋯,eMt] ,任意单词 w m t w_{m}^{t} wmt 对应向量为 D D D维,即 e m t ∈ R D \mathbf{e}_{m}^t \in \mathbb{R}^{D} emt∈RD 。
然后是 Convoluton 层,通过CNN完成,窗口大小为 2 K + 1 2K+1 2K+1 ,卷积核是 F t ∈ R N f × ( 2 K + 1 ) D \mathbf{F}_{t} \in \mathbb{R}^{N_f \times (2K+1)D} Ft∈RNf×(2K+1)D , b t ∈ R N f \mathbf{b}_{t} \in \mathbb{R}^{N_f} bt∈RNf 表示偏置向量,对应映射维度为 N f N_f Nf。具体如下所示:
c i t = ReLU ( F t × e ( i − K ) : ( i + K ) t + b t ) . (1) \mathbf{c}_{i}^{t} =\operatorname{ReLU}\left(\mathbf{F}_{t} \times \mathbf{e}_{(i-K):(i+K)}^{t}+\mathbf{b}_{t}\right). \tag{1} cit=ReLU(Ft×e(i−K):(i+K)t+bt).(1)
针对title中的每个单词,最终得到所有的单词向量,即 [ c 1 t , c 2 t , ⋯ , c M t ] [\mathbf{c}_{1}^t, \mathbf{c}_{2}^t, \cdots, \mathbf{c}_{M}^t] [c1t,c2t,⋯,cMt]
再然后是 Word-level Attention 层, 获取每个单词的注意力,并进行加权求和表示,具体如下:
a i t = q t ⊤ tanh ( V t × c i t + v t ) , (2) a_{i}^{t} =\mathbf{q}_{t}^{\top} \tanh \left(\mathbf{V}_{t} \times \mathbf{c}_{i}^{t}+\mathbf{v}_{t}\right), \tag{2} ait=qt⊤tanh(Vt×cit+vt),(2)
α i t = exp ( a i t ) ∑ j = 1 M exp ( a j t ) , (3) \alpha_{i}^{t} =\frac{\exp \left(a_{i}^{t}\right)}{\sum_{j=1}^{M} \exp \left(a_{j}^{t}\right)}, \tag{3} αit=∑j=1Mexp(ajt)exp(ait),(3)
r t = ∑ j = 1 M α j t c j t . (4) \mathbf{r}^{t}=\sum_{j=1}^{M} \alpha_{j}^{t} \mathbf{c}_{j}^{t}. \tag{4} rt=j=1∑Mαjtcjt.(4)
其中, V t , v t , q t \mathbf{V}_t, \mathbf{v}_t, \mathbf{q}_t Vt,vt,qt 分别表示映射矩阵,偏置向量以及attention query 向量。
同理,针对新闻主体内容(news body),同样使用上述方法。这里简要介绍符号。
对于news body,新闻 body 包含 P P P 个单词,表示为 [ w 1 b , w 2 b , ⋯ , w P b ] [w_{1}^b, w_{2}^b, \cdots, w_{P}^b] [w1b,w2b,⋯,wPb], 通过check-up table W e ∈ R V × D \mathbf{W}_e \in \mathbb{R}^{V \times D} We∈RV×D ( V V V 表示所有语料的单词数量, D D D 表示单词向量维度),将每个单词映射成词向量 [ e 1 b , e 2 b , ⋯ , e P b ] [\mathbf{e}_{1}^b, \mathbf{e}_{2}^b, \cdots, \mathbf{e}_{P}^b] [e1b,e2b,⋯,ePb] 。
卷积之后通过注意力层及加权求和得到最终的body向量 r b \mathbf{r}^b rb ,具体如下:
a i b = q b ⊤ tanh ( V b × c i b + v b ) , (5) a_{i}^{b}= \mathbf{q}_{b}^{\top} \tanh \left(\mathbf{V}_{b} \times \mathbf{c}_{i}^{b}+\mathbf{v}_{b}\right), \tag{5} aib=qb⊤tanh(Vb×cib+vb),(5)
α i b = exp ( a i b ) ∑ j = 1 P exp ( a j b ) , r b = ∑ j = 1 P α j b c j b . (6) \begin{aligned} \alpha_{i}^{b}&=\frac{\exp \left(a_{i}^{b}\right)}{\sum_{j=1}^{P} \exp \left(a_{j}^{b}\right)} ,\\ \mathbf{r}^{b}&=\sum_{j=1}^{P} \alpha_{j}^{b} \mathbf{c}_{j}^{b}. \end{aligned} \tag{6} αibrb=∑j=1Pexp(ajb)exp(aib),=j=1∑Pαjbcjb.(6)
分类分为主分类(topic categories)和子分类(subcategories),分别通过 c c c 和 s c sc sc 进行表示。
映射层将分类信息从one-hot 分类向量转化为 e c \mathbf{e}^{c} ec 和 e s c \mathbf{e}^{sc} esc 。通过一个单层MLP单元得到对应分类和子分类的向量表示 r c \mathbf{r}^{c} rc 和 r s c \mathbf{r}^{sc} rsc 。具体如下:
r c = ReLU ( V c × e c + v c ) . (7) \mathbf{r}^{c}=\operatorname{ReLU}\left(\mathbf{V}_{c} \times \mathbf{e}^{c}+\mathbf{v}_{c}\right) . \tag{7} rc=ReLU(Vc×ec+vc).(7)
r s c = ReLU ( V s × e s c + v s ) . (8) \mathbf{r}^{s c}=\operatorname{ReLU}\left(\mathbf{V}_{s} \times \mathbf{e}^{s c}+\mathbf{v}_{s}\right) . \tag{8} rsc=ReLU(Vs×esc+vs).(8)
通过一层 单层的MLP 以及 一个共同的询问向量 q v \mathbf{q}_v qv 完成,对 title 的注意力 α t \alpha_{t} αt 计算具体如下,其余类似,分别得到 α t , α b , α c , α s c \alpha_{t}, \alpha_{b}, \alpha_{c}, \alpha_{sc} αt,αb,αc,αsc 。
a t = q v ⊤ tanh ( U v × r t + u v ) , (9) a_{t}=\mathbf{q}_{v}^{\top} \tanh \left(\mathbf{U}_{v} \times \mathbf{r}^{t}+\mathbf{u}_{v}\right) , \tag{9} at=qv⊤tanh(Uv×rt+uv),(9)
α t = exp ( a t ) exp ( a t ) + exp ( a b ) + exp ( a c ) + exp ( a s c ) . (10) \alpha_{t}=\frac{\exp \left(a_{t}\right)}{\exp \left(a_{t}\right)+\exp \left(a_{b}\right)+\exp \left(a_{c}\right)+\exp \left(a_{s c}\right)} . \tag{10} αt=exp(at)+exp(ab)+exp(ac)+exp(asc)exp(at).(10)
通过加权求和得到最终的新闻向量表示 r \mathbf{r} r 。
r = α c r c + α s c r s c + α t r t + α b r b , (11) \mathbf{r}=\alpha_{c} \mathbf{r}^{c}+\alpha_{s c} \mathbf{r}^{s c}+\alpha_{t} \mathbf{r}^{t}+\alpha_{b} \mathbf{r}^{b}, \tag{11} r=αcrc+αscrsc+αtrt+αbrb,(11)
一个用户的交互历史是由多个新闻组成的,通过对多个新闻计算注意力及加权组成最后的用户表示,就可以完成用户模块的建模,具体如下:
a i n = q n ⊤ tanh ( W n × r i + b n ) , (12) a_{i}^{n} =\mathbf{q}_{n}^{\top} \tanh \left(\mathbf{W}_{n} \times \mathbf{r}_{i}+\mathbf{b}_{n}\right), \tag{12} ain=qn⊤tanh(Wn×ri+bn),(12)
α i n = exp ( a i n ) ∑ j = 1 N exp ( a j n ) , (13) \alpha_{i}^{n} =\frac{\exp \left(a_{i}^{n}\right)}{\sum_{j=1}^{N} \exp \left(a_{j}^{n}\right)}, \tag{13} αin=∑j=1Nexp(ajn)exp(ain),(13)
u = ∑ i = 1 N α i n r i . (14) \mathbf{u} =\sum_{i=1}^{N} \alpha_{i}^{n} \mathbf{r}_{i} . \tag{14} u=i=1∑Nαinri.(14)
y ^ = u ⊤ r . (15) \hat{y} = \mathbf{u}^{\top} \mathbf{r}. \tag{15} y^=u⊤r.(15)
通过 K K K 个负例(randomly sampled)及数据集中的正例组成一个 K + 1 K+1 K+1 - 路 二分类 数据元组,采用 softmax 进行预测唯一正例,如下:
p i = exp ( y ^ i + ) exp ( y ^ i + ) + ∑ j = 1 K exp ( y ^ i , j − ) , (16) p_{i} =\frac{\exp \left(\hat{y}_{i}^{+}\right)}{\exp \left(\hat{y}_{i}^{+}\right)+\sum_{j=1}^{K} \exp \left(\hat{y}_{i, j}^{-}\right)}, \tag{16} pi=exp(y^i+)+∑j=1Kexp(y^i,j−)exp(y^i+),(16)
L = − ∑ i ∈ S log ( p i ) . (17) \mathcal{L} =-\sum_{i \in \mathcal{S}} \log \left(p_{i}\right). \tag{17} L=−i∈S∑log(pi).(17)
本文通过结合注意力机制处理tile、body、category 三类 文本信息完成了新闻推荐,是引用较多的 fundation 类作品。