“MTRec: Multi-Task Learning over BERT for News Recommendation” MTRec:用于新闻推荐的BERT上的多任务学习
-
Abstract
现有的新闻推荐方法通常只根据新闻标题来学习新闻表征。
随着BERT等大型预训练模型在新闻推荐中的采用,上述纳入多字段信息的方式可能会遇到挑战:压缩类别和实体信息的浅层特征编码与深度BERT编码不兼容。
在本文中,我们提出了一个多任务学习框架,将多场信息纳入BERT,从而提高其新闻编码能力。此外,我们根据不同任务的梯度冲突来修改其梯度,这进一步提高了模型的性能。
-
Introduction
以前的神经方法通常只根据新闻标题来学习新闻表征向量,然后通过顺序或用心的模型将之前浏览过的新闻汇总起来学习用户表征。虽然有效,但这些方法只利用了标题信息,而忽略了其他有价值的新闻信息,如类别和实体,我们称之为多领域信息。
具体来说,我们使用BERT将新闻标题编码为新闻嵌入,并在BERT之上设计了两个辅助任务,即类别分类和命名实体识别(NER)。
-
Method
用户历史点击新闻集合
N h = [ n 1 h , n 2 h , . . . , n I h ] N^h=[n1h,n2h,...,nIh] Nh=[n1h,n2h,...,nIh]
候选新闻集合
N c = [ n 1 c , n 2 c , . . n j c ] Nc =[n1c,n2c,..njc] Nc=[n1c,n2c,..njc]
对于每条新闻,我们有它的标题文本T,类别标签pc,和实体集ε。
-
新闻推荐框架
新闻推荐框架有三个主要组成部分,即新闻编码器、用户编码器和点击预测器。
新闻编码器
对于每个新闻n,我们用预先训练好的BRET对其标题进行编码。具体来说,我们将标记化的文本T送入BERT模型,并采用[CLS]标记的嵌入作为新闻表示r。
我们将历史点击新闻N h和候选新闻N c的编码向量分别表示为Rh = [r1h, r2h, …, rh I ] 和Rc = [rc1, rc2, …, rc J ] 。
用户编码器
在本文中,我们采用加性注意作为用户编码器来压缩历史信息Rh。然后,用户表示ru被表示为:
其中qu和Wu是可训练的参数。
点击预测
对于每个候选新闻,我们通过点乘匹配候选新闻向量rjc和用户表述ru,得到其兴趣得分sj
损失函数
我们采用NCE损失来训练主要的排名模型。
其中s+表示正面新闻的兴趣分数,L表示负面新闻的数量。
-
多领域信息
除了新闻的内容(如标题),新闻推荐中还有其他有价值的信息,例如,类别标签和实体注释,我们称之为多字段信息。为了充分利用多场信息,现有的方法通常将它们作为额外的输入特征。
如图1的例子,每个信息字段(即标题、类别和实体)首先通过嵌入查找和关注机制转化为矢量。
然后,标题、类别和实体的表征R={rt, rc, re}通过周到的多场学习1被合并为最终的新闻表征r e。
其中qr和Wr是可训练的参数。 **虽然对传统的文本编码很有效,但周到的多场学习可能对深层的BERT编码效果不佳。**
-
多任务学习
为了有效地利用BERT新闻编码器的多场信息,我们建议在BERT的基础上采用多任务学习,即类别分类和命名实体识别,如图2所示。
类别划分
为了纳入新闻类别信息,我们在BERT的基础上设计了一个分类任务,它使用[CLS]嵌入来预测新闻的类别分布ni:
其中bc和wc是可训练参数。那么,类别分类任务的损失函数为:
命名实体识别
命名实体识别(NER)其目的是识别语料中人名、地名、组织机构名等命名实体,识别文本中具有特定意义的实体。它是自然语言处理实用化的重要内容,在信息提取、句法分析、机器翻译等应用领域中具有重要的基础性作用。命名实体识别一 方面要识别实体边界,另一方面要识别实体类别(人名、地名、机构名或其他)
我们还在BERT的基础上设计了一个NER任务(Lample等人,2016),这样模型就可以识别标题中的重要实体,从而更好地匹配感兴趣的新闻。
具体来说,我们根据精确匹配来定位新闻标题中的给定实体,用 "B "来表示实体的起始词,用 "I "来表示内部词。标题中的其他非实体词则用 "O "来表示。然后根据BERT的输出嵌入进行标签预测任务
其中rti是第i个符号的输出嵌入,bn和Wn是可训练的参数。因此,NER任务的损失函数被表述为 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c584bc76387747daaccbb249c8e2e39a.png#pic_center) 其中Kn是所有NER标签的数量,li是第i条新闻的标题长度。 我们同时优化主任务、类别分类和NER任务的损失函数,从而得出最终的损失函数: ![在这里插入图片描述](https://img-blog.csdnimg.cn/c4aa36f58366407798d7ead76be9972d.png#pic_center) **梯度手术的多任务学习** 我们的目的是利用辅助任务来提升主任务的性能,而不是平等对待它们。 因此,对主要任务应用较少的梯度修改是有益的。为此,我们略微修改了原来的GS,首先合并了辅助任务的梯度,然后采用因子λ来缩放它们(图3(b)):
-
其中λ根据经验设定为0.3。然后,我们在主任务和合并的辅助任务的梯度之间应用GS(图3(c)),得出最终的梯度g(图3(d))。
。