QQ看點(diǎn)日?qǐng)?bào)內(nèi)容優(yōu)化——基于BERT的熱點(diǎn)召回系統(tǒng)
基于BERT搭建了看點(diǎn)日?qǐng)?bào)熱點(diǎn)召回系統(tǒng),大大提升了看點(diǎn)日?qǐng)?bào)熱點(diǎn)內(nèi)容量等核心指標(biāo),本文將會(huì)詳解看點(diǎn)日?qǐng)?bào)熱點(diǎn)召回系統(tǒng)的總體框架及核心方法。
一、業(yè)務(wù)背景
看點(diǎn)日?qǐng)?bào)旨在為用戶提供新熱、優(yōu)質(zhì)的文章,對(duì)熱點(diǎn)事件及文章的及時(shí)捕捉有著非常強(qiáng)的需求,從海量文章中人工發(fā)現(xiàn)熱點(diǎn)文章無(wú)疑是巨大的運(yùn)營(yíng)成本,所以自動(dòng)發(fā)掘熱點(diǎn)文章是必要的需求。
而發(fā)掘熱點(diǎn)事件的時(shí)效性、熱點(diǎn)事件的覆蓋度、文章聚合成事件的效果、熱點(diǎn)事件召回文章的召準(zhǔn)率、熱點(diǎn)文章的質(zhì)量等是熱點(diǎn)召回系統(tǒng)的核心指標(biāo)。
我們通過(guò)高頻實(shí)時(shí)爬取大量互聯(lián)網(wǎng)數(shù)據(jù),以及基于BERT模型進(jìn)行熱點(diǎn)事件聚類(lèi)及文章標(biāo)題匹配等方式,有效提升我們熱點(diǎn)文章召回系統(tǒng)的各項(xiàng)核心指標(biāo)。
- 在熱點(diǎn)文章召回量方面,每天召回?zé)狳c(diǎn)文章的數(shù)量從1K+上升到1W+。每天看點(diǎn)內(nèi)被啟用的文章數(shù)量為8W左右,其中有超過(guò)10%的文章會(huì)被我們的熱點(diǎn)系統(tǒng)召回作為熱點(diǎn)文章。
- 在召準(zhǔn)情況方面,在找最match標(biāo)題的測(cè)試中,我們基于BERT模型準(zhǔn)確率高達(dá)98.4%,能召回看點(diǎn)中被啟用文章的熱點(diǎn)事件比例也高達(dá)93.5%。
二、Why BERT?
在應(yīng)用BERT之前,我們實(shí)現(xiàn)了一版BiLSTM-DSSM的模型,但由于準(zhǔn)確率不夠高被棄用。
在找最match的標(biāo)題測(cè)試中,BERT與BiLSTM-DSSM的效果對(duì)比如下:
BERT的原理在網(wǎng)上已經(jīng)有很多詳細(xì)的資料,這里就不再重復(fù),本小節(jié)簡(jiǎn)單描述BERT有哪些強(qiáng)大的優(yōu)勢(shì)使它能比LSTM等其它模型強(qiáng)大。
優(yōu)勢(shì)1
BERT采用pre-train+fine-turning的訓(xùn)練模式,基于超大量語(yǔ)料進(jìn)行pre-train,在pre-train過(guò)程BERT已經(jīng)能學(xué)好單詞、句法、語(yǔ)義等特征,具體任務(wù)只需用較少量的數(shù)據(jù)進(jìn)行fine-truning。
像我們的任務(wù)需要標(biāo)注語(yǔ)料進(jìn)行訓(xùn)練,提供超大量的標(biāo)注數(shù)據(jù)是難以實(shí)現(xiàn)的,而使用BERT則能以較少量的標(biāo)注數(shù)據(jù)完成好我們的訓(xùn)練任務(wù)。
優(yōu)勢(shì)2
BERT是雙向語(yǔ)言模型,擁有上下文信息。相比GPT(單向語(yǔ)言模型)和ELMO(粗暴的雙向語(yǔ)言模型,前向和后向簡(jiǎn)單相加),BERT有得天獨(dú)厚的優(yōu)勢(shì)。
優(yōu)勢(shì)3
BERT采用Transformer作為特征提取器,在Transformer誕生之前,RNN占據(jù)著NLP領(lǐng)域的主導(dǎo)地位。而相比RNN系列的特征提取器,Transformer具有兩點(diǎn)優(yōu)勢(shì):RNN不可并行,BERT可并行;RNN很難捕捉長(zhǎng)序列的依賴關(guān)系,Transformer可以。
RNN結(jié)構(gòu)如下,從h[t-1]到h[t]經(jīng)過(guò)激活函數(shù),變化極大,在距離較遠(yuǎn)的傳遞過(guò)程會(huì)產(chǎn)生梯度消失和梯度爆炸。
為了解決這一問(wèn)題,又提出LSTM等RNN的變種,其結(jié)構(gòu)如下。
從下面公式中可以看出,細(xì)胞狀態(tài)從C[t-1]到C[t]只經(jīng)過(guò)線性的變化,不會(huì)馬上有很大的變化。但當(dāng)C[x]與C[y]相距很遠(yuǎn)時(shí),C[x]與C[y]也很可能變得完全不相關(guān),C[x]的變化可能不會(huì)對(duì)C[y]有太大影響,從而丟失很遠(yuǎn)的信息。
而Transformer每個(gè)位置都公平地相互做self attention,self attention中任意位置之間進(jìn)行比較,長(zhǎng)度都只有1,因此無(wú)論序列多長(zhǎng)都不會(huì)出現(xiàn)信息丟失的現(xiàn)象。
基于self attention的Transformer是更強(qiáng)的序列特征提取器,self attention=探索序列內(nèi)部的關(guān)系,對(duì)每個(gè)位置提取q、k、v向量,通過(guò)Attention公式計(jì)算當(dāng)前位置對(duì)其他位置的關(guān)注程度。
三、模型訓(xùn)練
keyterm-aware masking
我們的BERT模型是12層Transformer的中文字模型,為了能更好適應(yīng)業(yè)務(wù)數(shù)據(jù),我們先以看點(diǎn)內(nèi)的標(biāo)題和爬取的新聞標(biāo)題數(shù)據(jù)讓BERT模型進(jìn)行自監(jiān)督學(xué)習(xí)。
具體做法是mask一些詞語(yǔ)并讓bert預(yù)測(cè),一些如流量明星、游戲、動(dòng)漫等看點(diǎn)中高頻出現(xiàn)的tag,會(huì)以更大的概率被mask掉。先基于業(yè)務(wù)語(yǔ)料的自監(jiān)督學(xué)習(xí)讓BERT更熟悉業(yè)務(wù)數(shù)據(jù),再進(jìn)行語(yǔ)義匹配的fine-turning。
fine-turning
BERT針對(duì)語(yǔ)義匹配問(wèn)題,最常見(jiàn)的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示,直接輸入句子pair,判斷pair中的兩個(gè)句子是否匹配。
但這種網(wǎng)絡(luò)結(jié)構(gòu)不利于我們的業(yè)務(wù)使用,因?yàn)槊啃掳l(fā)現(xiàn)一個(gè)熱點(diǎn)事件話題,就得用此話題與所有的文章標(biāo)題組成標(biāo)題pair再輸入到BERT里預(yù)測(cè)是否屬于同一個(gè)事件。
看點(diǎn)內(nèi)一天被啟用的文章量在8w左右,這無(wú)疑需要很長(zhǎng)的時(shí)間去計(jì)算,會(huì)嚴(yán)重影響熱點(diǎn)文章的時(shí)效性。為了提高性能,我們采用了DSSM(深度語(yǔ)義匹配模型)的網(wǎng)絡(luò)結(jié)構(gòu),如下圖所示,DSSM的表示層為BERT模型。
這種DSSM網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)勢(shì)在于,BERT可將單個(gè)標(biāo)題進(jìn)行向量化處理,而不是處理標(biāo)題pair。這樣我們能預(yù)先計(jì)算BERT標(biāo)題向量并存儲(chǔ)到內(nèi)存數(shù)據(jù)庫(kù),線上文章召回時(shí)可直接讀取BERT標(biāo)題向量進(jìn)行匹配。
四、數(shù)據(jù)構(gòu)造
難點(diǎn)
- 需要標(biāo)注數(shù)據(jù)規(guī)模大,且標(biāo)注難度大
- 訓(xùn)練數(shù)據(jù)需要切合業(yè)務(wù),同時(shí)保證多樣性
第一期訓(xùn)練數(shù)據(jù):自動(dòng)構(gòu)建數(shù)據(jù)集+公開(kāi)數(shù)據(jù)集
標(biāo)注數(shù)據(jù)問(wèn)題是NLP模型訓(xùn)練的一個(gè)難題,對(duì)我們的任務(wù)來(lái)說(shuō)也是非常難解決的問(wèn)題。
我們的模型訓(xùn)練需要大量標(biāo)注數(shù)據(jù),需標(biāo)注標(biāo)題pair是否同屬于一個(gè)事件。大規(guī)模數(shù)據(jù)進(jìn)行人工標(biāo)注的難度非常的大,成本極高,所以在第一期的訓(xùn)練數(shù)據(jù)中我們應(yīng)用自動(dòng)構(gòu)建數(shù)據(jù)集的方法。
我們自動(dòng)構(gòu)建的數(shù)據(jù)格式為‘title1 tiltle2’的標(biāo)題pair,title1是互聯(lián)網(wǎng)上爬取回來(lái)的標(biāo)題,title2是看點(diǎn)中的文章標(biāo)題,所有標(biāo)題pair都是正樣本。訓(xùn)練時(shí)采用多分類(lèi)的方法,當(dāng)前標(biāo)題pair作為正樣本,當(dāng)前title1與其余標(biāo)題pair中隨機(jī)找255個(gè)title2組成255個(gè)標(biāo)題pair作為負(fù)樣本。
訓(xùn)練數(shù)據(jù)采用關(guān)鍵詞匹配的方式自動(dòng)產(chǎn)生,具體產(chǎn)生方法如下:
- 識(shí)別標(biāo)題中的關(guān)鍵詞,并計(jì)算關(guān)鍵詞的權(quán)重。
- 用爬取回來(lái)的標(biāo)題與看點(diǎn)內(nèi)的文章標(biāo)題做關(guān)鍵詞匹配,相似度計(jì)算如下:
- 當(dāng)一對(duì)標(biāo)題相似度超過(guò)一定閾值時(shí),認(rèn)為這對(duì)標(biāo)題對(duì)可作為正樣本。同時(shí)保證每個(gè)爬取的標(biāo)題只產(chǎn)生一個(gè)正樣本數(shù)據(jù),并且保證正樣本中的爬取的標(biāo)題與看點(diǎn)中的標(biāo)題不完全相同。
為了保證訓(xùn)練數(shù)據(jù)都為正樣本,閾值會(huì)設(shè)得比較高,經(jīng)測(cè)試驗(yàn)證用此方法產(chǎn)生的正樣本正確率能達(dá)到98%以上。
訓(xùn)練訓(xùn)練數(shù)據(jù)中還加入了LCQMC和BQ等中文語(yǔ)義匹配的公開(kāi)數(shù)據(jù)集,擴(kuò)展訓(xùn)練數(shù)據(jù)的規(guī)模和提升詞語(yǔ)、句式的多樣性。
第二期訓(xùn)練數(shù)據(jù):自動(dòng)構(gòu)建數(shù)據(jù)集+公開(kāi)數(shù)據(jù)集+人工標(biāo)注數(shù)據(jù)集
基于第一期訓(xùn)練數(shù)據(jù)訓(xùn)練得到第一期BERT模型,我們也得到了第一期的事件話題召回?zé)狳c(diǎn)文章的結(jié)果,并將第一期的結(jié)果直接投放到熱點(diǎn)選文中使用。感謝看點(diǎn)日?qǐng)?bào)運(yùn)營(yíng)團(tuán)隊(duì)在熱點(diǎn)選文同時(shí),給我們標(biāo)注事件話題與文章標(biāo)題是否匹配的數(shù)據(jù)。
人工標(biāo)注數(shù)據(jù)對(duì)我們十分珍貴,為了更加充分利用人工標(biāo)注的數(shù)據(jù),我們采用半自動(dòng)的方式去增加人工標(biāo)注的數(shù)據(jù)。對(duì)標(biāo)注正確的數(shù)據(jù)通過(guò)同義詞互換等方法,多產(chǎn)生出幾份類(lèi)似的數(shù)據(jù)。針對(duì)標(biāo)注為錯(cuò)誤數(shù)據(jù),人工構(gòu)造關(guān)于該事件話題或文章標(biāo)題的幾份正樣本,并且會(huì)結(jié)合人工標(biāo)注錯(cuò)誤的數(shù)據(jù)做多分類(lèi)訓(xùn)練。
人工標(biāo)注的數(shù)據(jù)及其衍生的數(shù)據(jù)和第一期訓(xùn)練數(shù)據(jù)結(jié)合作為第二期訓(xùn)練數(shù)據(jù),重新訓(xùn)練BERT模型。
五、總體框架
上圖為看點(diǎn)日?qǐng)?bào)熱點(diǎn)召回系統(tǒng)的總體架構(gòu),為了保障熱點(diǎn)召回系統(tǒng)的時(shí)效性,每個(gè)模塊都會(huì)每隔10分鐘重新計(jì)算并更新數(shù)據(jù)。
六、系統(tǒng)介紹
下圖為看點(diǎn)日?qǐng)?bào)熱點(diǎn)召回系統(tǒng)的界面展示,系統(tǒng)根據(jù)熱度值從高到低的形式地展示熱點(diǎn)榜單,并對(duì)事件做分類(lèi),且提供分類(lèi)篩選功能,能及時(shí)并清晰呈現(xiàn)全局及每個(gè)分類(lèi)最熱的事件,系統(tǒng)實(shí)時(shí)發(fā)現(xiàn)熱點(diǎn)事件的數(shù)量高達(dá)600+。通過(guò)點(diǎn)擊事件,可索引到相關(guān)文章。
七、總結(jié)與展望
看點(diǎn)日?qǐng)?bào)熱點(diǎn)召回系統(tǒng)基于BERT模型與大量實(shí)時(shí)爬蟲(chóng)數(shù)據(jù),已能在發(fā)掘熱點(diǎn)事件的時(shí)效性、熱點(diǎn)事件的覆蓋度、文章聚合成事件的效果、熱點(diǎn)事件召回文章的召準(zhǔn)率、熱點(diǎn)文章的質(zhì)量等方面有不錯(cuò)的表現(xiàn)。
熱點(diǎn)召回系統(tǒng)衍生的BERT向量具有深度語(yǔ)義特性,能做到無(wú)關(guān)鍵詞相同的情況下match同一個(gè)事件的標(biāo)題。已經(jīng)應(yīng)用到看點(diǎn)日?qǐng)?bào)的多樣性,并使看點(diǎn)日?qǐng)?bào)多樣性得到很大提升。后續(xù)還計(jì)劃應(yīng)用到看點(diǎn)日?qǐng)?bào)的曝光去重,專題文章推薦等其他模塊。
目前熱點(diǎn)召回系統(tǒng)仍在繼續(xù)優(yōu)化,包括數(shù)據(jù)構(gòu)造、模型、事件聚類(lèi)和文章召回的策略,以及熱度值的計(jì)算方式等各方面。
目前,該熱點(diǎn)召回系統(tǒng)主要是為看點(diǎn)日?qǐng)?bào)提供熱點(diǎn)文章,期望日后能為更多產(chǎn)品提供熱點(diǎn)內(nèi)容。
作者:顏銳榮,騰訊信息流平臺(tái)產(chǎn)品部開(kāi)發(fā)二組員工;公眾號(hào):騰訊大講堂(ID:TX_DJT)
原文鏈接:https://mp.weixin.qq.com/s/Zv8DGNBGzWvYMcPWuaFLCg
本文由 @騰訊大講堂 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自騰訊看點(diǎn)官網(wǎng)
請(qǐng)問(wèn)如何通過(guò)標(biāo)題生成‘高以翔去世’這種話題?用的是什么模型或者算法,全文都沒(méi)有提及,難道是人工提取的嗎?