新零售智能引擎事業群出品

背景介紹
查詢自動補全(Query Auto-Completion, 簡稱QAC)是現代搜尋引擎的一個重要功能子產品。如下圖所示,該子產品的主要功能為:在使用者向搜尋框輸入查詢的過程中,根據目前查詢字首(如“藍”)推薦一些個性化的查詢補全建議(如“藍牙耳機”等)供選擇,進而提高使用者的搜尋效率。
QAC子產品的性能要求主要包括兩個方面:
- 準确性:能夠準确地預測使用者的意圖,進而使推薦結果清單有較高的個性化程度。例如,當使用者目前輸入為“藍”時,搜尋意圖有多種可能性,包括“藍牙耳機”、“藍月亮洗衣液”、“藍色條紋連衣裙”等,QAC子產品需要根據字首和一些個性化特征預測使用者的完整意圖,并将對應的補全查詢排到清單靠前的位置。
- 實時性:大部分搜尋引擎要求QAC子產品能在使用者輸入過程中實時給出推薦清單,是以會要求該功能的響應時間盡可能短(如不超過300ms)。
與大部分搜尋或推薦任務類似,QAC一般采用“先召回後排序”的兩階段過程:首先,從曆史搜尋記錄中挖掘出一個查詢候選池,并從字首、分詞、單字、拼音等多個次元建立查詢索引;在召回階段,根據使用者目前輸入的查詢字首,使用索引進行多路召回,合并後得到一個初步的候選集;在排序階段,使用一個基于Learning to rank的個性化排序模型對候選集進行打分排序,并最終選取排名最高的N個查詢按順序展現給使用者。
痛點問題
随着搜尋與推薦技術的發展,QAC經曆了多次更新換代。然而,目前的大部分系統仍然存在以下兩個痛點問題,嚴重影響着該子產品的性能與使用者體驗。
- 長尾輸入少、無結果:在曆史搜尋日志中,查詢的搜尋次數服從“長尾分布”,即絕大部分查詢搜尋次數較少。在實作一個QAC系統時,出于對存儲開銷和計算性能的考慮,很多長尾查詢不會被加入到候選池或索引中,導緻對應的長尾輸入少、無結果。一些曆史日志中從未出現的新查詢也會遇到相同的問題。
- 排序個性化程度低:目前大部分系統對使用者搜尋意圖的預測準确度較低,更傾向于推薦一些高頻的“頭部”查詢,導緻不同使用者在輸入相同字首時展示清單大同小異。
解決方案
針對上述問題,我們提出了一種融合多視圖使用者行為資訊的多任務查詢補全推薦方法,基本的解決思路包括兩點:
- 在召回階段,用參數化的神經網絡序列生成模型根據字首采用多樣化beam search的解碼政策自動“生成”一些查詢補全,作為現有召回方式的補充,進而解決長尾輸入少、無推薦結果的問題。
-
在排序階段,引入使用者曆史搜尋查詢與浏覽内容等多種視圖的行為序列資訊作為模型決策依據,進而更準确地預測使用者的搜尋意圖,提升結果清單的排序個性化程度。
為了使生成模型和排序模型都能取得較高的預測準确率,設計模型時需要考慮的一個關鍵問題是:如何更好地模組化和利用多視圖的使用者曆史行為序列。
在搜尋引擎中,使用者行為常常是指搜尋某個查詢或浏覽某個内容。為了擷取更全面的曆史行為資訊,我們引入了搜尋查詢和浏覽内容兩個視圖的使用者行為序列。這些使用者行為序列具備如下三個特點:
- 查詢或内容與使用者的互動頻次呈長尾分布:這意味着,大部分推薦方法僅依賴互動學習行為整體embedding的方式并不能使模型學得比較好的長尾行為表示。
- 使用者行為背後的意圖存在歧義性:以查詢“南京大學”為例,不同使用者存在不同的搜尋意圖,可能是想搜南京大學的周邊紀念品,也可能是想搜南京大學編寫的書籍資料。是以,僅根據行為本身是難以準确了解背後意圖的,結合上下文去了解會是更好的選擇。
- 不同行為之間存在依賴關系:搜尋日志中的大部分行為不是獨立存在的,如使用者的查詢很可能一次性輸不滿意,會涉及到多次的修改,修改前後的查詢之間顯然會存在依賴關系。如何模組化和刻畫這些行為間的依賴關系也是一個值得考慮的問題。
針對上述特點,我們将基于Self-Attention機制的Transformer模型引入到多視圖使用者行為序列的模組化中,提出了一種新型的階層化行為序列編碼模型:如下圖左邊方框内容所示,該編碼模型包括行為(behavior)和上下文(context)兩個層次的Transformer編碼器模型。
針對每個行為的模組化,大部分推薦系統的常見做法是完全依賴互動學習表示,忽略了行為本身的内容資訊,使得長尾行為的表示效果較差。我們則提出用Transformer模型編碼每個行為中字、詞級别的内容資訊,這樣可以有效地提升長尾行為的表示效果,對從未見過的新行為也有着非常好的泛化效果。
在此基礎上,我們引入了一種多頭池化(Multi-head Pooling)機制用于擷取每個行為的高層表示,并将對應的行為級别表示輸入到一個上下文層次的Transformer模型中進行編碼,通過Transformer本身的Self-Attention機制融合上下文資訊實作行為語義的準确了解,同時也可以顯式刻畫不同行為之間的依賴關系。
通過階層化的Transformer編碼,我們可以擷取更準确、更富資訊量的行為序清單示。然而,并不是所有的曆史行為都與使用者目前的搜尋意圖有着強相關性。為了減少預測階段的資訊備援,我們引入了一個多頭注意力子產品,以使用者已輸入字首的表示作為查詢,對曆史行為序列中的資訊進行篩選,将一些相關性強的資訊表示進行權重合并後與字首表示整合到一起,作為後續模型預測的依據。
在擷取預測依據後,我們便要考慮用什麼方式來預測使用者的完整查詢。目前查詢補全推薦有兩種主要解決方案:一種是将QAC子產品看作一個小的搜尋引擎,采用“檢索排序”的方式進行結果推薦;另一種是将QAC看作一個文本生成任務,使用神經網絡模型自動生成完整的查詢。二者的相同點在于都需要依賴使用者曆史行為序列進行決策,而不同點主要展現在訓練目标函數與使用的訓練資料形式上:
- 排序往往被看作一個點選率(CTR)預估的任務,使用pointwise的目标函數進行CTR模型的訓練(如Lc);而生成模型的訓練則需要引導模型能準确生成每個詞,有着更細粒度的訓練目标函數(如Lg)。
融合多視圖行為資訊的多任務查詢補全推薦方法 | KDD 論文解讀
- 在訓練資料上,排序模型僅能使用帶有使用者點選行為的日志資料進行訓練,而生成模型可以利用一些使用者主動輸入的完整查詢,通過随機切分的方式構造訓練資料。
是以,我們提出通過共享階層化編碼模型的方式對排序和生成進行多任務學習,使編碼模型通過多目标優化與利用更多的資料進行訓練來擷取更好的編碼表示效果。
實驗分析
為了驗證提出方案的效果,本工作構造了一個大規模查詢日志資料集——TaobaoQAC,該資料集包含了20190901-20190910範圍内的2億餘條手機淘寶搜尋引擎查詢日志。與已有AOL日志資料集不同的是,除使用者主動輸入的完整查詢外,TaobaoQAC還包含了從輸入字首到推薦補全的使用者點選行為。這使得TaobaoQAC相比AOL資料集更适合QAC問題的研究,具體的對比資訊如下表所示。
我們選取前7天日志資料作為訓練集、第8天作為驗證集、最後2天作為測試集進行模型的訓練與評價。評價分為Seen和Unseen兩個場景:Seen場景用于評價模型在有推薦候選的測試資料上的性能,Unseen場景用于評價模型在無推薦候選的測試資料上的性能。關于評價名額,我們采用機器翻譯領域常用的BLEU名額評價生成模型預測結果與使用者點選或輸入的完整查詢的相似程度,采用MRR與去除position bias的MRR(Unbiased MRR,簡稱UMRR)來評價不同模型的排序性能。需要說明的是,生成模型的解碼器部分可以通過将每一步解碼的機率連乘擷取一個整體分數,進而轉化為一個排序模型。
基線系統包括基于統計的MPC、基于GBDT的排序模型GRM、基于深度神經網絡的排序模型DRM以及RNNLM、Seq2Seq、Transformer、HRED、AHRED等幾個生成模型。從實驗結果表可以看出,M2A架構的排序子產品(CP)與生成子產品(QG)分别取得了最好的生成性能與排序性能。在Unseen場景下,幾個排序模型均不能給出推薦結果,導緻相關名額為0,我們的QG模型則在所有生成模型中取得了最好的效果。
由于本文提出的架構包括多個不同的視圖或任務,我們也開展了一個消融實驗,在下面兩個表格中,Vq代表查詢視圖,Vi代表浏覽視圖,Lg代表使用點選資料訓練生成模型,Lu代表使用主動輸入資料訓練生成模型。我們從單視圖的點選率預估模型出發,逐漸添加響應的子產品。
下表為點選率預估模型的消融實驗結果,可以看出每個視圖或者任務都能給其帶來明顯的增益。
下表為生成模型的消融實驗結果,可以看出,引入主動輸入的查詢日志作為訓練資料,雖然會給模型在Seen場景下的性能帶來一些損失,但卻能給Unseen場景上的性能帶來大幅度提升,取得了一個較好的整體增益。
我們也觀察了一些推薦案例,發現大部分基于排序或生成的方法都傾向于将一些高頻查詢排在推薦清單的靠前位置。而這些高頻查詢常常與使用者目前的搜尋意圖無關,導緻排序結果個性化不足。我們提出的方案則能較好地緩解這一問題,排序靠前的查詢候選大部分都是與使用者目前的搜尋意圖相關的。
為了驗證提出方案是否能給線上服務帶來增益,我們嘗試在淘寶主搜尋引擎場景下進行了A/B測試。由于生成模型beam search生成多個候選的政策會導緻響應時間較慢,我們選擇提前挖掘好之前一周少、無結果的長尾輸入,進行離線的候選生成,并建立相關的索引。線上上場景,我們使用離線生成的候選與在此基礎上進行擴召回得到的查詢與已有候選查詢共同組成完整的候選集,再用架構中的點選率預估模型進行候選排序。
上述做法的好處是,一方面能保證線上響應時間滿足要求,另一方面可以綜合利用生成模型的自動生成能力與CTR模型的個性化排序能力,進而取得更好的整體性能。通過近兩個月的A/B測試,我們的方案給手機淘寶查詢補全推薦業務帶來了3.84%的PV提升、1.6%的UV提升、4.12%的點選量提升,同時使服務有響應率提升了11.06%,取得了不錯的業務增益。
工作總結
本工作提出了一種融合多視圖使用者行為序列資訊的多任務個性化查詢補全推薦架構:通過同時模組化和利用多視圖使用者行為序列中豐富的個性化資訊,使QAC模型能夠更準确地預測使用者目前的搜尋意圖;通過候選排序與查詢生成的多任務學習,同時利用多種學習目标與訓練資料進行模型訓練,實作了不同任務間的優勢互補。整體架構在離線和線上的實驗中均取得了不錯的效果,為淘寶搜尋引擎的查詢補全推薦業務帶來了顯著的增益。同時,我們計劃将TaobaoQAC資料集開源,友善研究與開發人員對個性化查詢補全推薦問題進行更加深入的探索,資料集相關資訊詳見
https://github.com/yd1996/KDD2020_TaobaoQAC。
在未來的工作中,我們将考慮模組化更長的使用者行為序列,以提升模型預測準确率;同時也會考慮開發出更快的查詢生成模型或方法,以實作線上實時生成候選查詢。
更多資料挖掘内容檢視:
《KDD論文精華解讀》