DeepVT论文阅读笔记

DeepVT: Deep View-Temporal Interaction Network for News Recommendation论文阅读笔记

Abstract

存在的问题:

​ 以往的研究大多只是直接应用新闻层面的表征进行用户建模,新闻的标题、摘要、分类等观点只是被隐含和压缩到新闻的单一向量中,这就使得不同新闻中的不同观点无法相互影响。

提出方法

​ 本文首先关注用户建模的视图级信息,并提出了用于新闻推荐的深度视图-时态交互网络(DeepVT)。它主要包含两个组成部分,即二维半因果卷积神经网络(SCCNN)和多操作注意(MoA)。二维半因果卷积神经网络(SCCNN)能同时有效地综合视图级的交互信息和新闻级的时间信息。而 MoA 在自我注意功能中集成了不同的相似性算子,以避免注意偏差并增强鲁棒性。通过与 SC-CNN 合作,视图级的全局交互变得更加充分。

Introduction

​ 根据以往的研究,新闻的不同视图,如标题、摘要和类别,具有不同的特点和信息量。考虑到用户兴趣的多样性和易变性,全面有效地捕捉和融合不同新闻的视图和时间模式至关重要。

​ 现有的新闻推荐工作大多只关注视图交互或时间信息。现有的注意力方法仅使用单一的相似性函数来衡量新闻推荐中不同成分的相关性,不足以捕捉不同视图中复杂的相关内容。

​ 即使同时考虑了视图交互和时间信息,用户兴趣仍然是在不同粒度上分别独立建模的。也就是说,只有通过整合视图级或词级的相应信息,将每条新闻表示为单一向量后,才能根据这些新闻级向量对用户兴趣进行建模。在用户建模的过程中,视图级信息被压缩并被间接考虑,这使得不同新闻中的不同视图无法同时交互。

​ 而在真实场景中,不同视图和时间模式的组合更有助于对用户进行特征描述。如果不同新闻中的不同观点之间没有局部的观点-时间互动,模型可能无法把握用户的直观兴趣并给出准确的推荐。只有同时考虑视图和时间的交互,才能发现用户的潜在兴趣,更准确地向用户推荐新闻。

​ 受上述观察结果的启发,我们提出了 DeepVT,以捕捉复杂的视图-时间交互模式,用于新闻推荐。据我们所知,我们首先保留了不同新闻之间的视图级信息,并将其用于用户建模。用户建模的核心模块包括两部分,即二维半因果 CNN(SC-CNN)和多操作注意(MoA)。首先,我们提出的二维半因果 CNN 可以同时合成不同新闻中不同视图的信息,它在视图维度上是正常的,在新闻维度上是因果和时间的,从而避免了信息泄露。它还可以通过堆叠更多具有不同滤波器大小的层来充分学习不同时间跨度的用户兴趣。

​ 另外,我们提出的多算子注意力机制在视图层面将不同的自注意力函数与不同的相似性算子进行合成,使得不同视图之间的交互更加充分,直观地提高了模型的鲁棒性和泛化能力。同时,它还能弥补 SC-CNN 在全局视图级交互方面的不足。因此,DeepVT 在用户建模时兼顾了时间和空间效率、局部和全局交互以及视图-时间多层次交互。

Method

​ 本文的模型框架如下:

pkIY4kF.png

​ 我们的框架有三大模块,包括新闻编码模块、用户建模模块和点击预测模块。我们将自下而上地对它们进行阐述。首先,新闻编码模块用于获取新闻中各组成部分的表征。然后,将浏览新闻的一系列编码向量输入用户建模模块,该模块由二维半因果 CNN(SC-CNN)和多操作注意(MoA)组成。我们的主要贡献也体现在这一核心模块中。它可以全面考虑时间点击信息和不同新闻之间的视图级交互。最后,我们使用点击预测模块获得用户和候选新闻的最终表示,并将它们匹配起来计算用户点击候选新闻的点击概率。我们模型的推理流程如算法 1 所示。

pkIYbOx.png

新闻建模模块

​ 新闻编码模块旨在将新闻的不同视图(包括标题、摘要、类别和子类别)转换为相应的向量表示。由于新闻中的不同成分或视图代表了不同的信息,因此我们并没有将它们提前整合压缩成新闻的密集表示,而是保留了新闻中每个视图的表示。新闻编码模块的结构如图 2 右侧所示。标题和摘要由一系列单词组成,可视为文本特征。相应地,类别和子类别可视为标签特征。正如之前的新闻推荐方法所述,我们使用不同的方法来处理两种类型的视图。

​ 对于新闻文章中的文本特征,有三个层次可以获得密集表示:嵌入层、编码层和池化层。

​ 在嵌入层就是把单词转化为语义向量。

​ 在编码层中就是使用CNN来对单词嵌入序列进行编码,捕捉单词的重要上下文。

​ 在池化层中,注意力机制用于将编码向量序列转换为词级的密集向量。它可以通过压缩向量中的不同权重来考虑不同词之间的重要性。最后获得标题和摘要的表示\(\hat{h^t}\)\(\hat{h^a}\)

​ 对于新闻文章中的标签特征,即类别和子类别,采用两层网络来获得编码表示。因为类别特征是一个离散的标签,而不是一个序列,所以我们不需要使用注意机制来像文本特征一样压缩它们。

​ 第一层还是嵌入层,将标签转化为嵌入向量。

​ 第二层是编码层,来学习类别的隐藏表示,最后获取类别和子类别的编码表示\(\hat{h^c}\)\(\hat{h^s}\)

​ 到目前为止,在新闻编码模块中获得了\(\mathbf{\hat{h}}^t,\mathbf{\hat{h}}^a,\mathbf{\hat{h}}^c,\mathbf{\hat{h}}^s\)的表示。新闻的最终输出可以看作是这些视图表示的连接

​ 浏览过的新闻和候选新闻都可以通过该模块获得相应的表征,这些表征将被输送到下一步的用户建模模块和点击预测模块。特别要指出的是,与以往的新闻推荐方法不同,在我们的框架中,新闻并不表示为一维向量,因为不同的视图会随着时间的推移同时与不同的新闻发生交互。

用户建模模块

​ 用户建模模块示意图如下:

pkItU39.png

​ 如图 3 所示,该模块是我们模型的核心,旨在从用户浏览的新闻中学习用户表征。我们为这一模块提出了两个新颖的部分,即二维半因果 CNN(SC-CNN)和多操作注意(MoA)。它可以综合不同时间跨度的用户兴趣,并查看不同时间范围内的交互。

2D半因果CNN

​ 如图 4 所示,我们提出了前人在文本到语音任务中提到的二维半因果 CNN。与传统 CNN 相比,SC-CNN 可以捕捉一维的单向信息和另一维的双向信息。更具体地说,我们对传统 CNN 进行了简单而有效的修改,即在新闻维度上改变填充的位置,使内核只捕捉新闻级的前向信息。对于视图维度,内核仍能正常捕捉双向信息。因此,SC-CNN 除了能同时捕捉不同新闻中的不同视图信息外,还能捕捉不同新闻中的同一特征和同一新闻中的不同特征。SC-CNN 还能有效解决新闻维度中的时间信息泄露问题。此外,短期兴趣和长期兴趣都会对用户行为产生影响。通过堆叠不同内核大小的 SC-CNN,可以进一步捕捉短期兴趣之外的长期兴趣。我们将以获取短期兴趣的过程为例,详细说明 SC-CNN 的作用。

pkItTUS.png

​ 我们首先将浏览过的每条新闻 𝑁𝑖 堆叠起来,形成用户的初始表示 \(\mathbf{U}\in\mathbb{R}^{dim\times m\times t}\),其中 𝑡 是新闻的长度,𝑚 是上面提到的特征的大小,正常为4。𝑖-th新闻和𝑗-th视图的表示为 u𝑖𝑗 ∈ R 𝑑𝑖𝑚。然后,利用 SC-CNN 捕获短期兴趣如下:

\(\tilde{\mathbf{u}}_{i,j}=f(\Theta\oplus_{k=0 l=0}^{w^{\prime} w^{\prime}}\mathbf{u}_{i-2k,j\pm l}+\mathbf{b}_f),\)

\(\oplus_{k=0 l=0}^{w^{\prime} w^{\prime}}\mathbf{u}_{i-2k,j\pm l}\)表示向量从\(\mathbf{u}_{i-2w^{\prime},j-w^{\prime}}\)连接到\(\mathbf{u}_{i,j+w^{\prime}}\)

\(\Theta\in\mathbb{R}^{kn^{\prime}\times(2w^{\prime}+1)^2dim}\)是卷积核的大小,𝑘𝑛′ 和 2𝑤′ + 1 是滤波器的数量和窗口大小。我们将𝑘𝑛‘设置为与𝑑𝑖𝑚相同。然后我们可以得到用户的短期表示\(\tilde{\mathbf{U}}\in\mathbb{R}^{dim\times m\times t}.\)

​ 我们也可以用同样的方法计算长期兴趣\(\bar{\mathbf{U}}\in\mathbb{R}^{dim\times m\times t}.\)的表示。不同的是使用了另一个卷积核。

​ 这里看的不是很懂,只知道用了一个特殊的卷积方式来获取各种表示,这种卷积方式的优势体现在哪不是很明白

多操作注意

​ 虽然 SC-CNN 可以捕捉时间和空间信息,但问题在于,由于 CNN 的特性,只有局部特征可以相互影响。为了解决这个问题,我们使用视图级的自我关注来实现全局交互,这与以往使用新闻级的关注不同。直观地说,多重注意函数避免了单一注意的偏差,从而使模型具有更好的鲁棒性和概括性。如图 3 所示,不同的自我关注函数用于捕捉不同的相关性。然后,另一个注意函数综合了之前的注意结果。假设注意力函数为\(\mathbf{r}=attn(\mathbf{\bar{u}_i},\Omega)\)。其中,𝛀 表示注意力函数中要学习的权重,而 \(\mathbf{\bar{u}_i}\)则表示\(\bar{\mathbf{U}}\) 中新闻文章的第 𝑖 个视图。更具体地说,根据不同的相似性算子𝑔𝑙,可以计算出不同的注意力表征r𝑙,我们使用三种算子来实现相似性函数 𝑔𝑙 。

\(\begin{aligned} &\boldsymbol{s}_j^i&& =g^l(\bar{\mathbf{u}}_i,\bar{\mathbf{u}}_j), \\ &\boldsymbol{a}_j^i&& =\frac{\exp(s_j^i)}{\sum_{k=1}^m\exp(s_k^i)}, \\ &\mathbf{r}_i^{\boldsymbol{l}}&& =\sum_{j=1}^ma_j^i\bar{\mathbf{u}}_j. \end{aligned}\)

\(\begin{aligned} &g^1(\bar{\mathbf{u}}_i,\bar{\mathbf{u}}_j) =\mathbf{q}^{1^\mathrm{T}}\tanh(\mathbf{W}^1\mathbf{\bar{u}}_i+\mathbf{W}^2\mathbf{\bar{u}}_j), \\ &g^2(\bar{\mathbf{u}}_i,\bar{\mathbf{u}}_j) =\bar{\mathbf{u}}_i^\mathrm{T}\mathbf{W}^3\bar{\mathbf{u}}_j, \\ &g^3(\bar{\mathbf{u}}_i,\bar{\mathbf{u}}_j) =\mathbf{q}^{2^\mathrm{T}}\tanh(\mathbf{W}^4(\mathbf{\bar{u}}_i\odot\mathbf{\bar{u}}_j)), \end{aligned}\)

​ 接下来,我们用另一个注意函数聚合这些结果\(\{\mathbf{r}^l\}_{l=1}^3\)

\(\begin{aligned} &s_l=\mathbf{q}_{r}^{T}\tanh(\mathbf{W}_{r}\mathbf{r}^{l}+\mathbf{b}_{r}), \\ &a_l=\frac{\exp(s_l)}{\sum_{j=1}^3\exp(s_j)}, \\ &\mathbf{r}=\sum_{l=1}^{3}a_{l}\mathbf{r}^{l}, \end{aligned}\)

​ 众所周知,传统的注意力函数无法捕捉时间信息。SCCNN 与 MoA 的结合是否能融合全局特征和时间信息值得考虑。为了简化问题,我们使用一个自注意函数 𝑔 和一层 SC-CNN 以及一层特征图,下面就是证明这个SC-CNN和MoA可以在视图水平上捕获时间信息和全局交互。

点击预测模块

​ 该模块用于根据之前计算的候选新闻和用户的表示预测用户是否会点击候选新闻。对于候选新闻,我们使用注意力池从不同的视图表征中获取新闻表征

\(\mathbf{n}=\sum_{i\in\{t,a,c,s\}}a_i\hat{\mathbf{h}}^i,\quad a_i\propto\exp(\mathbf{q}_n^T\tanh(\mathbf{W}_n\hat{\mathbf{h}}^i+\mathbf{b}_n)),\)

​ 对于用户兴趣的表征,最终表征是浏览过的新闻表征的加权和

\(\mathbf{u}^{\prime}=\sum_{i=1}^ta_i\mathbf{\hat{u}}_i,\quad a_i\propto\exp(\mathbf{q}_u^T\tanh(\mathbf{W}_u\mathbf{\hat{u}}_i+\mathbf{b}_u)),\)

​ 最后的点击预测分数为:\(\hat{c}=\mathbf{u^{\prime}}^T\mathbf{n}.\)

模型训练和预测

​ 这里采用的是传统的损失函数,这里就不多解释了,具体见原文

总结

​ 总结一下,这篇文章第一次看比较难懂,需要一些CNN的前置知识。按照模型图来总结一下吧。

​ 首先是新闻编码器模块,这里比较好懂,就是把新闻标题、摘要、类型和子类型分别进行建模,最后合并在一起作为新闻的建模。

​ 然后是用户建模的模块,分为两个部分,一个是使用二维半因果CNN获取用户的短期兴趣,然后在短期兴趣的基础上重复使用这个CNN来获取用户的长期兴趣。之后采用了多种操作的注意力的方式,也就是每次注意力聚合都采用不同的注意力方式,最后合并这三种注意力的表示时也是使用了注意力的方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744762.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播预约丨《指标体系建设实战》第四期:如何构建全面的指标管理体系

指标是反映企业的各项核心业务活动、管理成效的数据体系,指标体系作为联结业务逻辑与数据实体的关键桥梁,是构建高质量数据统计的基础单元,并在量化业务绩效和效果评估中扮演着核心角色。 为了更好地服务于客户并提供切实可行的实践指导,自4月24日起,袋鼠云将推出全新《指…

shr不能创建出差单可能存在的问题

shr不能创建出差单可能存在的问题时间冲突 OTP设置问题​​

暑期集训shellcode5(手搓机器码)

拖进ida里面反汇编再让人工智能分析(我是废物)(后来给源码了,直接上源码) #include <string.h> #include <stdio.h> #include <stdlib.h> #include <inttypes.h> #include <capstone/capstone.h> #include <sys/mman.h>int upkeep() …

MySQL学习笔记——索引

索引 0.前言 本文是跟着网课学习的时候随手记录的一篇关于MySQL索引的学习笔记 1.索引概述 1.1.索引介绍 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样…

快速部署 HBase 测试环境

快速部署 HBase 测试环境 第一步:下载软件,在HBase官网下载最新版, 找到 bin,点击下载,比如我这里下载的是 hbase-2.5.6-bin.tar.gz 第二步:解压软件 $ tar -zxvf hbase-2.5.6-bin.tar.gz $ cd hbase-2.5.6第三步:启动软件 $ ./bin/start-hbase.sh $ ./bin/hbase-daemon…

【YashanDB知识库】用户密码带@字符时exp和imp无法使用

【问题分类】数据导入导出 【关键字】YAS-00404、数据导入导出、密码、特殊字符@、exp、imp 【问题描述】 当用户密码带@字符时,使用exp和imp导入导出数据,使用转义符仍然出现报错且yasql可以使用相同的转义方式正常登录 【问题原因分析】exp和imp的密码没有适配特殊字符 【解…

写了一个json小工具,希望大家体验(Mac平台)

用rust写了一个json小工具“JSON PICKER”,欢迎大家试用:https://github.com/davelet/json-picker/releases/tag/V0.2动机是平常开发的时候,经常遇到大段json,里面的很多字段是不需要的。我所在的项目组在接口对接上出现了reponse达到数兆字节的情况市面上已经有不少json工…

Go微服务开发指南

在这篇深入探讨Go语言在微服务架构中的应用的文章中,我们介绍了选择Go构建微服务的优势、详细分析了主要的Go微服务框架,并探讨了服务发现与注册和API网关的实现及应用。关注TechLead,复旦博士,分享云服务领域全维度开发技术。拥有10+年互联网服务架构、AI产品研发经验、团…

共享库soname机制

介绍共享库soname命名机制目录前言共享库版本号共享库命名机制realnamesonamelinkname总结参考文章 前言 在使用第三方库时,我们会发现第三方库会提供一组文件,他们的后缀一般是.so(如libname.so),.so.x和.so.x.y.z。本文讨论他们之间的关系。 共享库版本号 共享库一般会由…

idea打开/导入maven项目 + 移除

——————如何导入 方法1———— 右侧maven——》点击加号找到要但如项目的pom.xml文件——》ok 方法2———— file——》project structure……modeles——》加号 import module 找到要导入项目的pom.xml文件——》ok 右下角apply——》ok 这两个方法都可以导入 ———…

抢占智能驾驶“智高点”,仿真测试或将是必备的“加速剂”

​在智能驾驶系统的开发中,参考V模型开发流程,仿真测试通常包含多个阶段:MIL(模型在环)—— 用于验证理论模型,软件在环(SIL)—— 测试软件组件,硬件在环(HIL)—— 集成硬件组件进行测试,车辆在环(VIL)—— 模拟车辆与环境的交互,以及实车道路测试(包括封闭场地…

Tita的OKR:产品经理的23个OKR案例(下)

让我们把产品管理和产品负责人的活动分为4个大的领域,有时是一个人垂直地处理所有的问题,有时是战略和战术的责任分工,所以要相应地选择。愿景和战略 构思、调整、验证、优先级确定 构建、衡量、学习 发布和增长接下来我们继续讨论,让我们把这4个大的领域分解成小的领域,让…