為看一看及搜一搜“去污”,AI怎麼做到的?

編輯導讀:網上衝浪,我們時常會看見一些低俗色情的不良內容,這時候就需要平台介入清除。本文作者以微信的搜一搜和看一看為例,介紹低俗色情識別任務在從看一看業務遷移到搜一搜業務中遇到的一些問題、思考以及所做的一些嘗試。

為看一看及搜一搜“去污”,AI怎麼做到的?

本文主要介紹低俗色情識別任務在從看一看業務遷移到搜一搜業務中遇到的一些問題、思考以及所做的一些嘗試。本文嘗試分析一下看一看與搜一搜場景的差異以及因差異導致的應用遷移困難;進而思考如何建立更好的分析機制和評價體系;最後在模型方面談一下基於Bert的一些遷移改進與應用;本文工作主要集中在短文本領域。

01 看一看與搜一搜場景的差異分析1. 業務焦點的差異

在中心業務發展過程中,低俗色情識別最先應用於看一看場景,主要包括公眾號文章、視頻和新聞等內容源。在基於上述內容源的推薦場景中,由於內容以PGC生產為主,因此低俗色情問題的90%以上都是輕微低俗擦邊,完全色情的問題比例很小;經過我們的努力,擦邊程度以上的問題被控制在較低的水平(可參考之前的看一看介紹文章)。

隨着搜索業務的發展,搜索場景的環境淨化也變得刻不容緩,從用户query的提示、相關搜索到搜索結果的展示,都需要低俗色情識別來進行過濾。與看一看推薦場景不同的是,推薦是平台的主動行為,所以搜索場景90%以上的注意力更關注色情內容的識別過濾,推薦分發擦邊內容是不可以的。(至少在看一看的調性中如此)

2. 數據的差異

在從推薦場景轉移到搜索場景中,我們面對的語料也發生了一些質變,從主要PGC生產的較標準的PGC語料轉為了全網開放領域(例如搜索query與搜狗網頁),色情問題規模也是相較之前有了爆發式的增長。因此看一看中多個數據源的模型在遷移到開放的搜索語料時,存在很大的領域差異,嚴重色情問題的召回不足,導致遷移應用的效果較差。

3. 問題解決環境的差異

在問題發現上,看一看中有較完備的人工輪詢機制,同時用户負反饋也可以提供很好的問題發現和樣本。而到了搜一搜這裏,相較海量用户query及網頁結果,色情case的比例很低,輪詢機制的效率極低(比如推薦中輪詢100個可以發現1個問題case,而搜索彙總可能需要輪詢1k個);搜索也缺少像推薦那樣用户對單個內容的即時負反饋。在問題分佈上,由於推薦系統的機制及用户習慣,天然的會將擦邊內容推到點擊top的集合中;而這一效應在搜索中並不明顯,依舊十分稀疏。由於搜索場景的問題稀疏,長尾問題更多(各種可能的作弊、黑話),這裏不僅要跟黑產做對抗,還需要與用户的輸入鬥智鬥勇,在效果評價上(主要是召回)也更加困難。

02 如何更好地分析樣本與評價效果

如上文所述,由於兩個業務的差異導致原有一些模型遷移到搜索的語料上時效果較差,模型精度的提升一般相對容易,通過樣本清洗、誤分樣本的糾正及特徵權重的調整(比如使用Lime輔助分析),可以較快的對精度進行提升。而在面對開放領域的query、網頁標題時,問題的稀疏性、長尾性以及問題發現機制的不健全(或者説低效)都導致了召回的提升是一個難題,同理召回的效果評價也更困難,因此這裏也是主要探討對於樣本召回的分析,主要集中在query與搜狗網頁標題。

在分析方法上,通過已有模型的baseline結合傳統的基於關鍵詞、embedding向量相似可以為我們提供一份較多的種子數據。在此基礎上,我們結合搜索業務的場景特點以及一些可用的知識,嘗試了以下一些方法並取得了更好的效果。

1. 搜索引擎結果的分析

站在巨人的肩膀上,可以幫助我們快速取得提升。一些搜索引擎的搜索結果質量以及展現的特徵可以輔助我們擴展語義與分析樣本。通過分析網址安全中心提醒、搜索結果數、相關搜索等特徵可以幫助我們快速分析篩選一些疑似樣本。這個方法在色情小説等問題的運用上有較好的效果。

同時,搜索引擎的搜索結果以及相關搜索結果也可以幫助擴展query語義以及一些變種,達到舉一反三的功效,在實踐中得以應用。

2. Query用户改寫串分析

用户行為是我們做分析的一個利器,既然搜索場景沒有推薦那樣顯示的負反饋,那就通過分析用户心理和行為為我們提供隱式的負反饋。這個idea的出發點很簡單,用户的搜索行為往往是連續的,直到得到想要的結果才會停止。那麼在一次用户的連續搜索行為中,我們可以利用用户query的改寫串來進行批量分析,通過已有模型對改寫串的打分可以高效的分析目前模型還不能解決的case。

由於個別字的改變(作弊)導致表面語義的飄逸,很容易逃過色情檢測。通過這類作弊case,我們可以進一步深挖搜索黑產所進行的一些seo作弊操作,由session發現作弊進而映射到uin,可以分析一批作弊用户及其作弊query。與黑產的對抗在低質識別工作中是永恆的話題,矛與盾的不斷升級,不斷試探;而藉助已有的能力並進一步分析黑產用户的搜索模式,可以幫助我們建立起良性的循環和有效的對抗升級。

3. Query與點擊doc的聯動分析

在實際業務中,由於query與網頁標題語料的不同,文本長度上,query偏超短文本而網頁標題偏短文本;同時二者的表述等也存在領域差異,因此在業務中是訓練了各自的模型。那麼與query改寫分析類似的思路,結合已有模型的能力與用户行為進行樣本分析和補充。這裏利用搜索引擎已自帶的query與結果的相關性加上用户點擊這一強行為特徵,尤其在色情領域上使得query與結果的相關性比大盤水平高出很多。那麼通過query與點擊title的各自模型的預測得分,就可以較快的將不足的一方進行補全優化,實現多模型的聯動升級。

4. 評價指標

在效果評價上,我們一般採用精度、召回與F1值作為主要的效果評價指標,這裏的難點主要在於召回評價上。因為搜一搜場景問題數據的稀疏性和長尾性,採用大盤隨機評測召回需要投入很多人力來獲取一個置信度較高的結果,因此我們儘量採用多個維度來體現模型的效果。通過比較迭代模型前後的diff勝出率可以實現自身的比較;通過引入其他開放領域測試集輔助驗證模型的泛化通用性。除此之外,我們的業務使用方還單獨分析了一批業務測試集,對算法側保持黑盒狀態,用打比賽的方式來評價成績也是一個不錯的選擇。

03 基於Bert的遷移學習改進

在模型方面,可以説Bert(及其各種升級版)是目前在大多數NLP任務中效果最佳的模型。在GPU資源充足的情況下,我們也優先部署Bert提高業務效果,並在Bert的基礎上結合業務特點進行一些模型創新。下面將從如何使用pivot詞改良Bert的預訓練過程和如何利用業務中天然的多任務學習場景來提高模型最終效果這兩點來展開介紹。

1. 基於可遷移Pivot詞的Bert遷移學習

目前對於Bert的應用來説,大多情況(簡單用法)都是直接在少量的標註數據上去Finetune最後一層即可取得較好的效果。對於精細化的升級用法,會先在特定任務的語料上去精調預訓練的語言模型,這樣的好處是可以讓模型更加適應當前任務的語言環境。而這一點在低俗色情問題上是非常匹配且需要的,因為一般Bert預訓練語言模型的語料都是類似維基百科這種較正常標準的內容,缺少低俗色情裏的很多低俗説法、黑話、作弊等內容(比如“幹”“棒棒糖”等詞),這就使得預訓練得到的語言模型缺少對這些一詞多義的理解,即基於上下文的語義理解,而這些的一詞多義正是我們這一特定任務最需要的。

對於Bert的優化方向之一就是引入更多輔助任務以及外部知識,對下游的知識類任務或者包含NER相關的任務有直接的效果提升作用。與此思路類似的是,我們引入了pivot詞的知識,學術界有不少遷移學習的工作是基於pivot詞來提升不同領域之間的遷移效果,這在低俗色情問題上同樣十分匹配,通過學習領域不變的pivot特徵來橋接源領域和目標領域,從而使得在源域上訓練的模型可以適配目標域。

我們的TPT(Transferable Pivot Transformer)模型分為兩部分,pivot選擇網絡以及mask pivot的預訓練語言模型網絡(分別對應模型示意圖的右半部分和左半部分)。在pivot選擇部分,為了優化色情領域很多新詞或作弊詞的問題(例如“輪軒”“好庠”等),我們採用基於字的bi-gram和tri-gram,通過已有標註數據計算互信息MI獲取到一批權重高的pivot詞表。進一步為了使得pivot詞更具可遷移性,我們通過訓練pivot詞的領域分類器來挑選出領域不可分(即可遷移)的最終pivot詞表。

在預訓練語言模型階段,與傳統bert的mask策略不同的是,我們加入了針對pivot詞的mask策略,我們希望模型能更多的關注和學習到pivot詞在不同上下文語境中的語義。因此在訓練語言模型的過程中,我們對於pivot詞大概率下進行mask,小概率下保持不變;同時bert原有的隨機mask策略可繼續使用,最終生成的即為適用於我們這一特定任務場景的預訓練語言模型。我們這一idea的工作已發表在AAAI2020上,感興趣的同學可以細看一下。Simultaneous Learning of Pivots and Representations for Cross-Domain Sentiment Classification

2. 基於Bert&知識蒸餾的多任務學習

如前文所述,在搜一搜的低俗色情的任務場景中有query、搜狗網頁、公眾號文章、視頻等多個數據領域,多個領域間均存在不同程度的領域差距,也因此每個領域都會訓練生成對應的分類模型。與此同時,多個領域之間的任務目標又十分相似,很多知識是通用的,這十分適合多任務模型的應用。在之前看一看的工作中,我們也嘗試了例如基於LSTM的多任務模型、領域遷移對抗模型等,在Bert興起後,如當年Imagenet的進化路徑,Bert可以作為一個優良的底層特徵提取器,繼續在Bert之上結合傳統的多任務學習或者遷移學習的工作進一步提升效果。這裏我們嘗試了Google發表在ACL2019的工作BAM! Born-Again Multi-Task Networks for Natural Language Understanding,其將Bert與多任務學習、知識蒸餾巧妙地結合在一起。

知識蒸餾即將知識從「教師」模型遷移到「學生」模型,執行方式為訓練學生模型模仿教師模型的預測。在「born-again network」(Furlanello et al., 2018) 中,教師和學生具備同樣的神經網絡架構和模型大小,然而學生網絡的性能超越了教師網絡。有研究分析其提升的原因是因為教師模型的輸出不再是原來one-hot label的形式,而轉為對label分佈的輸出,這可以提供更多的訓練信息(dark knowledge)。

BAM進一步將知識蒸餾擴展到多任務模型訓練環境中,在業務應用中,首先對各個領域的數據訓練bert的教師模型,進而結合教師模型的預測值和實際label作為多任務學習的label,在BAM中提供了教師模型退火的機制,即在迭代中逐漸減少教師預測值的權重,達到青出於藍而勝於藍的效果。

04 結語

近一年我們集中優化了搜一搜下多個場景的低俗色情任務的效果,在query(包括suggestion、hint及意圖識別)、網頁、文章等多個搜索場景取得了較好的效果,整體F1值在0.8以上。在做業務的時候,我們儘量分析業務自身的特點,藉助各種可用的知識以及適用業務特點的模型來快速提升效果。在如何完善問題發現機制、與黑產模式對抗、使模型更具可遷移性、效果評估更置信等問題上我們還在不斷地嘗試發掘出一些新的思路,感興趣的同學歡迎一起探討,感謝大家捧場。

作者: fredyttang,微信公眾號:微信AI

來源:https://mp.weixin.qq.com/s/D_4G_OWtmLN8hrYM8PThHg

本文由 @微信AI 授權發佈於人人都是產品經理,未經許可,禁止轉載。

題圖來自 Unsplash,基於CC0協議。

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 4866 字。

轉載請註明: 為看一看及搜一搜“去污”,AI怎麼做到的? - 楠木軒