MTRec论文阅读笔记

MTRec: Multi-Task Learning over BERT for News Recommendation论文阅读笔记

Abstract

存在的问题:

​ 现有的新闻推荐方法通常仅根据新闻标题来学习新闻表征。为了充分利用新闻信息的其他字段(如类别和实体),一些方法将每个字段视为附加特征,并通过细心的池化将不同的特征向量组合起来。随着 BERT 等大型预训练模型在新闻推荐中的应用,上述纳入多字段信息的方法可能会遇到挑战:压缩类别和实体信息的浅层特征编码与深度 BERT 编码不兼容

解决方案:

​ 本文提出了一种多任务学习框架,将多字段信息纳入 BERT,从而提高了 BERT 的新闻编码能力。此外,我们还根据不同任务的梯度冲突修改了它们的梯度,从而进一步提高了模型的性能。

Introduction

​ 我们在使用BERT来结合其他领域的信息时可能会遇到挑战:压缩类别和实体信息的浅层特征编码与标题的深层 BERT 编码并不兼容。因此,当我们在新闻推荐中使用大型预训练模型时,就会出现多领域信息适应性不强的问题。

​ 在本文中,我们提出了一种用于新闻推荐的新型多任务学习框架,命名为 MTRec,以有效地整合多领域的信息。

​ 具体来说,我们使用 BERT 将新闻标题编码为新闻嵌入,并在 BERT 的基础上设计了两个辅助任务,即类别分类和命名实体识别(NER)。这两个辅助任务与主要的新闻推荐任务一起训练。我们相信,这种多任务方式可以帮助 BERT 更好地捕捉新闻语义。为了进一步提高模型性能,我们采用了最近提出的梯度手术技术。该技术消除了多任务训练过程中不同任务之间的梯度冲突。 以前的研究研究的是同质的多领域新闻信息,包括标题、摘要和正文,而我们研究的是标题、类别和实体,它们是异质的,因此可以从不同角度提供有价值的信息。最后,我们发现将所提出的多任务学习与传统的多领域学习相结合可以进一步提高模型的性能。

Method

​ 本文的算法结构如下:

pkWLgiD.png

新闻推荐的框架

​ 在新闻推荐框架中有三个主要组件,即新闻编码器、用户编码器和点击预测器。

新闻编码器

​ 对于每条新闻 n,我们使用预先训练好的 BRET对其标题进行编码。我们将历史点击新闻 Nh 和候选新闻 Nc 的编码向量分别记为\(\mathbf{R}^h = [\mathbf{r}_1^h,\mathbf{r}_2^h,...,\mathbf{r}_I^h]\)\(\mathbf{R}^c=\begin{bmatrix}\mathbf{r}_1^c,\mathbf{r}_2^c,...,\mathbf{r}_J^c\end{bmatrix}\)

用户编码器

​ 为了从历史点击新闻的表征中获得用户表征,现有方法通常采用顺序模型或注意力模型。在本文中,我们采用加法注意作为用户编码器来压缩历史信息 Rh 。用户表示 ru 则表示为:

\(\mathbf{r}^u=\sum_{i=1}^Ia_i^u\mathbf{r}_i^h, a_i^u=\text{softmax}(\mathbf{q}^u\cdot\tanh(\mathbf{W}^u\mathbf{r}_i^h)),\)

点击预测器

​ 对于每条候选新闻,我们通过点积匹配候选新闻向量\(r_j^c\)和用户表征\(r^u\),得到其兴趣分值\(s_j=\mathbf{r}_j^c\cdot\mathbf{r}^u.\)

损失函数

​ 损失函数就是传统的损失函数

\(\mathcal{L}_{Main}=-\sum_{i=1}^{|\mathcal{D}|}\log\frac{\exp(s_i^+)}{\exp(s_i^+)+\sum_{j=1}^L\exp(s_i^j)},\)

多字段信息

​ 除了新闻内容(如标题),新闻推荐中还有其他有价值的信息,如类别标签和实体注释,我们称之为多字段信息。为了充分利用多字段信息,现有方法通常将其作为额外的输入特征。首先通过嵌入查找和关注机制将每个信息字段(即标题、类别和实体)转化为向量。然后,标题、类别和实体的表征\(\mathcal{R}=\{\mathbf{r}^t,\mathbf{r}^c,\mathbf{r}^e\}\)通过多字段学习合并为最终的新闻表征\(\tilde{r}\)

\(\widetilde{\mathbf{r}}=\sum_{\mathbf{r}_i\in\mathcal{R}}w_i\mathbf{r}_i, w_i=\text{softmax}(\mathbf{q}^r\cdot\tanh(\mathbf{W}^r\mathbf{r}_i)),\)

​ 虽然多字段学习对传统文本编码有效,但对深度 BERT 编码可能效果不佳。因为压缩类别和实体信息的浅层特征编码与深层 BERT 编码可能不在同一特征空间,直接将它们结合在一起可能会造成不兼容问题,从而无法有效利用多字段信息。

多任务学习

​ 为了有效利用 BERT 新闻编码器的多场信息,我们建议在 BERT 的基础上采用多任务学习,并在此基础上增加两项辅助任务:类别分类和命名实体识别。

类型分类

​ 为了纳入新闻类别信息,我们在 BERT 的基础上设计了一个分类任务,利用 [CLS] 嵌入来预测新闻 ni 的类别分布:

\(\mathbf{\hat{p}}_i^c=\mathrm{softmax}(\mathbf{W}^c\mathbf{r}_i+\mathbf{b}^c),\)

​ 于是,类别分类任务的损失函数为:

\(\mathcal{L}_{\text{Category}}=-\frac1I\sum_{i=1}^I\sum_{k=1}^{K^c}p_{i,k}^c\log(\hat{p}_{i,k}^c)),\)

命名实体识别

​ 我们还在 BERT 的基础上设计了一个 NER 任务,使模型能够识别标题中的重要实体,从而更好地匹配感兴趣的新闻。具体来说,我们根据精确匹配来定位新闻标题中的给定实体,并用 "B "表示实体的开头词,"I "表示内部词。标题中的其他非实体词用 "O "表示。然后根据 BERT 输出嵌入执行标签预测任务:

\(\mathbf{\hat{p}}_{t_i}^n=\mathrm{softmax}(\mathbf{W}^n\mathbf{r}^{t_i}+\mathbf{b}^n),\)

​ 然后,NER 任务的损失函数表述为:

\(\mathcal{L}_{\mathrm{NER}}=-\frac1I\sum_{i=1}^I\sum_{l=1}^{l_i}\sum_{k=1}^{K^n}p_{l,k}^n\log(\hat{p}_{l,k}^n)),\)

​ 其中,Kn 是所有 NER 标签的数量,li 是第 i 条新闻的标题长度。

​ 我们同时优化主任务、类别分类和 NER 任务的损失函数,从而得出最终的损失函数:

\(\mathcal{L}_{\mathrm{MTRec}}=\mathcal{L}_{\mathrm{Main}}+\mathcal{L}_{\mathrm{Category}}+\mathcal{L}_{\mathrm{NER}}.\)

基于梯度手术进行多任务学习

​ Yu 等人发现,多任务学习并不总是有益的,因为不同任务之间可能存在梯度冲突。如图 3(a)所示,这个问题意味着不同任务的梯度方向会形成一个大于 90◦ 的角度,从而相互伤害。为了缓解这一问题,Yu 等人提出了一种称为梯度手术(Gradient Surgery,GS)的技术,即把第 i 个任务 gi 的梯度投影到另一个冲突任务梯度 gj 的法平面上:

pkf9UJ0.png

\(\mathbf{g}_i=\mathbf{g}_i-\frac{(\mathbf{g}_j\cdot\mathbf{g}_i)}{\left\|\mathbf{g}_j\right\|^2}\cdot\mathbf{g}_j.\)

​ 虽然 GS 在一定程度上是有效的,但我们的任务与 Yu 等人的普通多任务学习有些不同:我们的目的是利用辅助任务来提高主任务的性能,而不是对它们一视同仁。因此,对主要任务进行较少的梯度修改是有益的。为此,我们对原 GS 稍作修改,首先合并辅助任务的梯度,然后采用因子 λ 对其进行缩放。

\(\mathbf{g}_{aux}=\lambda(\mathbf{g}_{category}+\mathbf{g}_{ner}),\)

​ 然后,我们在主要任务和合并后的辅助任务的梯度之间应用 GS(图 3(c)),得出最终梯度 g(图 3(d))。

总结

​ 整篇文章讲的还是比较清晰,这里来整理一下,按照模型图来总结一下。

​ 本篇文章的重点是在多任务学习上,新闻编码器采用的是BERT。在多任务学习中,主要添加了两类任务,一个是类别分类,一个是命名实体识别。

​ 首先来说一下类别分类,也就是根据新闻编码器的新闻输出表示来获取新闻的类别分布。

​ 然后是命名实体识别,感觉跟分类类似,只不过这个是要识别的是每个词的标签,包括是不是实体开头词,内部词以及非实体词。

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

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

相关文章

毕业设计:基于单片机的能耗分析系统

写在前面 笔者不才,过去一年中一半的时间在准备考研,博客园无心打理,显得荒芜了。到如今临近毕业,找的工作实事求是的讲也只是专业相关,并不完全对口,估计一段时间之内都没法亲自做开发了。虽然去的也是大公司,培养和各方面的保障都不错,但是对于学了四年技术(惭愧地说…

探索前端报表:如何实现无预览打印解决方案或静默打印?

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/在前端开发中,除了将数据呈现后,我们往往需要为用户提供,打印,导出等能力,导出是为了存档或是二次分析,而打印则因为很多单据需要打印出来作为主要的单据来进行下一环节的票据支撑, 而前端打印可以说是…

【SVN】 设置过滤上传文件

项目级过滤文件 1.1 在项目空白处,右键选择SVN-Properties1.2 New -> Other -> 新建一个“svn:global-ignores”属性1.3 查看效果 选中上传项目,右键-》SVN->Add如图所示,.vs、bin、obj文件都过滤了全局过滤文件配置 2.1 在项目工作根目录上,右键 -> TortosieS…

如何通过文件分发系统,实现能源电力企业文件的安全分发流转?

随着企业业务的快速发展,能源电力企业会在全国乃至全球,设立总部-分部-办事处/网点等多层级的结构,因此会涉及自动化的文件分发的业务场景。文件分发系统是一种将文件从一个地方自动传输到多个接收者的过程,可以提高工作效率,确保信息的及时传递和文件的一致性。文件分发系…

跨境传输需要遵守哪些准则,如何做到有效管控?

在全球化的商业环境中,跨国企业面临着数据跨境传输的挑战。随着业务的扩展,企业需要在不同国家和地区之间高效、安全地传输大量数据。选择合适的跨境传输方案对于保障数据安全、提高业务效率、遵守法律法规至关重要。跨境传输数据需要遵守的准则和规定主要包括以下几点: 1.数…

ip和端口基础知识

TCP/IP体系结构 - 网络通信的基础HTTP协议 - 网站访问的基础其他协议 - HTTPS、ARP、ICMP、DNS①什么是ip地址 <1>IP地址是电子设备在互联网上的唯一标识 <2>用来在互联网中寻找电脑②内网ip和公网ip <1>内网ip:路由以内的网络,可以连接互联网,但是互联…

自建搜索引擎-基于美丽云

Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引…

向量点乘为降维,叉乘为升维

本文转自 https://baijiahao.baidu.com/s?id=1787300641186091766&wfr=spider&for=pc 总结:向量叉乘是诞生了一个新的方向,这个方向垂直于原向量组成的平面。点乘的好处是将高维降低到1维,可以在1个维度上讨论数值问题。 上几篇《白话高中数学》聊完了向量怎么来的…

camunda快速入门(五):DMN规则引擎如何使用

在本节中,您将学习如何使用 BPMN 2.0 业务规则任务和 DMN 1.3 决策表将决策自动化添加到流程中。在本节中,您将学习如何使用 BPMN 2.0 业务规则任务和 DMN 1.3 决策表将决策自动化添加到流程中。 1、将业务规则任务添加到流程 使用 Camunda Modeler 打开Payment Retrieval(付…

2024暑假集训测试1

前言比赛链接。排名历程:\(3→5→3\),因为 \(T1\) 的 special judge 是后来加上的,导致部分人挂了分,赛后安排了重测,就变成了 \(rank5\),赛后发现 \(T1\) 数据过水,重新更新了数据,卡掉了很多人的假做法,又成了 \(rank3\)。 T1 已知合法的分组有 \(\begin{cases}0~0~…

SpringBoot彩蛋之定制启动画面

写在前面 在日常开发中,我们经常会看到各种各样的启动画面。例如以下几种 ① spring项目启动画面② mybatisplus启动画面③若依项目启动画面还有很多各式各样好看的启动画面,那么怎么定制这些启动画面呢? 一、小试牛刀 ① 新建一个SpringBoot项目②在项目的resources目录下新…

dBFS详解

什么是dBFS? dBFS(decibels relative to full scale)是描述音频信号在数字系统中的幅度的单位。它表示信号电平相对于数字系统的满刻度(Full Scale)的分贝值。dBFS的满刻度通常被认为是数字音频系统中所能处理的最大电平。 dBFS的计算 在数字音频系统中,dBFS的计算公式如…