揭秘微信「看一看」如何精准挖掘你感兴趣的内容
作者:maricoliao,騰訊 WXG 應用研究員
一、背景
隨著自媒體時代的蓬勃發展,各類自媒體平臺每天涌現出海量信息。微信作為最優質的自媒體平臺,每天新發表文章數百萬篇。洶涌而來的信息,極大地豐富了人們的精神和娛樂生活,但同時也存在著信息繁雜無序、內容同質化、質量參差不齊等問題,而用戶最關心的是最新、最熱的新聞熱點事件。
在此背景下,如何快速、準確地挖掘新聞熱點內容,幫助用戶更快、更好地了解熱點事件,并追蹤事件的來龍去脈和不同觀點,是非常值得深入研究的問題。就此,我們針對微信生態特色,并結合外部媒體資源,構建了熱點挖掘平臺,對微信熱點、全網熱點、細分領域熱點進行實時監控和深度挖掘。目前熱點挖掘平臺已廣泛應用于微信看一看和搜一搜,以強化新聞熱點感知,優化用戶時新體驗。
二、技術框架
如上圖所示,在資源建設方面,我們在微信公眾號文章的基礎上,接入了騰訊新聞、騰訊視頻等數據源,并對外部媒體進行實時監控。考慮到公眾號文章在微信生態內具有豐富的閱讀、分享和搜索等用戶行為,我們在內容側的基礎上,結合了用戶側共同進行熱點資源建設。
在技術方面,我們主要針對熱點內容識別、熱點展現開展工作,并在此基礎上積累主動學習等語料支撐技術,本文的重點也是分享這三個方面技術經驗。
在應用方面,我們已經將相關技術廣泛應用于微信看一看,例如,使用熱度召回、熱度加權進行新聞排序,提升推薦系統時新體驗;構建半自動化熱門話題,強化熱點感知、提升用戶互動;利用聚合結果進行多樣性控制,解決內容同質化問題。
此外,在微信搜一搜的微信熱詞、query suggestion 和新聞意圖等工作中,我們也對熱點挖掘技術進行了有效應用。
三、熱點內容發現
質量模型
自媒體在提供豐富數據的同時,也帶來了大量低質量的內容。由于新聞熱點內容在時新、格調、權威方面的特殊需求,有必要進一步完善內容質量衡量體系,對新聞內容進行更多方位的質量把控,以幫助我們更好地甄別優質、熱點內容。
為此,我們在垃圾廣告、色情低俗、標題黨等傳統通用的低質指標基礎上,補充構建了新聞性、調性和普適性等新聞特有衡量指標,以更加精準地識別新聞內容的時新程度、衡量新聞內容的格調高低、判斷新聞內容的適用人群。
此外,考慮到賬號在新聞內容質量控制中的關鍵作用,我們還建立了賬號的質量等級、權威度等級和地域賬號體系,以期從內容、賬號兩個維度,對新聞內容質量進行更好的判斷和控制。
在內容新聞性、調性等指標構建中,我們主要使用一套通用的文章分類方法(如下圖所示),綜合考慮文章標題、正文、賬號和圖片等信息,使用關鍵詞、embedding、規則進行特征表達,基于 Stacking 方法訓練子模型,并使用 XGBoost 算法進行多模型融合。
在實際應用中,我們也可以對比 Wide&Deep 和 DeepFM 等方法融合 embedding 特征和傳統人工特征,通常情況下 Stacking+XGBoost 的模型更容易調試、可控性更強,可以針對不同場景的具體效果進行選擇。
熱點發現
熱點發現是隨著互聯網內容爆炸式增長而興起的研究課題,集中體現在 TDT(Topic Detection and Tracking)研究任務中,旨在幫助人們應對日益嚴重的互聯網信息爆炸問題,在新聞媒體信息流中進行新話題的自動識別、追蹤話題的來龍去脈。
在工業界實際應用中,Google 資訊、百度資訊等都用到 TDT 中的相關技術,隨著互聯網產品的多樣化發展,基于搜索引擎、社交傳播的熱點發現也逐漸加入研究范疇。近階段的研究主要集中在利用神經網絡解決 TDT 中的一些子任務,意圖通過新技術、新思想進一步提高 TDT 的效果。
下圖列舉了我們目前主要使用的一些熱點發現方法。
目前我們主要綜合內容側和用戶側兩個方面進行熱點發現,以挖掘全局、行業、地域、熱詞、話題、視頻等細分領域熱點。其中我們用到了一些基礎技術,例如長文本之間相似度計算、長短文本相似度計算、聚類算法、分類算法以及時序分析等算法。下文我們將重點介紹上圖中的話題聚合、熱點預測和熱點追蹤技術。
話題聚合
話題是一個抽象概念,表征圍繞事件發展的時序、因果和評論等內容構成一個集合,在我們的工作中大致類似于 TDT 中的 story 定義。
話題聚合的關鍵在于兩個方面:聚類算法和相似度計算。聚類算法包括離線聚類和在線聚類兩種。傳統的離線聚類使用 batch learning 方式,例如 K-means、HAC、DBSCAN、AP 聚類等,其缺點主要在于不能及時為逐個到來的報道進行聚類,且聚類效率低、穩定性差。
在線聚類適用于流式內容輸入,在原有聚類結果的基礎上進行增量計算,例如 Single-Pass,與離線聚類相比,在線聚類效率更高、效果更加穩定,所以我們在工作中更偏向于使用在線聚類算法。
在傳統 TDT 任務中,相似度計算大多使用了無監督模型,例如余弦相似度、Incremental TF-IDF Model、Incremental TF-ICF Model,由于沒有使用人工標注的語料指導模型訓練,導致相似度計算的誤判率高,效果得不到保證。
為了進一步提升話題聚合的效果,我們在傳統算法的基礎上進行了優化,設計了上圖中的聚類算法。文章使用流式進入聚類系統,通過話題追蹤模型判斷當前文章能否匹配已有話題池中的話題,該話題追蹤模型模型使用人工標注語料進行有監督訓練獲得(詳見后文多粒度語義相似度計算)。如果當前文章可以匹配已有話題,則把文章并入已有話題并更新話題表達,否則,則會形成新的話題加入話題池中。
此外,考慮到傳統 Single-Pass 算法容易出現匹配一錯皆錯問題,我們使用 HAC 層次聚類、話題精選機制對話題池子進行及時修正,保證話題池的純正。經實驗驗證,在開源語料和微信語料上,此聚類算法均取得了優異的效果,效率上也能支持快速并行化。
熱點預測
熱點發現的傳統方法主要依賴于內容側和用戶側特征的豐富程度,比如話題發文量、文章用戶行為等信息,然而當我們能夠獲取到足夠熱點特征時,用戶往往已經通過其他渠道獲取到了相關熱點內容,導致熱點發現和熱點推薦出現一定滯后性。因此,如何實現提前、精準預測熱點,最大程度減少對后驗信息的依賴,是非常值得研究的工作。
為此,我們開發了一個有效的熱度預測模型,在文章發表初期便可以預測出文章未來的熱度,如下圖所示。
在設計熱點預測模型時,我們綜合考慮文章文本、圖片、用戶行為時序等多模態特征,結合 DNN 模型和傳統機器學習模型進行建模。
模型主要分為兩部分:特征提取器、特征融合器。特征提取器分別對文章文本、圖片、動態行為序列、賬號等進行特征提取,其中長短文本和圖片的特征提取可以使用目前比較流行的 CNN、Gated-CNN、LSTM、BERT 等模型。
而在在用戶動態行為特征抽取時,我們區別于傳統做法,對用戶行為進行時序片段切分,使用 LSTM 進行提取特征。最后,使用 XGBoost 融合器對各個特征進行融合,并得到最終的預測結果。
四、熱點展現
熱門話題
發現熱點內容后的另一個關鍵問題是如何把熱點內容呈現給用戶。在實際工作中我們發現,除單篇文章展現形式以外,話題、熱詞、摘要、分欄等方式都是加強熱點感知的重要方式。
為了加強熱點內容的認知、聚合熱點中的用戶互動,熱門話題是我們在熱點展現上的一個重要產品形式。熱門話題中綜合了話題聚合、話題追蹤、事件短描述生成、摘要抽取、事件脈絡、內容分欄等多種技術。
上文中我們已經分享了話題聚合的主要技術經驗,下文將重點介紹熱門話題中的話題追蹤和事件脈絡、多粒度文本匹配、事件短描述生成等技術。
話題追蹤和事件脈絡
話題追蹤工作主要包括兩個方面:一是判斷文章究竟屬于舊話題還是新話題(Story Detection);二是在話題中進行子話題識別(Event Detection),判斷文章是否屬于話題最新進展。
隨著事件發展,話題不斷涌現新的進展,但不同媒體反應時間差異較大,而且自媒體賬號質量參差不齊,經常會出現舊聞新發的問題。話題追蹤技術恰好可以幫助解決此類問題。此外,當我們積累歷史熱點話題,例如孫小果案件,當案件出現新的報道內容時,話題追蹤技術可以幫助我們迅速檢測此類熱點內容。
在話題追蹤方面,比較值得借鑒的研究成果是 Growing Story Forest [B Liu,CIKM2017],文中先對 event 進行聚合,然后對同話題 event 進行 linking,最終構建 story tree 進行表達。
在實際工作中,針對具體應用情況,我們構建了一套話題追蹤框架,如上圖所示。首先,在文章特征構建時,我們綜合使用了多種特征表達,特別是抽取事件要素(News Frame)進行精準表示;其次,考慮到效率優化,我們使用了自頂向下的方式——先進行話題聚合,然后在話題內部進行子話題(event)識別。
為了更方便用戶理解事件發生的時序或邏輯關系,同時兼顧產品應用,最終的表達形式我們使用了傳統的事件脈絡;在話題聚合和子話題識別中,我們訓練了有監督模型,計算 story 粒度和 event 粒度長文本匹配度,下文將會詳細介紹。
下圖是“沙特記者失蹤事件”的機器自動生成脈絡,從圖中可以清晰了解 story 發生的重要節點以及發生時序。
多粒度文本匹配算法
話題追蹤的核心在于判斷兩篇文章是否屬于同一個話題(story)或同一個事件(event),這本質上是一個不同粒度的長文本相似度計算問題,同時相似度計算也是聚類算法中的關鍵技術。
傳統長文本相似度計算主要使用 one-hot 編碼、淺層語義編碼(例如 BM25、LDA 等)。隨著深度學習的興起,CNN 和 LSTM 等網絡由于其端到端的優勢、能較好地捕捉文本中的深度語義特征而被廣泛使用。從匹配方式上,深度學習語義匹配模型可以分為 Representation-based 和 Interaction-based 兩種,在 MatchZoo 中有一系列模型可以參考使用。
但在實際工作中我們也發現,在話題追蹤問題中,相似度計算與上述提到匹配算法存在差異,事件的構成要素在文本匹配時起到了決定性作用。因此,如何更好地表達事件特征,并進行特征匹配,是亟需解決的重要問題。為此,我們構建了如下長文本匹配算法 GIM 模型(Graph-based Interactive Matching)。
考慮到事件的定義和組成元素,我們假定事件要素是點,多個事件要素按照特定方式排列成一條線組成一個事件,一篇文章則可以認為是多個事件關聯和交叉所組成的一張圖。據此,我們在 GIM 模型使用了圖方式對長文本進行表達(EEG, Event Element Graph)。
為了表達深層語義,我們借鑒圖模型中的多層 GCN 網絡進行高維語義編碼,同時對每層編碼使用 Interaction-based 方式進行特征交叉。最后使用 attention mask 機制,結合先驗知識,加強語義重心的匹配。以上模型同時適用于 event 粒度和 story 粒度的語義相似度計算,在開源語料和微信語料上,GIM 都取得了優異的效果。
事件短描述生成
事件短描述在熱點榜單、熱詞推薦、熱門話題外顯標題等場景下具有重要應用價值。事件短描述生成模型旨在將文章所包含的核心事件以盡可能精煉的文本概括描述,并確保其語意連貫可理解。
傳統的標題壓縮模型(J Wang,AAAI2018)、句子壓縮模型(S2S-del、S2S-gen 等)、文本摘要生成(S2S、ConvS2S 等)等技術,對事件的要素理解較為不足,容易出現語義缺失、不通順、信息冗余等問題;而自媒體文章標題命名又較為無規則,很容易出現標題黨等情況,傳統方法無法解決標題事件語義缺失的情況。針對事件短描述存在的上述問題,我們設計了一個多源指針網絡生成模型,如下圖所示。
該模型以 pointer network 為基礎模型(通過拷貝的機制,直接從輸入序列中復制最終的生成詞匯),在模型編碼時利用 attention 機制融合文章標題信息和內容信息,同時引入常用事件描述詞詞庫、命名實體信息來保證事件描述的完整性和通順性。在預測階段,我們主要使用了長度限制、語義完整性限制等 penalty,控制短描述的質量。
此外,我們發現用戶搜索 query 具有較好的事件概括性和通順性,所以我們基于用戶搜索日志,多方面挖掘預訓練語料,并進行端到端的預訓練,使得開放域場景下的事件短描述生成效果明顯提升。
五、主動學習
在進行長文本分類標注時,標注人員不得不閱讀整篇文章,才能決定文章的標注,這導致長文本標注成為一個耗時費力的工作。而在熱點發現工作中,又經常需要構建大量的長文本語料。
為了提升長文本語料標注效率,我們面向長文本分類構建了一種生成式的主動學習方法,生成最具有信息量和多樣性的樣本,并利用 sparse reconstruction 近似表示成一些概括性詞語再進行標注。該主動學習方法,大大提升了長文本標注效率,有效避免了浪費標注人力和時間,更適用于大數據集分類任務。相關工作成果已發表于 AAAI2020?(Active Learning with Query Generation for Cost-Effective Text Classification)。
傳統的不確定性是主動學習中一個很有效的衡量方法。但我們研究發現,單純使用不確定性會導致生成的樣本陷入一個局部空間,進而導致信息冗余,浪費標注人力。所以我們在不確定性的基礎上,又研究增加了多樣性的衡量目標,并使用神經網絡方法進行優化,有效防止信息冗余問題。
此外,由于生成的樣本使用特征空間表示,標注人員難以理解和標注,我們把生成的樣本利用 sparse reconstruction 近似表示成一些概括性詞語,使得標注人員能更快速便捷地理解并進行標注,避免了閱讀整篇文章。
實驗表明,我們的方法能有效應用于面向長文本分類的主動學習問題,并且在多份公開數據集上都取得了優異的效果。
六、總結與展望
本次我們主要介紹了在微信看一看中構建的熱點挖掘技術框架。為了更加精準地識別熱點內容,我們綜合運用了質量模型、TDT 技術和熱點預測算法等多維度手段,并結合微信生態特色進行熱點內容發現和預測;為了更好地展現熱點,我們在傳統話題追蹤技術的基礎上,利用深度學習進行優化,構建了熱門話題和事件脈絡等熱點展現形式;
最后我們使用生成式的主動學習方法,加速語料標注和各模型構建,最大程度提升文本標注效率。我們所積累的這些方法和技術,也已經應用于微信搜一搜的時新熱點相關業務優化。
工作過程中,我們也發現了一些技術難點:例如,如何更快、更準地捕捉細分領域熱點,如何更精確地挖掘事件核心要素并實現語義匹配,如何在超級話題(eg.武漢肺炎)中構建和梳理事件脈絡或者圖譜,等等。這是都是我們以后需要深入研究的問題。
另外,除了應用于推薦、搜索之外,我們也一直在思考事件挖掘的更本質目標——預測未來事件、指導人們的行為(比如投資、風控),即如何在挖掘事件的基礎上,構建事件之間的關系、事件角色之間的關系,形成事件圖譜、事理圖譜,進行未來事件的推理和預測,這也是未來值得深入研究的方向。
*本文經騰訊技術 工程(ID:Tencent_TEG)授權,如需轉載請聯系出處。
推薦閱讀
挖掘建模
神器工具
Python技巧
END
來和小伙伴們一起向上生長呀~~~
掃描下方二維碼,添加小詹微信,可領取千元大禮包并申請加入 Python學習交流群,群內僅供學術交流,日常互動,如果是想發推文、廣告、砍價小程序的敬請繞道!一定記得備注「交流學習」,我會盡快通過好友申請哦!
(添加人數較多,請耐心等待)
總結
以上是生活随笔為你收集整理的揭秘微信「看一看」如何精准挖掘你感兴趣的内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据分析与挖掘 | 挖掘建模
- 下一篇: 为什么我们程序员不把软件开发当回事?