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





