萊靈圖髯客,攜程高級算法工程師,主要負責天然語言處理領域相關工做,對半監督學習、天然語言生成、實體識別、文本分類及檢索等領域有濃厚興趣。微信
伴隨信息時代的快速發展,消費者的消費觀念趨於理性、客觀,對產品自己的質量要求也愈來愈高。在用戶難以直接接觸到產品的狀況下,可否第一時間讓用戶對目標產品有快速、深刻的瞭解,已經成爲產品推薦的關鍵。所以,優質、多樣、精簡、信息含量高的內容素材,對提升產品吸引力相當重要。
就旅行場景而言,經過給景酒打上不一樣維度的標籤,既有利於平臺經過用戶偏好更加合理地推薦相應產品,也能幫助用戶對景酒有更快速的瞭解。同時,咱們在景酒標籤的基礎上,進行更加深入的內容挖掘,結合標籤相關的、內容優質的推薦理由,大幅度加深用戶對產品特點的瞭解,幫助客戶快速挑選出最心儀的產品,提高用戶體驗。
而這部分的內容挖掘的核心就在於基於主題的推薦理由自動抽取,須要從主題相關和優質兩個維度進行內容的建模,從而實現內容的快速抽取和挖掘,部分樣例如表1。
|
|
|
|
|
一座彷彿外星球城堡般的建築羣,優美的流線型,幾個單體之間有機鏈接構成彷彿生命體同樣,徹徹底底的網紅打卡地。
|
|
這裏是不少熱門電視劇如《何以笙簫默》、《大好時光》的取景地。
|
|
夜晚是凌空最美的時刻,燈光,噴泉,吸引衆多的攝影愛好者來這拍攝,留下最好的瞬間。
|
|
白天光芒萬丈,高端大氣,傍晚落日餘暉,有種站在舞臺中央即將落幕之感。
|
基於主題的推薦理由自動抽取,在建模的過程當中面對的問題主要包括以下三點:
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%,做爲加強數據在可容許的偏差範圍內。
基於數據回譯的加強是指利用機器翻譯技術將有監督數據進行多輪翻譯,並把最終翻譯回中文的結果加入到訓練集中進行訓練。回譯能夠在保持文本語義基本不變的前提下,增長文本句式、用詞的多樣性,從而防止模型(尤爲是交互式匹配模型)對某種單一句式、詞語產生過擬合。該方法對翻譯質量有較高要求,而且不免會引入部分噪音數據,所以應該在可接受的偏差範圍內,加入適量回譯數據協同訓練,本項目中回譯數據與有監督數據比例約爲1:3。
經過對重要標籤的數據加強,相比baseline模型,加強後的模型在各標籤測試集上的F1值平均提高約10.5%。
當數據集較少時,另外一種可以較好提升模型泛化性、下降任務學習難度的方法就是爲模型引入先驗知識。
|
|
|
這裏和頤和園、拙政園、獅子林並稱中國四大古典園林,園內假山流水十分美麗,日落也不錯
|
|
|
這座建築由貝聿銘設計,獨到地結合了中國特點古典園林風格和現代設計理念,同時頂樓也被評爲××最美日落觀賞地之一
|
經過對業務場景的分析發現,因爲標籤數量較多、覆蓋面較廣,一條文本常常會涉及到多個主題,以表2爲例,表中兩條文本都涉及到了古典園林、落日兩個主題,在古典園林的主題下,兩條文本都是關於古典園林的優質推薦理由,匹配模型輸出應爲1;在落日的主題下,前者只是對落日順帶一提,後者則有對其落日的客觀、積極評價,此時模型指望輸出爲0。
由此能夠看出,兩條文本是否匹配並不絕對,而是與假定的主題有關,直接對文本是否類似進行建模並不合理,所以,咱們考慮在進行文本匹配時加入主題特徵,以此下降任務的學習難度以及「困惑」度。其次,咱們經過卡方檢驗加入與匹配結果強相關的文本特徵,例如主題關鍵詞所在短句窗口內的字符個數、文本是否知足榮譽度模式等,加入這些在有限樣本下難以直接被模型捕捉的特徵,一樣能夠下降模型的學習難度。
爲了在預訓練模型中引入預設的先驗知識,本項目嘗試了兩類方案:即在Input層中引入(如圖4中方案1)或在Task層中引入(如圖4中方案二、3)。在Input層中引入先驗的方式具體指,將先驗知識在輸入層與兩段文本分別進行拼接、並代替原文本做爲預訓練模型的輸入,則模型輸出即爲強化了主題與其餘先驗知識的語義特徵的交互結果;方案2中則是首先將先驗知識經過嵌入矩陣轉化爲稠密向量,並將該向量做爲query、將文本的語義交互結果做爲Key和Value,構建一個Attention網絡。
該方法假設預訓練模型抽取的是文本之間的通用類似特徵,所以使用Attention網絡對通用類似特徵進行定向提取,將更多注意力給予主題相關的維度、對主題無關的特徵維度稀疏化,從而獲得一個與先驗知識關聯緊密的語義類似度表徵;方案3與方案2相似,都是在Task層中利用先驗知識對交互結果施加影響,不一樣之處在於方案3中將Attention網絡替換爲了稠密向量與交互結果構建而成的類似度矩陣,用以表明交互結果在各個主題維度下的類似度結果。
相比之下,方案1的計算開銷最小,方案3其次,方案2因爲要引入注意力機制所以複雜度較高,但通過實踐驗證效果也相對更好,能夠將各標籤測試集的F1值提高約2%。
基於相關任務間知識可遷移的假設,遷移學習一般指將另外一數據集或任務下訓練獲得的模型做爲當前任務初始模型的作法[1],因爲在大多數業務場景下監督數據有限、數據標註所需時間與人力成本較高,所以預訓練模型與遷移學習相結合的方式已經成爲比較主流的baseline構建方式。
從初始參數的角度來看,預訓練模型通過大量無監督數據訓練以後,可以提供一個更好的初始位置,下降下游任務訓練時間、提升模型學習效果;從模型的特徵提取能力來看,預訓練模型可以從文本中提取語義、詞性、句法等高階特徵,從而能夠快速適應各類複雜的下游任務[2]。
根據論文研究以及本項目的實踐結果發現,預訓練模型在進行下游任務微調時存在微調結果波動較大的問題(在小數據集下尤其明顯)。引發該現象的緣由被解耦爲兩個關鍵因素:下游任務層初始化時帶來的隨機性和訓練時的batch順序帶來的隨機性[3]。因爲batch順序帶來的隨機性的可探究性較差,且數據集增減、下游任務變化時結論不可遷移。所以,下降微調不穩定性的突破點在於減弱初始參數的影響:
1)選取合適的初始化隨機數種子:如圖5,經過在不一樣隨機數種子下對多個公開測試集進行多輪實驗發現,使用的隨機數種子不一樣時,模型微調結果的傾向也有所不一樣,即總存在一些「優質」隨機數種子(best WI),使模型微調結果的平均分數更高,存在部分「劣質」隨機數種子(worst WI),使模型微調結果的平均分數較差。不一樣的種子意味着不一樣的參數初始位置,好的初始位置抵達最優勢所需的訓練時長更少,所以優質的隨機數種子是小樣本學習的關鍵,對模型持久優化、迭代也相當重要。
該論文中指出,當模型使用截斷正態分佈初始化方法且seed=12時,可以在二分類中取得廣泛較好的微調結果。因爲本項目的下游任務層與二分類任務的任務層類似,所以使用了與論文中相同的初始化方法。經實踐驗證,該初始化方式的確可以取得較爲穩定、良好的微調結果。若是下游任務層與本項目不一樣,能夠經過屢次實驗尋找一個可以使模型微調結果廣泛較好的種子。
2)使用更加標準的Adam算法:目前對預訓練模型進行下游任務微調時,使用的最廣泛的優化器是BERT自帶的BERTAdam算法。該算法是標準Adam算法的變種,由圖6能夠看出,相比標準Adam算法缺乏了誤差校驗的步驟,所以對學習率有較大影響(尤爲是微調早期),也被認爲是預訓練模型微調結果波動較大的主要因素之一[4]。
在使用BERTAdam進行預訓練時,因爲訓練集足夠大、迭代步數足夠多,BERTAdam與標準Adam的學習率會逐漸趨向一致,所以缺乏誤差校驗所帶來的負面影響微乎其微;可是當使用BERTAdam進行下游任務微調時,若是微調數據集較少,學習率差距較爲顯著,會使微調結果產生較大波動。本項目中使用了標準Adam和BERTAdam分別對模型進行了訓練,使用標準Adam的微調結果比BERTAdam的微調結果要高5~10%左右。
3)使用Layer-wise學習率:因爲下游任務層在初始化時所使用的是隨機參數,所以相比預訓練層,任務層須要更加充分的訓練才能收斂。若是在微調時使用的學習率較小,容易致使任務層欠擬合,擴大參數初始值對微調結果的影響。若是使用的學習率較大,又容易致使預訓練模型的特徵抽取模塊產生過擬合,所以能夠考慮對任務層、預訓練層使用不一樣大小的學習率進行迭代。此外,對於預訓練模型內部,底層網絡一般抽取的是文本的通用特徵,頂層網絡則更傾向於抽取任務相關的特徵,因此頂層網絡相比較之下須要的訓練時間也更長。
綜合以上結論,可使用自上而下逐層衰減的學習率進行訓練,以緩解模型欠擬合、過擬合的問題,該方法在小數據集或任務層複雜度較高的狀況下可以起到較好的效果[5-6]。
咱們經過主題推薦理由自動抽取框架和流程,在總體上約束內容抽取的基本質量,經過匹配模型更好地支持多樣化的標籤維度,而且經過數據加強、遷移學習、先驗增強等方式,在監督數據有限的狀況下,對文本的標籤相關度、內容優質程度進行了有效充分的建模。
同時,本項目中仍存在一些問題須要作進一步優化,首先能夠向模型引入體系化的標籤先驗知識,根據刻畫內容的不一樣,標籤集合也能夠分爲多個類似標籤簇甚至層級標籤,例如古蹟和古典園林、皇宮等標籤之間的優質推薦理由類似性更高,和江河湖、森林等標籤的推薦理由類似性較低,這種標籤之間的類似相關性經過one-hot沒法表示,所以能夠考慮利用圖網絡引入更加高級的先驗知識;其次,可使用公開數據集先進行task的微調,強化預訓練模型對文本匹配任務的理解,最後再進行數據集的微調,該方法也被部分場景下證明有較好的效果。
本文分享自微信公衆號 - 一線碼農聊技術(dotnetfly)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。