BERT
在网易新闻时效性上的应用
网易传媒技术团队
全文导读:
在判断新闻时效性时,BERT作为自然语言处理模型具有重要作用。本文提出两个模型改造方案提升模型效果:融合文本特征和类别特征;融合不同粒度的文本语义特征。同时,我们根据任务特点设计了特殊的工程落地方案。具体情况详见下文。
业务背景
近年来,随着网络的普及,互联网成为媒体发声的重要平台,这也导致了新闻发文数据量愈发庞大。如何在繁杂的数据中为用户挑选出适合的文章,这既是各大平台的战略目标,也是一大挑战。
在评估文章内容质量中,新闻的时效性是重要维度。不同类型的文章具有不同的时效敏感性:资讯快报时效敏感性较强;一般的新闻报道次之;盘点、科普类文章的时效敏感性则较弱。
根据文章的时效敏感性设置文章的过期时间,一方面能优化用户体验,避免新闻迟滞这一劣质体验;另一方面,推荐系统侧能根据过期时间给文章设置合适的推荐权重,通过对过期文章的不推荐来减少推荐系统物料库的压力。
任务解读
● 业务定义
我们把此任务定义为文本分类问题,即输入一篇文章到模型,输出该文章不同时效性的置信度。在标准上,我们认为文章的时效性主要分成三个类别:超短效、短效和长效。
● 任务特点
新闻时效性具有跟一般文本分类任务不一样的独特性,以下截取了部分标注好的case。
通过大量观察case,我们发现此项任务的文本可以总结为以下三种:
① 具有很强判断能力的时间模板句。比如超短效的中“明天即将是xxx节”,短效文章的“过几天即将是xxx节日”,我们把这类规则称为“强规则”,有该类型规则直接判断为超短效或者短效。
② 具有相关但判断能力较弱的时间关键句。比如超短效文章中“今天”,“明天”等显眼词汇,短效文章中带有“近日”、“日前”等关键词。带有这些关键词的句子一般是判断超短效和短效的关键依据,但由于其不能直接作为直接判断的证据,这类规则我们称其为“弱规则”。
③ 不具有任何时间相关特征的文章,此类文章基本只出现在“短效”和“长效”文章中。但此类文章的领域类别能辅助文章进行判断,比如“历史”和“情感”类别下经常出现长效文章,“体育”类别下长效文章比例则偏少。
鉴于该任务任务具有以上特点,我们的方案中有以下四种策略进行文章时效性的判断:
① 强规则直接分类。
② 弱规则提取关键句,关键句输入模型。
③ 弱规则改写关键句,关键句输入模型。
④ 文章特征融合类别特征,输入模型。
工程落地方案
在标注case时,我们发现以下标注流程可以进行更加准确的标注:是否为超短效→是短效还是长效。所以,方案中我们遵循下列流程进行判断:
此外,在第三小节中我们提到超短效和短效文章具有“强规则”和“弱规则”特性。我们在超短效判断模块和短效判断模块分别加入不同的规则单元。所以最终的实现方案如下:
我们对部分单元进行解释:
强规则提取器:根据文本领域类别和该类别下的强时间模板,直接判断。
弱规则提取关键句,关键句输入模型:根据领域类别和弱时间关键词提取关键句,部分关键句会进行模板改写(比如天气类别下,对具体日期改写成“今天”,“明天”)。最后仅把关键句输入到模型,由模型自行判断。
融合文本和领域类别输入模型:融合类别特征和文本特征,设计合适的网络结构让模型自行学习如何融合。
基础模型简介
本小节我们对所使用的基础模型进行简单介绍。
BERT【1】是近年来自然语言处理领域中最大贡献的模型。它通过在大规模无监督文本语料中,使用MASK语言模型的方式学习任务无关的文本特征。在多个任务中,均表现出SOTA水平。对于特定任务,只需要部分标注语料让已经预训练的模型进行微调学习,便可适用于特定任务。在此我们简述BERT的重要模块,具体相关细节可以查看原论文。
BERT使用Transformer【2】的encoder作为编码器,其由多个block堆叠而成。每个block结构如下所示:
每个block由两个sub-layer组成。sub-layer1接收前一个block的输出,先经过多头注意力层【2】,得到每个位置的上下文有关向量,之后经过残差层【3】和LN层【4】,输出到sub-layer2。sub-layer2相对简单,由一层前馈网络、残差层以及LN层组成,最后输出即是该block的输出。
BERT使用大规模语聊进行无监督学习。其中包括两个任务,一是MASK语言模型,二是NSP。MASK语言模型即对句子中的某些词用[MASK]标记进行掩盖,让模型对该位置的词进行猜测。具体例子如下所示:
NSP即Next sentence prediction,其猜测给定的两句话原本是否连续。其中,NotNext句子从数据集中随机取样获得。相关例子如下图所示:
由于BERT在大规模语料上已进行了以上两个任务的预训练,模型的参数已学到了大量语言学的知识。对于后续的下游任务,只需读取预训练的模型参数,再进行下游任务的微调学习即可。
模型改造
本小节阐述我们如何基于BERT进行改造,以让其更加适应我们的任务。
● 业务定义
在小节2中我们提到,由于具有弱规则的关键句不能说明该文章一定是超短效或者短效文章,所以需要后续的模型辅助判断。类似于BERT中的预训练步骤,我们使用[SEP]标志分隔开不同的关键句。具体处理如下:
关键句1[SEP]关键句2[SEP]……
我们把上述处理好的文本输入到BERT模型中,使用标注好的数据,使用交叉熵对模型进行有监督的训练。
● 融合类别特征和不同粒度的文本语义模型
在时效性判断的最后一个模块,根据case特点,我们设计了两种模型改造方案提升模型效果。其一是融合文本特征和类别特征,其二是融合不同粒度的文本语义特征。下面我们会对这两个模块进行详细的阐述。
① 融合文本特征和类别特征
给每个领域一个随机的嵌入向量,并把这些向量调整为可训练的。我们使用矩阵表示所有领域的向量,每行为一个领域,每个领域向量的维度为,所以大小为(,)。同时为了让不同领域的相似领域能有更相似的表达(如:“要闻”领域和“时政”领域比较相似),加入了自注意力层融合相似领域信息,如下公式所示。
先通过不同的线性变换,把转换成对应的,,。然后使用得到每个领域之间的相关系数,矩阵相乘大小为(,)。之后除以获得更加稳定的数值。接着使用softmax函数对相关系数进行归一化,得到每个领域之间的相似分数。最后乘以得到融合了各领域信息的输出,我们用进行表示,其大小为(,),每一行是对应行的领域向量融合了其他相关领域向量的最终表示。
对于每篇文章,我们可以事先得到其所属领域类别。取中该领域对应的行,即为该领域类别特征向量,我们标记其为。接着,我们把该向量与文本语义特征向量(记为,此向量会在下个方案讲解如何得到)进行拼接。然后经过一层线性层把拼接的向量转换成融合的特征向量,我们使用tanh作为该层的激活函数,激活之后的向量记为。最后与矩阵相乘,得到短效和长效的预测分数。最后再用softmax函数把分数进行归一化。我们整个过程如下所示:
② 融合不同粒度的文本语义特征
Bert是预训练模型,事先在大批预料上进行了自监督训练。这个模型一共有12层,根据Ian Tenny等人【5】的研究表明,不同层所表达的文本特征粒度不同。低层表达了文本的语法、句法等底层特征,高层表达了文本的主题、抽象概括等特征。
由于短时效文本和长时效文本识别的特征粒度不同,短时效的特征通常是某些具有时间词的句子(如:最近、近期...等),所需文本粒度是低层粒度。长时效文章一般是整篇文章为分析性的(如科普性文章),这类文章的特征通常是整篇文章的主题偏科普,所需要的文本粒度是高层粒度。所以我们想出了一个融合多层BERT向量的方法,来提升模型效果。
首先,我们使用BERT专用的分词器对文本进行切词,BERT的每一层都会对每个词的前一层输出作为该层输入,并编码输出成一个向量,我们将每层得到的所有词的输出向量进行平均求和,得到每层的句子向量,过程如下图所示:
之后,我们把BERT每层输出的句子向量,经过一个线性层将其转换成每层句子向量对应的重要性。再使用softmax函数对12层句子向量得到的12个重要性进行归一化,得到每层对应的权重。最后,我们使用12个权重和12层句子向量进行加权和,得到融合多层语义向量,并把此向量作为最终的文本向量。整个过程如下公式所示:
下图是结合了两个方案的最终方案图:
总结
本文主要介绍了BERT模型在判断新闻时效性上的详细应用,包括case分析与思考、具体落地方案以及对模型的具体改造。
尽管BERT在学术界和工业界都实现了广泛应用,但在落地到具体的工业项目中,我们仍需根据任务特性和数据特性建立更好的工作方案,而非仅仅使用端到端的方式完成任务。
不仅如此,这样的方案也能让我们在得到相关bad case反馈后,对规则进行调整,具有相当强的灵活性;而规则提取的相关信息也具有一定的可解释性。
参考文献:
1. Devlin J, Chang M, Lee K, et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[C]. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Minneapolis, USA: NAACL, 2019, 4171-4186.
2. Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]. Advances in Neural Information Processing Systems. Long Beach, USA: NIPS, 2017, 5998-6008.
3. He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]. Proceedings of the IEEE conference on computer vision and pattern recognition. Las Vegas, USA:CVPR, 2016: 770-778.
4. Ba J L, Kiros J R, Hinton G E. Layer normalization[J]. arXiv preprint arXiv:1607.06450, 2016.
5. Tenney I, Dipanjan D, Pavick E. BERT Rediscovers the Classical NLP Pipeline[C]. Proceedings of the 57th Conference of the Association for Computational Linguistics. Florence, Italy: ACL, 2019, 4593-4601.
文字来源:陈俊安
文字编辑:谭镕
排版:刘肖丹
热门跟贴