李玉軒,洪學海,汪 洋,唐正正,2,班 艷
1.中國科學院 計算機網絡信息中心,北京100190
2.中國科學院大學,北京100049
3.中國科學院 計算技術研究所,北京100190
隨著信息量級的增長,如何獲取更符合檢索目的的高質量信息,已成為信息檢索(information retrieval,IR)領域中的重要課題。排序學習(learning to rank,LtR)則用于在搜索過程中,對召回的候選文檔列表進行精確排序。由于其效果顯著,排序學習方法已逐漸應用到實際的搜索場景當中。其任務是對于給定的查詢,對一系列文檔進行相關度打分,進而按分數高低給出排序后的列表,這意味著相關度越高,文檔的排名應越靠前。不同于其他的分類和回歸問題,排序學習并不關注文檔的具體評分,而更加關注個體之間的相對順序。
排序學習算法通常以查詢信息和文檔的向量化特征作為輸入,通過監督學習的方法,最優化目標函數,得到將特征向量映射到實值的評分函數,并以此作為排序依據。按輸入或按損失函數的不同形式可以將排序學習分為單文檔法(pointwise)、文檔對法(pairwise)和文檔列表法(listwise)。新提出的序列文檔法、分組評分法(groupwise scoring function,GSF)等都屬于這三種方法的變種。
現存大部分的排序學習方法雖然有效,但往往局限于單變量的評分函數,即列表中文檔的相關性計算相互獨立,缺乏考慮文檔之間的相互影響。而用戶在與檢索結果的交互過程中,會表現出強的對比選擇傾向。相關研究工作已證明通過對比文檔得出的偏好判斷比直接判斷更有效,當用戶行為被一種相對的方式建模時,模型有更好的預測能力。因此,列表中文檔的相關性排序位置除取決于本身因素之外,還受其上下文特征的影響。Ai等人基于上述論點,認為文檔的相關性得分通過與列表中其他項在特征級別上聯合計算,提出了多元變量的相關度評分模型GSF,即將文檔進行分組,組內文檔的特征向量共同作用,并利用深度神經網絡(deep neural network,DNN)自動挖掘跨文檔信息。但是不足之處在于當分組較大時,模型復雜度和計算量大大增加,導致該方法在對于時效性要求較高的搜索推薦場景中缺乏吸引力。其次,GSF的分組操作對于組內的每個文檔同等對待,忽略了文檔間相互影響的差異性。舉例來講,用戶在對比返回結果時,更多的是對同類型文檔的擇優,而差異較大但又同時與查詢信息相關的文檔間交叉影響較小。換句話說,不同文檔對單個樣本的相關度評價影響是不同的。基于這樣的推斷假設,同時也啟發于推薦領域的深度興趣網絡,本文在GSF 中引入激活單元對多元變量進行加權,并用神經網絡自適應學習權重,文中表示為W-GSF(weighted-GSF)。通過在公共基準的排序學習數據集上的對比實驗,證明該方法相對于基線模型有更好的效果。同時,對于達到同樣水準的排序學習方法,本文模型在計算代價上優勢明顯。
排序學習方法用于推斷給定列表的排名順序,包含評分和排序兩個過程,其目標是構造一個評分函數,通過該函數可以歸納出文檔列表的排序。該領域內的大部分研究可以從兩方面進行分類:評分函數和損失函數的構造。不同的評分函數即不同的模型結構,包括線性模型、梯度提升樹、支持向量機和神經網絡等;損失函數的構造針對定義問題的形式和解決問題的思路,例如單文檔法、文檔對法和文檔列表法。
單文檔方法將單篇文檔的特征向量映射為得分;文檔對法則關注在給定兩個文檔時判斷相對順序;文檔列表法則將單次查詢對應的整個文檔列表作為整體輸入來訓練,可以直接優化核心排序指標,如NDCG(normalized discounted cumulative gain)等。近幾年,得益于深度學習的長足發展,深度排序模型層出不窮。許多研究已經表明,單文檔的方法缺乏考慮文檔之間的相互關系,對于相關性評價的建模不夠完善。文檔對方法以LambdaMART為代表,巧妙地轉化文檔位置順序關系為概率模型,使之可以直接利用機器學習模型進行學習。文檔列表法對于相關性建模更加全面,但是往往計算復雜度高,且具有完整排序信息的數據較難獲取,實際應用中落地場景較少。
排序學習領域最近提出的多元變量評分模型GSF是一種通過將文檔進行分組,學習交叉文檔關系的深度排序模型,不同于文檔對法和文檔列表法專注于損失函數的構造,GSF是一種對模型結構提出改進的新方法。
圖1 給出了GSF 的模型示意圖。示例樣本為含有三個文檔的列表,分組大小為2,分組策略給出了文檔列表所有可能的二元組。作為輸入,分組內的文檔特征向量會做拼接操作成為單個向量,每個分組產生的向量分別輸入多層前饋神經網絡,前向計算后輸出對應的文檔評分。其過程相對于傳統的單元變量評分函數,簡而言之就是將(·)從單文檔映射到單實數,改進為多文檔映射到多實數。由于一個文檔會出現在多個分組之中,故在經過(·)輸出各分組評分之后,需要將多次評分結果累和,作為最終輸出的相關度評分。分組策略保證公平性,各個文檔出現次數相同,故不會影響最終評價的相對順序。

圖1 基本的GSF模型結構(以只含有三個文檔的列表為例)Fig. 1 Structure of basic GSF model,with a sample which only has three documents
深度興趣網絡(deep interest network,DIN)用于解決推薦系統領域的點擊率預估問題。傳統點擊率預估模型以Embedding+DNN結構為基礎,對于用戶的歷史行為數據不加區分地向量化,這導致在判斷不同的候選商品時,用戶向量的表示相同,限制了模型的表達能力。
為了增加模型的表達能力,DIN認為歷史的行為序列中不同商品對于判斷候選商品的點擊率影響存在差異,故在傳統點擊率預估模型的基礎上,加入了激活單元,可以根據候選商品對歷史興趣中的商品賦予不同權重,使得模型在對用戶向量化表達的過程中,能根據候選商品的變化自適應地調整。這實際上是一種與注意力機制相似的思想。排序學習的很多方法已經應用到了各種推薦場景中,本文嘗試將此推薦模型的思想用于改進排序學習模型。
本章將對排序學習問題進行公式化定義,與領域內常用的表示形式保持一致性。排序學習中,訓練集可以表示為={,}∈X×R,其中是一個由個元素x,1 ≤≤組成的向量,為含有個實數的標簽向量,其元素y代表對應位置的x的真實相關度,為特征取值空間。在主流的數據集上以及實際的場景下,x通常表示一條查詢信息和對應單個文檔的組合特征向量,即數據集的單條樣本包含了一條查詢信息及一個帶相關度標簽的文檔列表。
排序學習的主要目標是利用這樣的數據集,學習一個評分函數,該評分函數可以將任意的x映射到實值,并且可以在訓練集上最小化經驗性的損失函數。即找到:X→R,最小化:

其中,? 是待定義的損失函數。
上述框架為排序學習方法的通用形式,各種排序學習算法差別主要在于評分函數的構造和損失函數的定義。之前的很多研究中使用了不同形式的損失函數,但現存大部分的算法在評價相關度時局限于單元變量的評分函數:→R,即()的各個維度是對文檔x獨立計算得到的。最近提出的分組文檔法將文檔列表進行分組,并對分組內的文檔聯合評分,即:X→R,其中為分組大小,該方法隸屬多元評分函數的范疇。本文的評分函數以GSF為基礎,同時在訓練時會引入激活單元以調整各個不同文檔的權重,用于體現交叉影響的差異性,則最小化的目標函數表示為:

實際的計算過程中,單個訓練樣本的損失函數是先分組后求和計算。下一章中將詳細介紹如何利用模型來最小化該目標函數。同時為了表述簡潔,后續章節將使用GSF-表示分組大小為的分組文檔法,W-GSF 則表示本文提出的引入了激活加權機制的分組文檔法。
模型以GSF結構為基礎,其改進自文獻[17]的上下文列表文檔法,用分組的形式挖掘文檔之間的相互影響并用于協同評分。圖1 給出了GSF 的簡單示例,神經網絡(·)將所有分組分別作為輸入,輸出對應的初步評分,再按照相應文檔進行求和得到各自的最終得分。但如果在訓練過程中,輸入樣本分組集合中的全部元素,即所有可能的分組情況,其時間復雜度會非常高。故考慮對分組集合作下采樣,沿用GSF 中的方法將隨機打散后,用固定大小的滑動窗口取其所有連續子序列。該采樣方法保證了每個文檔出現在個分組中,降低了時間復雜度,且實踐證明其效果近似輸入整個分組集合。
文檔的相關性應當取決于其本身的特征和列表內的樣本分布情況。舉個簡單的例子,當用戶在搜索關鍵字“卷積神經網絡”時,如果返回的結果都是較近的,則用戶關注點會集中于最新的研究成果;而如果返回結果都是經典的文獻,則被引量或作者知名度等可能會成為影響用戶選擇的側重點。采用分組文檔的方法時,應當考慮到其他文檔對于某個文檔評分的影響,且不同文檔帶來的影響也是不同的。考慮在上述的搜索示例中,如果返回結果是兩種情況的混合,則用戶可能會對兩種情況同時判斷:在較新的文檔選擇創新性高的,在經典文檔中選擇更權威的。這就涉及到在評分函數建模時,對文檔重要性的挖掘。
受啟發于深度興趣網絡,本文引入激活單元來對GSF 作出上述改進。如圖2(a),激活單元以一個文檔對的特征向量為原始輸入,分別為主要文檔和次要文檔,其輸出為單個實值,用于在評價文檔的相關性時對次要文檔進行加權。除了兩個文檔的特征向量,輸入還包含了兩個特征向量的差值,三個部分拼接為整體輸入后續的全連接神經網絡。由于實際情況中特征數據值的分布并不固定,如果采用如PReLU的激活函數時,由于分裂點固定在了零點,會增加擬合樣本的難度。為了解決該問題,這里的激活函數沿用了Dice:


這里是待激活的值,(·)可以看作(·)的控制函數,即用來決定選擇()=和()=兩個不同頻道的函數。[]和Var[]是每個小批量輸入數據的均值和方差。是一個小的定值,在此設置為10。此時,激活單元的激活過程可以表示為:

實際場景中文檔特征通常高維且稀疏,對比基于樹的排序學習方法,深度神經網絡在稀疏高維的數據集上可以表現出更好的擬合效果,故本文采用神經網絡作為主體結構。排序學習的數據形式為一條查詢對應一個文檔列表。作為基本模型的輸入,首先需要對文檔列表進行分組,單條樣本的第個分組為:

其中,為分組的大小,即將組內文檔的特征向量作拼接操作。如圖2所示,網絡的主體結構為包含三個隱藏層的多層前饋神經網絡,原始輸入在進入該神經網絡之前,會通過激活單元對輸入向量進行部分激活加權,將其轉變為:

圖2 W-GSF與激活單元的結構Fig. 2 Structure of W-GSF and activation unit

其中,為次要文檔的激活值。每個隱藏層含有兩個待學習參數w和b,分別表示第層的權值矩陣和偏置向量,則第層網絡的輸出為:

其中,是非線性的激活函數,這里使用的是整流線性單元ReLU:()=max(,0)。基于此,主體結構網絡的輸出可以表示為如下形式:

其中,w和b為輸出層的權值矩陣和偏置。輸出結果為維的向量,代表的是在當前分組下文檔的相關度得分。
由于每個文檔會出現在多個分組之中,文檔最終的相關度得分來源于所有包含該文檔的分組對應的輸出。不妨令Π()為樣本的所有大小為的分組組成的集合,π為其中一個元素,當文檔x屬于π時,該文檔得分有一部分來自于(π)。便于表示,首先定義一個符號函數:則W-GSF對文檔x的輸出為:



在使用反向傳播方法訓練前述網絡結構前,需要定義損失函數。即定義式(1)中的(·)。在W-GSF的網絡框架下同樣可以使用多種損失函數。在實驗中發現Softmax 交叉熵損失函數在該模型下會比較有效,其形式為:

其中,為樣本的真實標簽,^ 為模型的輸出值。上式相當于原始的標簽值進行了歸一化,可以將歸一化值看作文檔排名更高的概率,其中p為模型輸出的歸一化:

該操作的目的是去除標簽的實際值大小帶來的偏差影響,在將文檔得分轉化為一個較小的值的同時,保持相對排名順序不變。實驗中使用小批量梯度下降法AdaGrad來優化該損失函數。
實驗中采用的數據集為微軟MSLR-Web30K以及它的隨機采樣版本MSLR-Web10K,分別含有30 000條和10 000條查詢。數據集由查詢和一系列的文檔特征向量組成,每一行代表一個查詢-文檔對,并給出了相關度評價的標簽。相關度從0(不相關)到5(完全相關)代表從低到高的相關程度,由微軟搜索引擎Bing的日志數據統計解析而出。在訓練中丟棄了沒有相關文檔的查詢項。每一條查詢樣本為136 維的特征向量,包含了查詢信息、文檔特征以及交互特征,形式上既有離散的分類特征,也有連續的例如BM25等稠密特征,代表了研究領域內常用的基本特征。該數據集被劃分成5 個子集{,,,,,按照不同的訓練集、驗證集和測試集劃分情況形成了5個不同的文件夾,其劃分占比為3:1:1。因此不同的文件夾數據相同只是分配的子集不同,不失一般性,在實驗中使用的劃分為{(,,),(),()}。
在上述數據集上,實驗對比了本文提出的模型和各種現有的排序學習方法,包括基于支持向量機、梯度提升樹和基于深度神經網絡的多種方法。RankingSVM作為經典方法參考,LambdaMART作為樹模型方法的對比,RankNet和GSF作為神經網絡方法的參考基線,詳細信息如表1所列。

表1 基線排序學習方法Table 1 Baseline learning-to-rank models
實驗中RankingSVM 目標函數的正則化系數設置為20.0,并使用徑向基核函數。LambdaMART 基于LightGBM實現,訓練了500棵回歸樹,每棵樹的最多葉子節點為255,其他的參數設置與文獻[7]保持一致。該模型在很多排序學習公開數據集上都是表現最優秀的算法之一,此處作為參考以比較不同類型的排序學習方法之間的差異。RankNet 和GSF 均基于神經網絡,實現時利用了廣泛使用深度學習庫TensorFlow。RankNet是一個多層的前向全連接神經網絡,是文檔對方法的基本模型,在本文中該方法和GSF使用了相同的隱藏層參數設置,均為三層(64,32,16)全連接深度神經網絡,并在每層使用了批量歸一化,激活函數為整流線型單元。除了二者的輸入形式差異,使用的損失函數也有所不同:RankNet 使用了在排序學習領域的經典邏輯斯蒂損失函數,而GSF使用的是Softmax交叉熵。實驗中這三種模型的超參在沿用原文設置的基礎上,進行了優化微調。
對于本文提出的W-GSF 模型,其主體結構與GSF一致,額外增加了激活單元對文檔調整加權。激活單元含有一層尺寸為(16)的隱藏層,輸出單個實值權重。值得一提的是,激活過程為兩兩文檔的交互,因此其天然地適合分組大小為2 的情況,而對于大分組的GSF,簡單的依次激活加權會使得文檔之間的交叉影響變得混亂。另外由于本身GSF 方法中大尺寸的分組會使得訓練復雜度較高,而加入激活單元后大分組帶來的計算代價增長倍率更高。故實驗中W-GSF 僅關注兩兩文檔之間的交叉關系,使其加權操作簡潔合理且增加的計算量在可接受范圍內,并期望帶來排序指標上的提升。W-GSF 在實驗中小批量訓練的批量大小設置為128,模型學習率為0.01。
實驗在Web30K和Web10K兩個數據集上分別訓練了上述五種模型。評價指標使用了排序推薦場景中常用的指標NDCG,即歸一化折損累計增益。該指標的優點在于可以對變長的排序列表給出有意義的評價,同時可以保證當高相關度的文檔排在整個列表中靠前的位置時,排序列表的得分較高。
模型訓練時使用小批量的梯度下降法來優化損失函數,由于每個查詢包含的文檔數量及相關度的分布并不一致,故在GSF 和W-GSF 中計算整體損失之前會對小批量樣本去偏,即對分組損失值按照其關聯的所有文檔相關度總和進行加權。在MSLR 的兩個數據集上,不同的模型效果如表2所示。給出的指標均為在對應數據上的測試集結果,除LambdaMART 外,指標由訓練過程中在驗證集上NDCG@5 指標達到最高時的模型計算得出,數據展示的是10次實驗的均值,置信區間為95%。
表2 給出了GSF 分別在分組大小為2 和64 時的模型效果,且實驗中經過調參優化,相對于原文中報告的結果,一定程度提升了在MSLR數據集上的表現。從表中可以看出,本文模型指標遠超經典算法RankingSVM 以及神經網絡排序模型RankNet。WGSF 在Web30K 數據集上的實驗表明,在NDCG@5處相對于該兩種模型分別提升了9.7個百分點和2.65個百分點,在Web10K上該指標的提升分別為7.79個百分點和1.76個百分點。

表2 MSLR數據集上模型的NDCG指標對比Table 2 Comparison of models'test NDCG on MSLR dataset %
W-GSF 本質是經GSF-2 的模型結構改進而來,故在對比指標時更關注其與GSF-2 的關系。從表中注意到相對于GSF-2 模型,增加了激活單元的WGSF在NDCG指標上同樣全面提升,在Web10K數據集上,W-GSF 分別在NDCG@1,5 處提升了0.73 個百分點和0.39個百分點,對于Web30K數據集則分別在NDCG@1,5 處提升了1.04 個百分點和1.08 個百分點。另外對比GSF-64可以看出,雖然W-GSF在最前端的排序結果稍差,但在NDCG@10 處表現更好,即在評價的頭部序列拉長時整體的排序效果占優勢。而由于GSF-64 的高指標表現計算代價很大,相對而言本文的模型在計算效率上更有優勢。
除此之外可以發現,LambdaMART 作為基于樹的方法在實驗中表現較好,其主要原因是MSLR數據集大部分的特征為稠密連續特征,離散的稀疏類別特征較少,這也是公開排序學習數據集的普遍現象。而提升樹恰好擅長處理該類特征,相對的,神經網絡模型可以更好地處理稀疏特征向量。這一結論由此前大量的相關工作給出,即使其基于神經網絡的排序方法在MSLR數據集上的表現不如LambdaMART,但是在業務場景下,數據集往往遠比MSLR大很多且特征維度更高,當這種高維稀疏特征用于樹模型時會產生過擬合的情況,降低了模型的泛化能力,而神經網絡模型由于通常會帶有正則化防止過擬合,故在最終指標上的表現往往呈現相反的趨勢。
通過挖掘文檔之間的相互影響來提升排序指標本身是一件是十分耗費計算量的事情,當在GSF 中試圖同時挖掘較多文檔的交叉關系時,擴大分組尺寸帶來的收益與增加的計算量不成正比,綜合性價比不高,尤其是在搜索這種對響應時間要求較高的場景下。
為了對比模型之間的性價比,除了使用NDCG@10 作為效果提升的指標外,將FLOPs 作為衡量WGSF、GSF-2 和GSF-64 的計算代價指標。FLOPs 代表模型的理論浮點運算量,其大小不僅和模型的輸入形式有關,還和模型結構有關。對比運算量時,不關心訓練過程,而只關注對于同樣的一條樣本,不同模型經過一次前向計算給出相關度評分所需要的浮點計算次數,加法和乘法各算一次。對于全連接層,其FLOPs大小為:
=(2×-1)×(14)其中,和分別代表輸入輸出的維度,若考慮偏置則不需要減1。同時計算時忽略了激活函數的影響。
根據式(14),計算了如圖1 不同分組和圖2 所示的共三種模型的計算量FLOPs,并在表3 給出結果。計算條件為在同樣的一條由查詢和文檔列表組成的樣本下,不同模型運行一次所消耗的浮點計算量,并假設該樣本含有100個文檔。以GSF-2作為基準線,Δ NDCG@10為相對基準線的提升百分比,Δ FLOPs為相對基準線的倍率。

表3 W-GSF與GSF在MSLR-Web30K上的計算量對比Table 3 Comparison of calculational cost of W-GSF and GSF on MSLR-Web30K
從表3可以看出,GSF-64對于同樣的樣本,消耗的浮點計算量是GSF-2 的28 倍以上,而W-GSF 在排序指標達到了相同水準的情況下,相對基準線只增加了約30%的計算量。總體而言,本文模型在改進GSF-2時,以增加少量的計算量帶來了可觀的效果提升,相對于GSF-64 性價比更高。該計算量上的優勢使得其在眾多業務場景中有比大分組GSF更多的應用空間。
本文將推薦領域里深度興趣網絡的思路遷移到排序學習中,結合GSF 分組文檔法的思想提出了帶有激活加權策略的W-GSF,通過學習不同文檔之間的差異性影響對交叉文檔關系有了更深層次的挖掘。在公開數據集的一系列實驗證明了其在指標上帶來的提升,同時相對原模型只增加了較少的計算量,相比大分組尺寸的GSF方法,本文模型更有性價比。但該方法仍然有不足之處,對于大分組的方法,激活加權的過程無法自然地推廣拓展,文檔之間的交叉影響差異性會使得這一過程變得混亂,單個文檔的最終激活值難以界定。一種可能的解決方法是將單個文檔與分組內其他所有文檔交叉,最終權重為各激活權重之和,但這樣會帶來計算量上的大幅增加。另一種方法是將評分函數再改回單元變量的形式,只是在評價一個文檔的相關度評分時,將同列表內的其他文檔作加權求和后作為輔助特征幫助評分。除此之外,對于主體神經網絡結構的縱向加深和橫向尺寸擴展也是進一步改進該方法的可行路徑。將上述幾種思路作為未來的進一步工作方向。