首页 > 其他分享 >MTRec论文阅读笔记

MTRec论文阅读笔记

时间:2024-07-09 09:33:23浏览次数:15  
标签:BERT mathbf 新闻 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。在多任务学习中,主要添加了两类任务,一个是类别分类,一个是命名实体识别。

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

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

标签:BERT,mathbf,新闻,MTRec,论文,笔记,任务,类别,多任务
From: https://www.cnblogs.com/anewpro-techshare/p/18291086

相关文章

  • Java计算机毕业设计网上求职招聘系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和普及,网络已成为人们获取信息、交流互动的重要平台。在就业市场日益竞争激烈的环境下,传统的求职招聘方式已难以满足求职者......
  • Java计算机毕业设计幼儿园管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育信息化的深入发展,幼儿园作为儿童启蒙教育的重要阶段,其管理模式的现代化与智能化已成为必然趋势。传统的手工记录、纸质管理方式不仅效率低下......
  • Java计算机毕业设计校园共享单车系统的设计与实现(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高校规模的不断扩大和学生人数的增加,校园内的交通问题日益凸显。传统的自行车管理方式不仅效率低下,还存在车辆调度不灵活、租赁流程繁琐、车辆维......
  • javaMap笔记分享
    Map映射(map)是存储键和值间关联(即,键值对)的对象。给定一个键,可以找到其值。键和值都是对象。键必须唯一,但是值可以重复。13.1 支持映射的接口接 口描 述Map将唯一键映射到值NavigableMap扩展SortedMap接口,以处理基于最接近匹配搜索原则的键/值对检索So......
  • java集合笔记分享
    集合 前言集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?集合和数组的区别:   数组的长度是固定的。集合的长度是可变的。   数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的......
  • Java核心技术学习笔记(五)
    一、ArrayList,LinkedList,Vector的相同点与区别Java集合框架提供多种数据结构,其中ArrayList、LinkedList和Vector是常用列表实现。它们具有共同特性,如实现List接口、有序性和可动态调整大小,但也存在底层数据结构、线程安全性和性能等方面的区别。选择哪种集合取决于具体使用场景。......
  • redis学习笔记
    redis笔记1.Redis是什么?Redis(RemoteDictionaryServer)是一个使用C语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作......
  • 谷粒商城学习笔记-2-分布式组件-SpringCloud Alibaba-Nacos注册中心
    文章目录一,Nacos简介1,简介2,Nacos原理剖析二,Nacos服务端安装1,下载nacos-server2,解压启动nacos-server3,验证三,服务注册步骤1,引用Nacas客户端的Jar包2,服务启动类增加注解3,配置Nacos服务器地址四,验证错误记录一,Nacos简介1,简介Nacos是阿里巴巴开源的一个更易于构建云......
  • 【Git 学习笔记】第三章 分支、合并及配置项(下)
    3.4使用rerere合并有冲突的Git版本如果每天都需要合并分支,或者在一个长期维护的特性分支上需要一直相同的代码冲突,那么可以试试gitrerere(reuserecordedresolution)。该命令默认不生效,需要手动配置生效:(可设为用户级配置,添加--global标记)$gitconfigrerere.en......
  • 2024/7/8 笔记
    CF1656Hhttps://www.luogu.com.cn/problem/CF1656H参考DaiRuiChen007的题解:code:usingnamespacestd;#definell__int128_tconstintmaxn=1e3+10;llgcd(lla,llb){ returnb?gcd(b,a%b):a;}constintN=1024,N2=N<<2;structstree{ lltree[N2];......