乾貨 | “深耕內容”背景下,攜程如何做景酒優質內容的挖掘

作者簡介

 

萊靈圖髯客,攜程高級算法工程師,主要負責自然語言處理領域相關工作,對半監督學習、自然語言生成、實體識別、文本分類及檢索等領域有濃厚興趣。


一、背景介紹



伴隨信息時代的快速發展,消費者的消費觀念趨於理性、客觀,對產品本身的質量要求也越來越高。在用戶難以直接接觸到產品的情況下,能否第一時間讓用戶對目標產品有快速、深入的瞭解,已經成爲產品推薦的關鍵。因此,優質、多樣、精簡、信息含量高的內容素材,對提高產品吸引力至關重要。

就旅行場景而言,通過給景酒打上不同維度的標籤,既有利於平臺通過用戶偏好更加合理地推薦相應產品,也能幫助用戶對景酒有更快速的瞭解。同時,我們在景酒標籤的基礎上,進行更加深刻的內容挖掘,結合標籤相關的、內容優質的推薦理由,大幅度加深用戶對產品特色的瞭解,幫助客戶快速挑選出最心儀的產品,提升用戶體驗。

而這部分的內容挖掘的核心就在於基於主題的推薦理由自動抽取,需要從主題相關和優質兩個維度進行內容的建模,從而實現內容的快速抽取和挖掘,部分樣例如表1。

表1 推薦理由樣例
POI
標籤
推薦理由
SkyBridge HQ天會(原凌空SOHO)
熱門網紅
一座彷彿外星球城堡般的建築羣,優美的流線型,幾個單體之間有機連接構成彷彿生命體一樣,不折不扣的網紅打卡地。
取景地
這裏是很多熱門電視劇如《何以笙簫默》、《大好時光》的取景地。
賞夜景
夜晚是凌空最美的時刻,燈光,噴泉,吸引衆多的攝影愛好者來這拍攝,留下最好的瞬間。
落日
白天光芒萬丈,高端大氣,傍晚落日餘暉,有種站在舞臺中央即將落幕之感。

基於主題的推薦理由自動抽取,在建模的過程中面對的問題主要包括如下三點:

1)標籤數量較多、標籤種類不固定。目前已有的標籤數量在百級別,同時隨着熱點的持續挖掘,需要支持更多的細粒度標籤;

2)業務數據質量參差不齊。由於業務數據主要來源於用戶評論、旅拍文章,因此數據內容、質量差異較大,並且存在大量噪音,對模型的擬合、泛化能力要求較高;

3)有監督數據獲取難度較高。由於內容素材的主題相關程度、內容優質程度難以量化、評估具有主觀性,因此從海量參差不齊的數據中獲取質量穩定、數量相當的有監督數據難度較大;

本文基於上述問題,從流程框架,模型選擇,數據增強,模型優化四個角度進行了詳細的描述。通過引入預處理流程,基於情感模型/質量模型等機制進行內容等級的初步篩選,基於無監督語義模型進行主題維度的初篩,通過這些前置模塊,提升整體數據的質量。同時,在模型的選擇維度,對比了分類模型和匹配模型的特性,從模型的泛化和快速擴充的能力角度,闡述了匹配模型的優勢。在基於匹配模型的基礎上,詳細介紹瞭如何快速有效地進行數據的自動獲取。最後,從遷移學習和主題優化維度介紹了在相對小樣本和存在歧義性的時候模型優化和訓練的trick。

二、流程框架



由於用戶數據基數大、複雜性高、質量參差不齊的特性,我們將整體框架分爲了召回、粗排、精排3個模塊,同時結合多種數據篩選策略,以保證最終的篩選效果,如圖2所示。

圖2 推薦理由抽取框架圖


召回模塊通過標籤關鍵詞對用戶數據進行定向召回,並利用情感分類模型、質量模塊,詞法分析等維度對召回內容進行篩選,從而在海量數據中初步打撈情感正向、可能存在主題相關和具有信息含量的文本。這裏的質量模型主要對一些旅遊不相關的內容進行了建模,如明顯的廣告文案。在詞法維度中,則考慮了停用詞/名詞/形容詞/動詞等維度的佔比。

粗排模塊基於無監督匹配的方法對召回文本做進一步的語義篩選,將候選集中與標籤相關度較低的部分剔除,在降低匹配模型運算的時間成本的同時,還可以通過對開放域數據分佈設限,減少後續主題匹配模型的排序壓力。

精排模塊的核心是主題匹配模型,在該主題模型中,會從內容優質角度以及主題相關性角度進行建模。在此基礎上,結合榮譽度模型,句長等維度進行加權融合。這樣可以滿足不同業務場景對於推薦理由在字數或者表達推薦性上的個性化要求。其中,榮譽度模型,是對具有網紅打卡等推薦性維度內容的建模,相對於一般的情感模型,在內容的推薦上具有更大的優勢。

三、模型選擇



由於我們需要支持的標籤種類較多,並且也需要快速的去擴充和支持更多新標籤。在此同時,各個標籤對應的訓練數據的分佈差異也較大,難以控制和平衡。因此我們基於匹配模型進行建模。

對於一般的分類問題,標籤數量多、不固定以及數據數量少、不平衡的問題會極大提高分類模型的學習難度:多分類任務在訓練時一般使用hard target的交叉熵作爲目標函數,尤其在小樣本情況下,這種非1即0的訓練模式非常容易導致模型對訓練集產生over-fitting或over-confident,即模型爲了”強行”區分某些相近類別之間的訓練樣本,將類別無關的關鍵詞或模式誤學習爲區分類別的關鍵因素,該現象在標籤數量越多時越爲明顯。

其次,標籤體系會隨着數據挖掘的進行不斷優化、完善,如果使用分類模型,當標籤體系增加時,分類模型都需要添加相應類別的數據並重新訓練。最後,標籤數量多與訓練數據少、樣本分佈不平衡等因素相互作用,導致各標籤訓練集稀疏,對模型訓練帶來較大困難,即便藉助上下采樣進行數據均衡,也很難在較大量標籤的情況下取得一個普遍好的分類效果。

對於匹配模型而言,該方法是對文本語義進行建模,進行輸入文本語義之間的pairwise度量,對標籤樣本分佈不均勻問題的魯棒性相對更高,並且需要新增標籤時也具備一定的可擴展性,不需要重新訓練模型,只要選定合適的標準Query就可以有較好的泛化效果。

文本匹配是一種用於度量文本之間相似性/相關性的NLP技術,也是自然語言理解的核心問題之一,目前已經在信息檢索、問答匹配、對話系統等場景中得到了廣泛應用。

匹配模型可以分爲表示型、交互型。表示型模型使用參數共享的編碼器對兩個輸入文本分別、獨立進行語義特徵抽取,通過餘弦距離、歐式距離等方式對兩個文本的相似度進行度量,其優點是模型複雜度相對較低,並且文本可以通過表示模型對文本特徵進行預處理和持久化保存,能夠極大降低匹配的時間成本,該種類代表模型包括DSSM、CDSSM, MV-LSTM, ARC-I, CNTN, CA-RNN,MultiGranCNN等。交互式模型則在對文本進行向量化表示之後,直接利用卷積、注意力網絡等方式對文本的局部相似特徵進行抽取,相比表示型模型,交互式方法更容易捕捉兩個文本之間的相似特徵,代表模型有ARC-II、MatchPyramid、DeepMatch、ESIM、ABCNN、BIMPM等。

因此,我們這邊選擇基於交互式的匹配模型進行建模。在建模的過程中,需要同時從主題相關和內容優質性兩個維度進行建模。正樣例的選擇,則是同一主題下優質推薦理由的pairwise組合,而負樣例則包括兩種模式,一是優質推薦理由與同主題下劣質推薦理由的組合,二是不同主題下優質推薦理由組合。通過對正負樣本組合的選擇和採樣來強化主題匹配模型中內容優質性和主題相關性的信息。

四、數據增強



對於主題匹配模型的訓練樣本,我們要求具有優質性和主題相關性。一個好的主題相關的推薦理由,需要整句圍繞相關主題,提供相關的豐富詳細的描述。而在一般的UGC數據中,這種優質的表達佔比相對較少,一般用戶會圍繞多個主題點簡單的進行描述。在不同業務場景下,呈現的數據分佈也是差異較大,如景點類較酒店類,在UGC內容的表達上,相對豐富和詳盡。訓練數據是模型的基本,它的質量決定了最終效果,我們對於訓練數據則具有更高的要求。

對於較多的標籤維度,我們如何快速的獲取到一定量級的優質數據成爲重中之重的事情。因此,在監督數據有限的情況下,我們通過數據增強技術,引入一定數量的、誤差在可容忍範圍內的無監督數據充當有監督數據,並加入到訓練數據中,從而有效提高模型效果。主要從基於規則和基於回譯兩個維度進行了數據增強。

基於規則的數據增強包括通用數據的增強和欠擬合數據增強。在進行通用數據增強時,應重點關注真實場景中出現頻次較高、訓練數據佔比較低的標籤,其次關注測試集表現較差、訓練樣本佔比過低的標籤,通過引入一定量內容優質、主題相關的增強數據,緩解標籤分佈失衡的問題、提高模型在增強標籤上的學習及泛化效果。

一般而言,優質素材傾向於有更多的修飾詞、榮譽度模式,因此如圖3所示,我們結合句法分析、詞性標註與模式匹配的方式對原始語料做內容質量篩選,同時利用主題關鍵詞分佈和無監督語義匹配進行主題相關度把控,從而獲得質量較高的無監督數據加入訓練數據中。欠擬合數據增強是指通過對開放數據集的預測結果進行分析,將模型學習效果較差的模式進行批量抽取、增強,以此強化模型對部分文本模式的識別、拒識別效果,但應注意增強數量不宜過多,否則容易導致模型對該類型的文本模式產生過擬合。

在超優選模塊中我們複用了榮譽度匹配、詞法分析、無監督語義匹配等召回、粗排模塊中的組件,但是與第二節中的召回模塊各個模型提供的融合功能不同,超優選模塊是爲了批量獲得質量較高、無需人爲校驗的數據,應以精度優先,因此各模塊的限制條件更高;而召回模塊中,則是爲了給精排模塊初步提供一個受限候選集,故以召回優先,各模塊限制條件相對較低。通過將優質數據源(如高質量旅拍文章、景點簡介等)與超優選模塊相結合,獲得的增強數據經抽樣校驗後可用率約爲93%,作爲增強數據在可允許的誤差範圍內。


圖3 數據增強框架圖

基於數據回譯的增強是指利用機器翻譯技術將有監督數據進行多輪翻譯,並把最終翻譯回中文的結果加入到訓練集中進行訓練。回譯可以在保持文本語義基本不變的前提下,增加文本句式、用詞的多樣性,從而防止模型(尤其是交互式匹配模型)對某種單一句式、詞語產生過擬合。該方法對翻譯質量有較高要求,並且難免會引入部分噪音數據,因此應該在可接受的誤差範圍內,加入適量回譯數據協同訓練,本項目中回譯數據與有監督數據比例約爲1:3。

通過對重要標籤的數據增強,相比baseline模型,增強後的模型在各標籤測試集上的F1值平均提升約10.5%。

五、模型優化



5.1 引入先驗

       
當數據集較少時,另一種能夠較好提高模型泛化性、降低任務學習難度的方法就是爲模型引入先驗知識。

表2 交叉主題範例
推薦理由
古典園林
落日
這裏和頤和園、拙政園、獅子林並稱中國四大古典園林,園內假山流水十分美麗,日落也不錯
相似
不相似
這座建築由貝聿銘設計,獨到地結合了中國特色古典園林風格和現代設計理念,同時頂樓也被評爲××最美日落觀賞地之一

通過對業務場景的分析發現,由於標籤數量較多、覆蓋面較廣,一條文本經常會涉及到多個主題,以表2爲例,表中兩條文本都涉及到了古典園林、落日兩個主題,在古典園林的主題下,兩條文本都是關於古典園林的優質推薦理由,匹配模型輸出應爲1;在落日的主題下,前者只是對落日順帶一提,後者則有對其落日的客觀、積極評價,此時模型期望輸出爲0。

由此可以看出,兩條文本是否匹配並不絕對,而是與假定的主題有關,直接對文本是否相似進行建模並不合理,因此,我們考慮在進行文本匹配時加入主題特徵,以此降低任務的學習難度以及“困惑”度。其次,我們通過卡方檢驗加入與匹配結果強相關的文本特徵,例如主題關鍵詞所在短句窗口內的字符個數、文本是否滿足榮譽度模式等,加入這些在有限樣本下難以直接被模型捕捉的特徵,同樣可以降低模型的學習難度。

圖4 模型框架圖

爲了在預訓練模型中引入預設的先驗知識,本項目嘗試了兩類方案:即在Input層中引入(如圖4中方案1)或在Task層中引入(如圖4中方案2、3)。在Input層中引入先驗的方式具體指,將先驗知識在輸入層與兩段文本分別進行拼接、並代替原文本作爲預訓練模型的輸入,則模型輸出即爲強化了主題與其他先驗知識的語義特徵的交互結果;方案2中則是首先將先驗知識通過嵌入矩陣轉化爲稠密向量,並將該向量作爲query、將文本的語義交互結果作爲Key和Value,構建一個Attention網絡。

該方法假設預訓練模型抽取的是文本之間的通用相似特徵,因此使用Attention網絡對通用相似特徵進行定向提取,將更多注意力給予主題相關的維度、對主題無關的特徵維度稀疏化,從而得到一個與先驗知識關聯緊密的語義相似度表徵;方案3與方案2類似,都是在Task層中利用先驗知識對交互結果施加影響,不同之處在於方案3中將Attention網絡替換爲了稠密向量與交互結果構建而成的相似度矩陣,用以代表交互結果在各個主題維度下的相似度結果。

相比之下,方案1的計算開銷最小,方案3其次,方案2由於要引入注意力機制因此複雜度較高,但經過實踐驗證效果也相對更好,可以將各標籤測試集的F1值提升約2%。

5.2 遷移學習

       
基於相關任務間知識可遷移的假設,遷移學習通常指將另一數據集或任務下訓練得到的模型作爲當前任務初始模型的做法[1],由於在大多數業務場景下監督數據有限、數據標註所需時間與人力成本較高,因此預訓練模型與遷移學習相結合的方式已經成爲比較主流的baseline構建方式。

從初始參數的角度來看,預訓練模型經過大量無監督數據訓練之後,能夠提供一個更好的初始位置,降低下游任務訓練時間、提高模型學習效果;從模型的特徵提取能力來看,預訓練模型能夠從文本中提取語義、詞性、句法等高階特徵,從而可以快速適應各種複雜的下游任務[2]。

根據論文研究以及本項目的實踐結果發現,預訓練模型在進行下游任務微調時存在微調結果波動較大的問題(在小數據集下尤爲明顯)。引起該現象的原因被解耦爲兩個關鍵因素:下游任務層初始化時帶來的隨機性和訓練時的batch順序帶來的隨機性[3]。由於batch順序帶來的隨機性的可探究性較差,且數據集增減、下游任務變化時結論不可遷移。因此,降低微調不穩定性的突破點在於減弱初始參數的影響:

1)選取合適的初始化隨機數種子:如圖5,通過在不同隨機數種子下對多個公開測試集進行多輪實驗發現,使用的隨機數種子不同時,模型微調結果的傾向也有所不同,即總存在一些“優質”隨機數種子(best WI),使模型微調結果的平均分數更高,存在部分“劣質”隨機數種子(worst WI),使模型微調結果的平均分數較差。不同的種子意味着不同的參數初始位置,好的初始位置抵達最優點所需的訓練時長更少,因此優質的隨機數種子是小樣本學習的關鍵,對模型持久優化、迭代也至關重要。

該論文中指出,當模型使用截斷正態分佈初始化方法且seed=12時,能夠在二分類中取得普遍較好的微調結果。由於本項目的下游任務層與二分類任務的任務層相似,因此使用了與論文中相同的初始化方法。經實踐驗證,該初始化方式的確能夠取得較爲穩定、良好的微調結果。如果下游任務層與本項目不同,可以通過多次實驗尋找一個能夠使模型微調結果普遍較好的種子。


圖5 隨機數種子對微調結果的影響

2)使用更加標準的Adam算法:目前對預訓練模型進行下游任務微調時,使用的最普遍的優化器是BERT自帶的BERTAdam算法。該算法是標準Adam算法的變種,由圖6可以看出,相比標準Adam算法缺少了偏差校驗的步驟,因此對學習率有較大影響(尤其是微調早期),也被認爲是預訓練模型微調結果波動較大的主要因素之一[4]。

在使用BERTAdam進行預訓練時,由於訓練集足夠大、迭代步數足夠多,BERTAdam與標準Adam的學習率會逐漸趨向一致,因此缺少偏差校驗所帶來的負面影響微乎其微;但是當使用BERTAdam進行下游任務微調時,如果微調數據集較少,學習率差距較爲顯著,會使微調結果產生較大波動。本項目中使用了標準Adam和BERTAdam分別對模型進行了訓練,使用標準Adam的微調結果比BERTAdam的微調結果要高5~10%左右。

圖6 BERTAdam與Adam算法流程

3)使用Layer-wise學習率:由於下游任務層在初始化時所使用的是隨機參數,因此相比預訓練層,任務層需要更加充分的訓練才能收斂。如果在微調時使用的學習率較小,容易導致任務層欠擬合,擴大參數初始值對微調結果的影響。如果使用的學習率較大,又容易導致預訓練模型的特徵抽取模塊產生過擬合,因此可以考慮對任務層、預訓練層使用不同大小的學習率進行迭代。此外,對於預訓練模型內部,底層網絡通常抽取的是文本的通用特徵,頂層網絡則更傾向於抽取任務相關的特徵,所以頂層網絡相比較之下需要的訓練時間也更長。

綜合以上結論,可以使用自上而下逐層衰減的學習率進行訓練,以緩解模型欠擬合、過擬合的問題,該方法在小數據集或任務層複雜度較高的情況下能夠起到較好的效果[5-6]。

六、總結


       
我們通過主題推薦理由自動抽取框架和流程,在整體上約束內容抽取的基本質量,通過匹配模型更好地支持多樣化的標籤維度,並且通過數據增強、遷移學習、先驗加強等方式,在監督數據有限的情況下,對文本的標籤相關度、內容優質程度進行了有效充分的建模。

同時,本項目中仍存在一些問題需要做進一步優化,首先可以向模型引入體系化的標籤先驗知識,根據刻畫內容的不同,標籤集合也可以分爲多個相似標籤簇甚至層級標籤,例如古蹟和古典園林、皇宮等標籤之間的優質推薦理由相似性更高,和江河湖、森林等標籤的推薦理由相似性較低,這種標籤之間的相似相關性通過one-hot無法表示,因此可以考慮利用圖網絡引入更加高級的先驗知識;其次,可以使用公開數據集先進行task的微調,強化預訓練模型對文本匹配任務的理解,最後再進行數據集的微調,該方法也被部分場景下證實有較好的效果。


參考文獻

[1] Yosinski J, Clune J, Bengio Y, et al. Howtransferable are features in deep neural networks?[C]//Advances in neuralinformation processing systems. 2014: 3320-3328.
[2] Devlin J,Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformersfor language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
[3] Dodge J,Ilharco G, Schwartz R, et al. Fine-tuning pretrained language models: Weightinitializations, data orders, and early stopping[J]. arXiv preprintarXiv:2002.06305, 2020.
[4] Zhang T, Wu F, Katiyar A, et al. RevisitingFew-sample BERT Fine-tuning[J]. arXiv preprint arXiv:2006.05987, 2020.
[5] Howard J,Ruder S. Universal language model fine-tuning for text classification[J]. arXivpreprint arXiv:1801.06146, 2018.
[6] Clark K,Luong M T, Le Q V, et al. Electra: Pre-training text encoders as discriminatorsrather than generators[J]. arXiv preprint arXiv:2003.10555, 2020.

【推薦閱讀】




 “攜程技術”公衆號

  分享,交流,成長



本文分享自微信公衆號 - 一線碼農聊技術(dotnetfly)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章