NAML论文阅读笔记

Neural News Recommendation with Attentive Multi-View Learning论文阅读笔记

这篇也是比较老但是比较经典的文章,来读一下

Abstract

​ 现有的新闻推荐方法通常基于单一的新闻信息(如标题)来学习这些表征,这可能是不够的。在本文中,我们提出了一种神经新闻推荐方法,它可以通过利用不同种类的新闻信息来学习用户和新闻的信息表征。我们方法的核心是新闻编码器和用户编码器。在新闻编码器中,我们提出了一个贴心的多视角学习模型,通过将标题、正文和主题类别视为新闻的不同视角,从它们中学习统一的新闻表征。 此外,我们在新闻编码器中应用了单词级和视图级关注机制,以选择重要的单词和视图来学习信息丰富的新闻表征。在用户编码器中,我们根据用户浏览的新闻来学习用户表征,并应用注意力机制来为用户表征学习选择有信息量的新闻。

Introduction

pkcXE7D.png

​ 我们的工作源于以下几点。首先,一篇新闻文章通常包含不同种类的信息,如标题、正文和主题类别,这些信息对表现新闻都很有用。例如,在图 1 中,第一条新闻的标题表明它是关于一位棒球明星和一支球队之间的交易,而正文则可以提供这笔交易的更详细信息。此外,这则新闻的主题类别也很有参考价值,因为如果用户点击了这则新闻和许多其他相同类别的新闻文章,那么我们就可以推断出她对体育非常感兴趣。因此,纳入不同种类的新闻信息有可能改善新闻推荐中的新闻和用户表征。

​ 其次,不同种类的新闻信息具有不同的特点。例如,标题通常非常简短精炼,而正文则要长很多,内容也更详细。主题类别通常是字数很少的标签。因此,对不同类型的新闻信息应进行不同的处理。

​ 第三,不同的新闻信息可能具有不同的信息量。例如,图 1 中第一条新闻的标题很准确,对表现这条新闻很重要,而第二条新闻的标题则简短、模糊,信息量较小。此外,同一新闻中的不同词语可能具有不同的重要性。例如,在图 1 中,"outfileder "在表示第一条新闻时比 "familiar "更重要。此外,同一用户浏览的不同新闻对于学习用户表征的信息量也可能不同。例如,如果用户浏览了一条非常热门的 "超级碗 "新闻和一条不太热门的 "国际数学奥林匹克 "新闻,那么第二条新闻可能比第一条新闻对推断其兴趣更有参考价值。

​ 在本文中,我们提出了一种具有注意多视图学习(NAML)的神经新闻推荐方法,通过利用不同类型的新闻信息来学习信息性新闻和用户表征。我们的方法包含两个核心部分,即新闻编码器和用户编码器。

​ 在新闻编码器中,我们提出了一个注意力的多视图学习框架,通过将标题、正文和类别作为新闻的不同视角来学习统一的新闻表征。此外,由于不同的单词和视图对新闻表征的信息量可能不同,我们应用单词级和视图级注意力网络来选择重要的单词和视图,以学习信息量丰富的新闻表征。

​ 在用户编码器中,我们从用户点击新闻的表征中学习用户的表征。由于不同的新闻对用户表征的信息量也可能不同,我们将注意力机制应用到新闻编码器中,为用户表征学习选择有信息量的新闻。

Method

​ 在本节中,我们将介绍用于神经新闻推荐的 NAML 方法。我们的方法有三个主要模块,即具有多视角学习功能的新闻编码器,用于学习新闻表征;具有注意力机制的用户编码器,用于从用户浏览的新闻中学习用户表征;以及点击预测器,用于预测用户浏览候选新闻文章的概率。我们的方法架构如图所示。

pkcjUaD.png

新闻编码器

​ 新闻编码器模块用于从标题、正文和主题类别等不同类型的新闻信息中学习新闻表征。由于不同种类的新闻信息具有不同的特点,我们提出了一种注意力的多视图学习框架,通过将每种新闻信息视为特定的新闻视角来学习统一的新闻表征,而不是简单地将它们合并为一个长文本进行新闻表征。如图 2 所示,新闻编码器由四个主要部分组成。

标题编码器

​ 用于从标题中学习新闻表述。标题编码器共有三层。

词嵌入

​ 用于将新闻标题从词序列转换为低维语义向量序列。将新闻标题的词序列表示为\([w_1^t,w_2^t,...,w_M^t]\),其中 M 是该标题的长度。通过词嵌入查找表 We ∈ RV ×D,其中 V 和 D 分别为词汇大小和词嵌入维度,将其转换为词向量序列\([\mathbf{e}_1^t,\mathbf{e}_2^t,...,\mathbf{e}_M^t]\)

卷积神经网络

​ 新闻标题中单词的局部语境对于学习其表征非常重要。因此,我们使用 CNN 来学习上下文单词表征,方法是捕捉它们的局部语境。表示第i个单词的上下文代表表示为\(c_i^t\),计算方法为:

\(\mathbf{c}_i^t=\mathrm{ReLU}(\mathbf{F}_t\times\mathbf{e}_{(i-K):(i+K)}^t+\mathbf{b}_t),\)

​ 其中,\(\mathbf{e}_{(i-K):(i+K)}^t\)是位置 (i - K) 到 (i + K) 的词嵌入的连接。\(\mathbf{F}_t\in\mathcal{R}^{N_f\times(2K+1)D}\)\(b_t\in \mathcal{R}^{N_f}\)是 CNN 滤波器的内核参数和偏置参数。Nf 是 CNN滤波器的数量,2K + 1 是其窗口大小。这一层的输出是一系列的上下文词表示:\([\mathbf{c}_1^t,\mathbf{c}_2^t,...,\mathbf{c}_M^t].\)

词级别的注意力网络

​ 在学习新闻表征时,同一新闻标题中的不同词语通常具有不同的信息量。例如,在新闻标题 "火箭队以一场胜利结束 2018 年 "中,"Rockets"(火箭队)一词比 "With"(随着)一词在表征这条新闻时信息量更大。因此,识别不同新标题中的重要单词有可能学习到信息量更大的新闻表征。我们建议使用单词级注意力网络来选择每个新闻标题上下文中的重要单词。将新闻标题中第 i 个词的注意力权重记为\(\alpha_i^t\),其公式为:

\(\begin{aligned} &a_{i}^{t} =\mathbf{q}_t^T\tanh(\mathbf{V}_t\times\mathbf{c}_i^t+\mathbf{v}_t), \\ &\alpha_i^t =\frac{\exp(a_i^t)}{\sum_{j=1}^M\exp(a_j^t)}, \end{aligned}\)

​ 新闻标题的最终表征是其单词的上下文表征的总和,并根据其注意力权重进行加权:\(\mathbf{r}^t=\sum_{j=1}^M\alpha_j^t\mathbf{c}_j^t.\)

正文编码器

​ 跟标题编码器一样分为三层,这三层跟标题编码器的三层几乎一样,这里就不多解释了。

类别编码器

​ 用于从它们的类别中学习新闻表示。我们提出在新闻表征学习中同时纳入类别和子类别信息。类别编码器的输入是类别的 ID \(v_c\)和子类别的 ID \(v_{sc}\)。类别编码器有两层。

​ 第一层是类别 ID 嵌入层。它将类别和子类别的离散 ID 转换为低维密集表示(分别表示为\(e^c\)\(e^{sc}\))。第二层是密集层。它通过将类别嵌入转化为以下方式来学习隐藏的类别表示:

\(\mathbf{r}^{c}=\mathrm{ReLU}(\mathbf{V}_c\times\mathbf{e}^c+\mathbf{v}_c),\\\mathbf{r}^{sc}=\mathrm{ReLU}(\mathbf{V}_s\times\mathbf{e}^{sc}+\mathbf{v}_s),\)

注意力池化

​ 不同种类的新闻信息对于学习不同新闻的表示可能具有不同的信息量。例如,在图 1 中,第一条新闻的标题准确且包含丰富的信息。因此,它在表示这则新闻时应具有较高的权重。然而,第二条新闻的标题简短而模糊。因此,在表示这则新闻时,正文和主题类别的权重应高于标题。受这些观察结果的启发,我们提出了一种视图级注意力网络来模拟不同类型新闻信息的信息量,以用于学习新闻表征。标题、正文、类别和子类别的注意力权重分别记为\(\alpha_t,\alpha_b,\alpha_c\mathrm{~and~}\alpha_{sc}\)。标题视图的注意力权重计算公式为:

\(\begin{aligned}&a_{t}=\mathbf{q}_v^T\tanh(\mathbf{U}_v\times\mathbf{r}^t+\mathbf{u}_v),\\&\alpha_{t}=\frac{\exp(a_t)}{\exp(a_t)+\exp(a_b)+\exp(a_c)+\exp(a_{sc})},\end{aligned}\)

​ 新闻编码器模块学习到的最终统一新闻表征是来自不同视图的新闻表征按其注意力权重加权后的总和:

\(\mathbf{r}=\alpha_c\mathbf{r}^c+\alpha_{sc}\mathbf{r}^{sc}+\alpha_t\mathbf{r}^t+\alpha_b\mathbf{r}^b.\)

​ 在我们的 NAML 方法中,新闻编码器模块用于学习用户浏览过的历史新闻和待推荐的候选新闻的表征。

用户编码器

​ 我们的方法中的用户编码器模块用于从用户浏览新闻的表征中学习用户表征。同一用户浏览的不同新闻对该用户而言具有不同的信息量。因此,在用户编码器模块中,我们应用了新闻关注网络,通过选择重要新闻来学习更多的用户表征信息。我们将用户浏览的第 i 条新闻的注意力权重记为\(\alpha_i^n\),计算公式如下:

\(\begin{aligned} &a_i^n =\mathbf{q}_n^T\tanh(\mathbf{W}_n\times\mathbf{r}_i+\mathbf{b}_n), \\ &\alpha_i^n =\frac{\exp(a_i^n)}{\sum_{j=1}^N\exp(a_j^n)}, \end{aligned}\)

​ 用户的最终表征是该用户浏览过的新闻表征按其关注权重加权后的总和:

\(\mathbf{u}=\sum_{i=1}^N\alpha_i^n\mathbf{r}_i,\)

剩下的点击预测和模型训练都是比较经典的,就不重复说明了。

总结

​ 这篇文章还是非常清晰的,这里贴一下原文的conclusion

​ 在本文中,我们提出了一种具有注意多视角学习(NAML)的神经新闻推荐方法。我们的方法的核心是一个新闻编码器和一个用户编码器。在新闻编码器中,我们提出了一个多视图学习框架,通过将标题、正文和类别作为不同的新闻视图来学习统一的新闻表示。我们还将注意机制应用于新闻编码器,以选择重要的单词和观点来学习信息性的新闻表示。在用户编码器中,我们从用户浏览的新闻中学习用户的表示,并应用新闻注意网络来选择重要的新闻来学习信息丰富的用户表示。

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

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

相关文章

ros2 - slam - 使用编码器测量轮子最大速度

新建example26_max_speed_measurement 添加依赖[env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platform = espressif32 ; 指定了使用的平台为Espressif 32 board = featheresp32 ; 指定使用的硬件板为Feather ESP32 framework = arduino ;…

入门Salesforce:必须掌握的20+基础专业术语!

Salesforce的发展令人印象深刻。在过去的20年中,Salesforce创建了一个由管理员、开发人员、顾问和用户组成的生态系统,不断颠覆创新CRM,促进平等和多样性。 作为初学者,探索Salesforce领域就像学习一门新语言。Salesforce中有着大量术语,从潜在客户、自定义对象到仪表板、…

ros2 - slam - 直流电机-编码器脉冲测量与校准

这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。 一、新建工程并导入开源库新建example25_encoder添加依赖[env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platform = …

在开发环境中使用 RawCap 和 Wireshark 排查本地回路地址

如何使用 RawCap 和 Wireshark 排查本地网络请求中的404错误 开发微服务应用时,正确配置网络请求的转发至关重要。本文将通过一个具体示例来展示如何使用 RawCap 和 Wireshark 来监控和分析本地回路请求,并排查导致 HTTP 404 错误的可能原因。 背景 在本例中,用户的浏览器请…

AI冲击创意岗位,OpenAI技术官语出惊人:一些岗位或许本不该存在哈哈,这些段子有意思,太幽默了,篇篇精彩

现在老美在人工智能领域对我们卡脖子了,但人工智能就像一把达摩克利斯之剑,正威胁着越来越多的创意工作岗位。 OpenAI 的首席技术官米拉・穆拉蒂 (Mira Murati) 上个月在达特茅斯大学 Thayer 工程学院的采访中表示:“一些创意岗位可能会消失。但也许它们本来就不应该存在 —…

性能测试:主流压测工具介绍

简介 性能压测工具是用于模拟大量用户访问、负载和压力条件的软件工具,以评估系统、应用程序或服务在高负载条件下的性能表现和稳定性。 这些工具通常用于软件开发、测试、部署前的准备以及生产环境中的性能监测和优化。性能压测工具的主要功能包括模拟用户行为、生成大量的请…

springboot实现异步调用demo

异步操作的简单实现springboot实现异步调用 异步调用特点 异步调用在开发程序中被广泛应用,在异步任务中,主线程不需要阻塞等待异步任务的完成,而是可以继续处理其他请求。 异步调用的特点如下:非阻塞:主线程在调用异步方法后不会等待其完成,而是立即返回。 后台处理:耗…

智慧工地AI行为监控系统

智慧工地AI行为监控系统主要体现在在工地原有的监控系统上面利用智慧工地AI行为监控系统,对分布在工地各处的监控画面传回的视频流进行实时检测。AI行为监控系统可以保障工地施工人员安全,确保工人施工过程及行为符合工地要求规范。这样既保障了工地人员的安全,也同时保证施…

视频监控智能分析技术

视频监控智能分析技术又叫智能视频分析技术,该技术诞生于机器视觉及边缘计算。视频监控智能分析技术是当下在人们生活中应用范围很广的技术之一。智能视频分析技术能够现场监控传回的视频流中抓取图片及人体状态动作信息,建立图片与规则建立映射关系。SuiJi视频监控智能分析技…

TypeScript中,如何利用数组生成一个联合类型

本文由 ChatMoney团队出品 在开发中我们常常会遇到这样一个问题,代码如下: const arr = ["a","b","c","d","e","f","g","h","i","j","k","l",&qu…

图神经网络版本的Kolmogorov Arnold(KAN)代码实现和效果对比

Kolmogorov Arnold Networks (KAN)最近作为MLP的替代而流行起来,KANs使用Kolmogorov-Arnold表示定理的属性,该定理允许神经网络的激活函数在边缘上执行,这使得激活函数“可学习”并改进它们。 目前我们看到有很多使用KAN替代MLP的实验,但是目前来说对于图神经网络来说还没有…

修改yum安装的php的启动用户

在使用yum安装php时,默认情况下,安装完成后php的启动用户是apache 1、编辑php-fpm的配置文件。在大多数Linux系统中,php-fpm的配置文件路径为/etc/php-fpm.d/www.conf。 2、找到配置文件中的`user`和`group`项。默认情况下,`user`的值是apache,`group`的值是apache,即php…

Vue预渲染prerender-spa-plugin+vue-meta-info

前言: 公司现有一个新需求需要在原有的vue2项目上面进行预渲染,进行SEO的优化,在网上进行了一系列的搜索,发现两种简单易上手的方案(1.使用prerender-spa-plugin+vue-meta-info进行打包构建;2.使用nuxt.js在开发过程中就渲染呈现出来) 因是在原有项目基础上进行,所以采…

禅道的使用:如何搭建Ubuntu环境安装禅道

一、禅道安装部署的环境要求 1.禅道安装部署环境推荐使用 Linux + Apache + PHP7.0以上版本+ MySQL5.5以上版本/MariaDB的组合。Nginx其次,不推荐IIS + PHP组合。 2.禅道需要使用PHP的这些扩展:pdo、pdo_mysql、json、filte、openssl、mbstring、zlib、curl、gd、iconv,企业…

vue3.4+最新属性变化

Attribute绑定 新增简写方法 <!-- 与 :id="id" 相同 --> <div :id></div><!-- 这也同样有效 --> <div v-bind:id></div>动态参数 <a v-bind:[demoName]="url"></a>//简写 <a :[demoName]="url&qu…

【Modelsim常见问题】Error: (vsim-3170) Could not find

这个错误发生的原因通常是测试的tb文件模块名和文件名不一致导致,参考如下:

易基因:番茄果实采后处理成熟诱导的DNA甲基化和转录组综合分析 | 作物研究

番茄果实成熟是一个复杂的生理过程,涉及关键基因的去甲基化,改变其转录水平,从而触发一系列生理事件。然而果实采摘后的处理方法,如冷藏、化学处理等,虽然能延长番茄的货架寿命,但通常可能会降低果实品质,目前尚不清楚这些过程是如何改变的。因此,研究采后处理诱导的番…

BPI-M4 Berry USB测试

连接USB鼠标或键盘测试 1、将USB接口的键盘和鼠标插入开发板的USB接口中 2、开发板连接HDMI显示器,并通电启动 3、如果鼠标或键盘能正常操作系统说明USB接口使用正常(鼠标只有在桌面版的系统中才能使用) 连接USB存储设备测试 1、首先将U盘或者USB移动硬盘插入开发板的USB接口…

mac M1 安装miniconda3

进入国内大学镜像库下载安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda 下载包打开终端,开始安装 1、执行命令: bash Miniconda3-latest-MacOSX-arm64.sh 2、输入回车后,阅读文件,输入:q 退出文件 3、输入yes开始安装 4、输入回车选择安装路径- 默认路径…