新零售智能引擎事業群出品
背景介紹
查詢自動補全(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)。
-
在訓練數據上,排序模型僅能使用帶有用戶點擊行為的日誌數據進行訓練,而生成模型可以利用一些用戶主動輸入的完整查詢,通過隨機切分的方式構造訓練數據。
因此,我們提出通過共享層次化編碼模型的方式對排序和生成進行多任務學習,使編碼模型通過多目標優化與利用更多的數據進行訓練來獲取更好的編碼表示效果。
實驗分析
為了驗證提出方案的效果,本工作構造了一個大規模查詢日誌數據集——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論文精華解讀》