分享嘉賓:羅錦文 騰訊 研究員
編輯整理:Jane Zhang
出品平臺:DataFunTalk
-
項目背景
-
相關(guān)研究方法
-
熱點計算框架
-
熱點挖掘
-
熱點應(yīng)用
項目背景
1. 熱點應(yīng)用場景
當前各大資訊類的產(chǎn)品都在顯著的版面上展示和推薦熱點相關(guān)內(nèi)容,針對熱點內(nèi)容的推薦和呈現(xiàn)也變得非常多元化,比如:微博有微博熱搜榜;知乎通過事件討論的形式運營熱點;百度有歷史悠久的百度熱搜榜;頭條通過興趣推薦的方式做熱點分發(fā)頻道,騰訊在對大事件做脈絡(luò)運營。當前各大產(chǎn)品都對熱點進行了大量的投入,我們基于騰訊看點豐富的視頻數(shù)據(jù),深挖用戶的興趣內(nèi)容,接下來看下我們在騰訊看點的推薦頻道頁。
2. 熱點核心推薦問題
這里對騰訊看點進行問題的分析,當前基于熱點的問題存在以下幾個問題:
-
及時性。熱點挖掘需要及時監(jiān)控全網(wǎng)站點,以科比去世為例,及時發(fā)現(xiàn)這一事件,并挖掘出來對應(yīng)報道,才能有效幫助熱點進行推薦和分發(fā)。
-
全面性問題。不同站點對熱點的呈現(xiàn)不同,需要將事件榜單、話題榜單和對應(yīng)的多種報道合理組織起來。比如,當一篇"南寧-工廠發(fā)生火災(zāi)"文章入庫后,熱點挖掘能否判斷已有的挖掘結(jié)果與之對應(yīng),才能更好地進行推薦。
-
熱度合理性問題。熱度值是熱度的重要特征,不同的數(shù)據(jù)源的事件熱度各有不同,比如微博熱搜榜當時有"錢峰又胖了"的話題,排在微博熱搜榜很高的位置上,但是由于不同媒體的受眾不同,在看點這邊就很少有文章報道或者有用戶去閱讀。
-
熱點分發(fā)的問題。熱點文章和視頻都有冷啟動的問題,如在北京朝陽疫情定為高風(fēng)險時,大部分是根據(jù)興趣點推薦的,最近一段時間大家的用戶畫像中提出來"疫情"這個特征,如果基于疫情進行下發(fā),非北京地區(qū)的用戶不關(guān)注這個文章,這會降低系統(tǒng)的分發(fā)效率。因此要進行泛化,比如泛化到"北京疫情"這樣的話題,來做用戶分發(fā),以此解決這篇文章冷啟動的問題。
接下來能看到熱點推薦有沒有從事件推薦的角度來理解文章。有沒有從事件的角度來理解文章,是提升熱點推薦效果需要重點討論的點。帶著這幾個問題,來看看傳統(tǒng)的相關(guān)研究是怎么解決這個問題的。
1. 事件抽取
任務(wù)定義:
作為信息抽取的一個重要任務(wù),事件抽取是從一個無結(jié)構(gòu)化的文本中自動抽取出來結(jié)構(gòu)化的知識。以ACE任務(wù)為例,事件抽取可以分為事件檢測和事件要素提取。事件檢測是識別句子中的觸發(fā)詞trigger,這個詞是描述時間的核心動作,然后根據(jù)預(yù)先定義好的框架,進行事件類型分類,因此事件分類是一個封閉集合。我是科比的粉絲,專門研究過科比不幸遇難時的相關(guān)報道,以科比去世為例,這里"凌晨四點,NBA球星科比布萊恩墜機身亡",可以識別出trigger詞為"身亡",事件類型分類為die – 死亡事件類型,對應(yīng)的事件要素是:event frame,包括:施害者、受害者、事件、地點等。通過事件提取的方式,能提到時間是"凌晨四點",受害者是"科比·布萊恩",把受害者和時間對應(yīng)起來。這就是一個比較完整的事件抽取過程。
問題點:
可以看到事件抽取任務(wù),是針對原子事件,通常是不可再分的,如通常提及的"新冠疫情爆發(fā)","南方洪水成災(zāi)",這是有很多子事件的,不能通過事件抽取挖掘出來,同時事件框架要提前定義好,但是事件類型有限,難以覆蓋新涌現(xiàn)出來的事件,因此只將事件抽取作為一個重要的特征抽取工具。
2. 話題檢測與追蹤 ( TDT )
接下來的任務(wù)和熱點挖掘更相關(guān),就是話題檢測與追蹤中的TDT任務(wù),這個任務(wù)有20多年的歷史了,定義的是處理新聞報道的系統(tǒng)。輸入可以是固定的文章或者流式數(shù)據(jù),結(jié)果是以聚類的方式將文檔組織起來的話題。
話題檢測:檢測和組織系統(tǒng)中未預(yù)先設(shè)定的話題,也就是新話題的發(fā)現(xiàn)。
事件追蹤:新到達系統(tǒng)的報道是否是已知話題的后續(xù)報道,也就是把新到達的文章和已有話題算相似度。
通常研究方法分為2類:
-
第一類算法是尋找TDT任務(wù)中的新的聚類算法,或?qū)σ延芯垲愃惴ǖ母脑?,常用的算法有:k-means、DBSCAN、層次聚類;
-
第二類算法是挖掘新的聚類特征來提高TDT任務(wù)的計算效果,如使用文本的語義特征、分類特征、實體特征、上面事件抽取提到的特征,和任務(wù)結(jié)合起來,計算更準確的相似度。當然TDT也有很多別的子任務(wù),大家有興趣可以去看一下。
突發(fā)事件監(jiān)測:TDT為我們處理海量數(shù)據(jù)提供了很多新的解決思路,之后衍生出來了突發(fā)事件檢測任務(wù),值得關(guān)注。突發(fā)特征指的是伴隨著事件的發(fā)生,若干與該事件密切相關(guān)的特征出現(xiàn)反常現(xiàn)象,比如文檔、詞語的爆發(fā),比如南方下暴雨,暴雨這個詞就會比去年或者前幾個月的時序有明顯的不同,最近是一個顯著爆發(fā)的特征。我們可以通過檢測突發(fā)特征來發(fā)現(xiàn)事件,這類研究目標與TDT任務(wù)不同,不再局限于傳統(tǒng)的新聞報道,可以針對多類型的數(shù)據(jù),比如微博、搜索、視頻數(shù)據(jù),受此輸入的影響,我們將時序分析方法和話題聚類相結(jié)合,來提升熱點挖掘的效果,以上方法都能很好地指導(dǎo)我們進行熱點挖掘的工作。
接下來針對騰訊海量的數(shù)據(jù)和數(shù)據(jù)類型多的特點,提出了我們自己的熱點計算框架,下面簡單介紹。
1. 總框架
整體分兩部分:離線挖掘和在線理解,離線挖掘內(nèi)容非常豐富,著重講這塊。
離線挖掘流程:先是資源引入,有3個不同的端,騰訊看點瀏覽器、qq瀏覽器、qq里的騰訊看點頻道,接入豐富的數(shù)據(jù)之后,通過話題抽取,來提取熱點特征,進行話題融合,把挖掘到的結(jié)果聚類成話題,再把話題拆分成對應(yīng)的事件。
為什么先做話題聚類,再做事件拆分呢?
還以科比去世為例。當時描述這個話題,一部分報道的是"科比意外身亡",另一部分報道"科比妻子悲痛欲絕",以及"明星悼念科比"。當事件在凌晨剛發(fā)生的時候,只有一個媒體和幾家論壇報道了這個事情,算法比較難把主要描述"明星悼念科比"和"科比意外身亡"的文章拆成兩個,看做一個更加合理,文章增加一兩個小時后,很多媒體從不同的角度描述這個事件,文章的豐富程度足以支撐我們把這個話題拆封成合理的較細的粒度,這個細分是比較符合用戶興趣的,比如女性用戶更加關(guān)心科比妻子的情況,而對一些外國明星悼念科比不那么感興趣,因此能夠以更加有針對性的事件的粒度推薦,提升熱點推薦的效果。
詳細流程:
① 熱點挖掘 熱點挖掘是為了滿足全面性、及時性的要求,把熱點挖掘拆為定時任務(wù)和流式任務(wù)。- 定時任務(wù):主要是搜索點擊的特征、搜索詞文章中的關(guān)鍵詞的時序特征,與文章內(nèi)容聚類的方式結(jié)合,把描述相近資源的文章聚合在一起,以話題形式組織起來。
- 流式任務(wù):將入庫的文章,及時通過事件判斷過濾掉非事件內(nèi)容,提升計算流程的時效性。
為什么要做話題庫和事件庫?
以近期的"暴雨資訊"為例,用戶感興趣的是"安徽特發(fā)特大暴雨"的事件內(nèi)容,而非提及暴雨的文章 ( 比如"日本暴雨導(dǎo)致山洪爆發(fā)" ),我們需要把不同的數(shù)據(jù)源以話題庫的形式組織起來,幫助熱點推薦以跳出關(guān)鍵詞 ( "暴雨" ) 推薦的限制,為用戶提供更加符合其興趣的內(nèi)容。有了熱點計算框架后,我們看看在應(yīng)用場景上如何落地。
1. QueryLog熱點挖掘
第一個是基于query的熱點挖掘。
① 預(yù)處理:構(gòu)造Query時序數(shù)據(jù)
基于這樣的假設(shè):如果熱點熱門,用戶有了解詳細內(nèi)容的需求。會通過query去搜索事件詳情,因此我們以query為數(shù)據(jù)來源,這是一個顯而易見的事情。如南寧發(fā)生火災(zāi),用戶會搜索南寧工廠,了解具體的傷亡情況。用戶的搜索多種多樣,基于突發(fā)熱點能檢測的方式,常見的是根據(jù)搜索詞構(gòu)建時間序列,使用BRD算法計算突發(fā)性,突發(fā)性需要進行分段處理、斜率檢測、需要做分段設(shè)計,難以維護。我們構(gòu)造了query熱點計算流程來解決這個問題。
② 熱門識別:時序分析,識別熱門Query
首先是構(gòu)造這個時序之后,通過時間序列分析來識別熱門query,具體做法:定義一個熱門query的趨勢模板,前面幾天平滑,最近有一個上升的趨勢;或者小幅度上升,近期然后突然下降、熱度減退的模板,這樣計算事件的相似度,如果符合,就認為是熱門的query,否則就不是。
相似度計算最開始是使用歐拉距離,需要把時間軸上的兩個點做嚴格對齊。雖然趨勢一致,但是歐拉對齊會導(dǎo)致相似度計算值較低,會帶來bad case,后來使用DTW ( 動態(tài)時間規(guī)劃 ) 算法,使用動態(tài)規(guī)劃的方式來對齊時間序列,能更好捕捉趨勢相似的情況。
③?話題檢測:相似Query聚類,形成話題
挖掘到熱門query之后,可以發(fā)現(xiàn)用戶的搜索比較隨意,同一個事件的描述也是多種多樣,對應(yīng)多個query,所以需要把相同事件的query聚集起來,構(gòu)造一個話題,與TDT中的無監(jiān)督有所不同,搜索可以使用點擊二部圖的方式,以不同的query 可以點到同一個標題時,認為這兩個query相似,結(jié)合語義特征,比如"吳亦凡女友"和"吳亦凡戀情",語義比較相似;還有實體特征,"科比退役""姚明退役",雖然兩個都帶有"退役",看起來字面相似度較高,但是"科比"和"姚明"在事件中是不同的主題,可以對相似度降權(quán)。最后對相似度的綜合得到更好地query相似度量,得到話題聚類結(jié)構(gòu)。這里可以看到將query到話題的聚類。
最后,我們可以看到用戶行為的話題檢測,可以幫我們有效度量話題的消費熱度。為什么是消費熱度呢?是因為用戶非主動搜索內(nèi)容,表示用戶有主動的消費意愿,所以是消費熱度。這也是非常有效的話題度量方式。
④ 事件識別
在話題檢測之前,當話題達到可拆分時,我們會對事件做拆分。常見的話題會伴隨非事件的話題,比如熱門美劇更新時,會出現(xiàn)熱度突發(fā),這樣會混合這些query,因此基于監(jiān)督做事件分類。比如詞特征、點擊信息,把"下載"去掉,url中的站點信息、域名信息加入進去,train一個分類器,可以有效識別出來哪些是事件、哪些是非事件。
事件命名,組里的同學(xué)在之前通過詞法分析工具的基礎(chǔ)上,提取了一個新的事件命名方式,基于query 和title構(gòu)造圖模型,來挖掘事件concept和event的命名。這是之前話題挖掘的延續(xù),這個任務(wù)已經(jīng)發(fā)表在SIGMOD 2020上,大家有興趣可以做詳細閱讀。當前挖掘效果每天新增100+事件,準確率人工評估95+??梢钥吹綄Ξ斍暗耐诰蛐Ч趥鹘y(tǒng)上的提升。
2. 資訊文章熱點挖掘
作為信息流服務(wù)的團隊,每天打交道最多的是海量數(shù)據(jù)。當熱門發(fā)生時,自媒體作者會主動跟進熱點,創(chuàng)作文章跟進這些內(nèi)容,比如當科比去世的一個小時后,即便是凌晨四點,作者也會也及時更新做報道。
挖掘主要是采用聚類的方式,離線的方式是將文章的數(shù)據(jù)按照固定發(fā)布時間做切分,通過batch learning對文章進行聚類,k-means、層次聚類這些方法會忽略這樣的問題:每天有很多如描述劉德華過往文章,如果直接套用聚類算法會挖掘出來并非熱點,會影響用戶體驗。熱點文章包含時效性,如果直接套用聚類,沒考慮時效性。傳統(tǒng)的突發(fā)事件檢測Graph event detection是基于二項分布或者傅里葉變化的方法發(fā)現(xiàn)突發(fā)次,這些突發(fā)次會持續(xù)一段時間的增長,而非突發(fā)的一個尖點。并且基于詞粒度的挖掘會帶來很多bad case,NLP同學(xué)都會發(fā)現(xiàn)這樣的問題。切詞的粒度不可控。
基于這些問題,提出了新的挖掘方式:基于關(guān)鍵詞和動態(tài)時間規(guī)劃的方法來進行事件挖掘。
我們這里使用的處理方式:
① 預(yù)處理及熱門識別
關(guān)鍵詞描述文章主體,借助組內(nèi)篇章理解的能力,將文章特征轉(zhuǎn)換為關(guān)鍵詞特征,與query挖掘相似,將關(guān)鍵詞在文章庫中出現(xiàn)的頻次,構(gòu)造時間序列,再用DTW算法與固定的模板做匹配,得到挖掘到的熱門關(guān)鍵詞。比如暴雨,或者前段時間北京6月份疫情,三文魚突然熱起來,通過這種方式挖掘出來"三文魚"熱門關(guān)鍵詞,能召回很多描述新發(fā)地疫情相關(guān)的文章。當時召回的文章的acc和 recall都很高。接下來回到暴雨,通過暴雨召回所有和暴雨相關(guān)的文章,再構(gòu)造熱門關(guān)鍵詞的實體特征,包括抽取的地點,安徽、合肥,加入實體特征,再用語言模型提取title的特征,計算相似度,3個相似度綜合得到文章自底向下的層次聚類,從而得把南方暴雨聚成一個話題。而之前提到的"日本山洪爆發(fā)",雖然提到了暴雨,相似度較低,會聚類為一個孤立的點,可以過濾掉。
② 話題檢測
在這之后,同樣是聚類,得到的話題是自媒體創(chuàng)作的文章。自媒體作者可以認為是專家用戶,他們創(chuàng)作文章的數(shù)量,可度量話題熱度,定義為生產(chǎn)熱度。
③ 事件拆分
然后做事件拆分,以"江西洪澇致699萬人受災(zāi)"和"重慶暴雨成災(zāi)"兩個事件為例,基于看點的數(shù)據(jù)分布,作為一個觸發(fā)詞發(fā)現(xiàn)和元素抽取任務(wù),就可以得到受災(zāi)和成災(zāi)的trigger相似,但argument不相似,這樣可以把話題合理拆分成兩個不同的時間,拆分為時間后,通過rank,可以把聚類為相似度較高的標題抽出來,然后基于seq2seq + attention的方式,形成可以展示的事件名稱,從而得到合理的拆分和事件命名。
④ 熱度計算
還可以得到事件庫,可以query挖掘得到的消費熱度,基于咨詢得到的生產(chǎn)熱度,基于全網(wǎng)的監(jiān)控的全網(wǎng)熱度,綜合起來,對挖掘到的熱門文章,進行合理的熱度,幫助推薦系統(tǒng)做推薦,提供更好的熱度特征。
通過熱點挖掘算法,得到更加滿足用戶興趣的話題集合、事件集合和對應(yīng)的熱度。
接下來看在熱點推薦場景下如何應(yīng)用起來。
1. 圖文熱點應(yīng)用
圖文熱點應(yīng)用。資訊庫是流式文章入庫,在線理解借助語義匹配模型,將新入庫的文章和已有的事件庫關(guān)聯(lián)起來,使用的是雙塔結(jié)構(gòu)和MatchPyramid模型結(jié)合,將文章標題和事件的名稱的BOW特征,計算語義相關(guān)度,而MatchPyramid模型則構(gòu)造事件詞與文章內(nèi)容的交互矩陣,比如事件名稱包含6個詞,文章選擇前300個詞,是300維,得到6*300的矩陣,做卷積計算,得到一個相似度量,將這兩個做線性融合,得到顯性匹配的分。這樣也可以把在線文章進入事件庫,賦上 事件標簽、話題標簽、綜合熱度,給推薦系統(tǒng)使用。在事件匹配的準確率上,也達到了較高的標準,事件覆蓋效果也比較好。
這不僅可以用在圖文挖掘上,也可以用在視頻、小視頻熱點挖掘中。
2. 視頻&小視頻熱點
視頻&小視頻熱中的應(yīng)用,主要是基于熱點挖掘得到的文本信息,將圖文計算的熱點傳遞給視頻和小視頻,怎么做的呢?視頻能夠準確打出影視綜合明星tag,通過已挖掘好的熱門詞庫,可以篩選出來近期熱門的影視明星類的視頻和小視頻。我們還會解決這樣的問題,比如快樂大本營已經(jīng)播了很多年,經(jīng)常出現(xiàn)老片段新發(fā),或者明星自制的明星短劇,需要借助視頻關(guān)鍵詞、作者的信息、人工標簽,過濾掉非熱門視頻,得到熱門視頻的候選。另一個是基于新聞報道的視頻,人工不知道事件的前提下,直接打事件標簽很困難,需要借助已經(jīng)挖掘到的事件庫,和視頻標題做匹配,匹配近期的熱門事件的視頻和小視頻,如"科比墜機",可以匹配到"科比去世","科比墜機身亡事件",得到這些標題后,進入熱門視頻庫中,幫助推薦系統(tǒng)給用戶推薦更加熱門的視頻和小視頻。

羅錦文
騰訊 |?研究員
本科畢業(yè)于蘭州大學(xué),研究生畢業(yè)于北京大學(xué)。2016年阿里實習(xí),然后2017下半年轉(zhuǎn)戰(zhàn)百度實習(xí),于18年加入騰訊正式工作,負責新NLP新熱內(nèi)容挖掘和詞法分析相關(guān)工作。
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!