IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 论文《Neural News Recommendation with Attentive Multi-View Learning》阅读 -> 正文阅读

[人工智能]论文《Neural News Recommendation with Attentive Multi-View Learning》阅读

论文概况

今天带来的论文是发表于 IJCAI 2019 的新闻推荐作品《Neural News Recommendation with Attentive Multi-View Learning》,论文聚焦于对新闻的标题、内容、分类等文字特征进行提取和交叉影响的建模,完成对最终新闻点击结果的预测。

文章提出模型 NAML,成为新闻推荐领域引用较多的作品之一。

illustration

Introduction

模型通过文字feature进行建模,遵照模型结构图可以看到,分为三部分,news encoder模块,user encoder模块以及预测模块。

architecture of NAML

News Encoder Module

news encoder用于提取每个新闻的交叉特征。

news encoder模块又分为四部分,category encoder,title encoder, body encoder以及注意力融合模块。

title 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=1M?exp(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=1M?αjt?cjt?.(4)

其中, V t , v t , q t \mathbf{V}_t, \mathbf{v}_t, \mathbf{q}_t Vt?,vt?,qt? 分别表示映射矩阵,偏置向量以及attention query 向量。

body encoder

同理,针对新闻主体内容(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} αib?rb?=j=1P?exp(ajb?)exp(aib?)?,=j=1P?αjb?cjb?.?(6)

category encoder

分类分为主分类(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)

attentive pooling

通过一层 单层的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=αc?rc+αsc?rsc+αt?rt+αb?rb,(11)

User Encoder

一个用户的交互历史是由多个新闻组成的,通过对多个新闻计算注意力及加权组成最后的用户表示,就可以完成用户模块的建模,具体如下:

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=1N?exp(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=1N?αin?ri?.(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=1K?exp(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=?iS?log(pi?).(17)

论文总结

本文通过结合注意力机制处理tile、body、category 三类 文本信息完成了新闻推荐,是引用较多的 fundation 类作品。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:56:46  更:2022-10-31 12:01:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:17:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码