learning to rank_排序
20210415
ndcg 一個正確結果位置的隨機結果是0.45左右
20210412
考察產業匹配MRR評估指標的隨機情況是什么樣的
隨機情況下會是什么樣的
可以根據ndcg的值來看是否隨機
20210409
mrr 越大越好
20210308
http://www.voidcn.com/article/p-hgmpcymt-sr.html
MRR
20210222
因此,我們得到的NDCG分數的范圍在0到1之間。一個完美的排名會得到1分。我們還可以比較不同查詢的NDCG@k分數,因為它是一個標準化分數。
如果出現這種情況 是qid的問題
同一個qid需要排在一起 而且最好 qid最好也排好序
正常情況下訓練效果和預測結果
基于lightgbm的lambda_rank的group id 就是
記錄每個qid的記錄數 用于后面的評估計算
20210202
'verbose' : -1#取消警告No further splits with positive gain, best gain: -inf,不設置為-1的話,數據量較少可能會提出警告
1.https://blog.csdn.net/anshuai_aw1/article/details/86018105排序學習(Learning to rank)綜述三種方式
2.https://blog.csdn.net/u011984148/article/details/108030794排序指標
3.https://mp.weixin.qq.com/s?src=11×tamp=1612159278&ver=2863&signature=DPrxF9axM2VTYNhw9gtBdzUKLsGZUVzto1xFjL3sHDhMQz83zrngHxDwpwAWKYToAvOIE1Enkk59mIUQ8lnj-AlmCqdMuYx*sGx8gkpCcXCaISfAcSew1pbnzORlr4cb&new=1
總體原理LTR訓練數據的獲取
1.人工標注。如果需要大量的訓練數據,人工標注不太現實
2.對應搜索引擎來說,可以通過用戶點擊記錄來獲取訓練數據。對應查詢返回的搜索結果,用戶會點擊其中的某些網頁,假設用戶優先點擊的是和查詢更相關的網頁。盡管很多時候這種假設并不成立,但實際經驗表明這種獲取訓練數據是可行的。
LTR特征選取
使用LTR時會選取一系列文本特征,利用機器學習方法很好的融合到一個排序模型中,來決定最終結果的順序,其中每一個特征我們稱為一個“feature”。對于一個網頁文本,feature所在的文檔區域可以包括body域,anchor域,title域,url域,whole document域等。
文檔的feature又可以分為兩種類型:一是文檔本身的特征,比如Pagerank值、內容豐富度、spam值、number of slash、url length、inlink number、outlink number、siterank等。二是Query-Doc的特征:文檔對應查詢的相關度、每個域的tf、idf值,bool model,vsm,bm25,language model相關度等。
綜合上述的文檔feature的兩種類型和位于文檔的不同域,我們可以組合出很多feature,當然有些feature是正相關有些是負相關,這需要我們通過學習過程去選取優化。
https://blog.csdn.net/weilianyishi/article/details/48805695Letor來源https://www.microsoft.com/en-us/research/project/letor-learning-rank-information-retrieval/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fbeijing%2Fprojects%2Fletor%2Fletor4download.aspx#!letor-4-0查詢和文檔都是不限的
是知道有哪些最終文檔 綜合查詢的tf 和idf 等?搜索引擎使用一系列特征來決定結果的排序,特征提取階段是抽取出所有的特征,供后續訓練使用。特征可以分為3大類:
①Doc本身的特征:Pagerank、內容豐富度、是否是spam(搜索引擎垃圾技術)、質量值、CTR(實際點擊次數/展示量)等。
②Query-Doc的特征:Query-Doc的相關性、Query在文檔中出現的次數,査詢詞的Proximity值(在文檔中多大的窗口內可以出現所有査詢詞)、隱式語義關系等。
③Query的特征:Query 在所有Query 中的出現次數、比率等。
20210201
總體泛化思路
1.查詢用向量表示?
2.文檔用詞向量表示特征? 跟具體的查詢無關?
3.文檔的詞向量的差值表示正樣本?
4.
https://arxiv.org/pdf/1306.2597.pdf
https://www.thinbug.com/q/35304773
Blockquote每行是一個查詢文檔對。第一列是該對的相關標簽, 第二列是查詢ID,接下來的列是功能,結尾是 該行是關于該對的注釋,包括文檔的ID。越大 相關標簽,查詢文檔對就越相關
語料的數據格式
https://cloud.tencent.com/developer/article/1061669
數據格式 重點 整個流程都有 飛槳的視頻的文字版本
https://www.cnblogs.com/wowarsenal/p/3900359.html
LambdaMART簡介——基于Ranklib源碼(一 lambda計算)
https://blog.csdn.net/asty9000/article/details/84350260
lambdarank 數據文件格式
問題
https://zhuanlan.zhihu.com/p/68682607
淺談Learning to Rank中的RankNet和LambdaRank算法
Sij 為標簽取值
Learning To Rank之LambdaMART的前世今生
https://blog.csdn.net/huagong_adu/article/details/40710305
對上面圖的詳細解釋
箭頭強度不同
ranknet## 標題
https://jiayi797.github.io/2017/09/25/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95-L2R%E8%BF%9B%E4%B8%80%E6%AD%A5%E4%BA%86%E8%A7%A3/
機器學習算法-L2R進一步了解
lambdarank 使用的是 pairwise?
歸一化折損累計增益(NDCG)
20210129
要用于生產實踐的問題
1.如何打標
2.如果構建文檔直接的順序(產品服務的順序)
如何構建文檔的特征
3.如果采用文檔列表的方法 對于一級行業和二級行業都相同的企業的產品服務
真實產品服務列表的概率分布改如何構建呢? 特別是產品服務很多的時候
比如20個的時候 20!很大啊 真實出現都為1,其他都為零? 但是標簽之間并沒有
明確的順序 真實標簽中如何去統計這個前后關系呢
ranknet xi排在xj前面的真實概率 怎么來
https://blog.csdn.net/w28971023/article/details/45849659
ranknet
https://mp.weixin.qq.com/s?src=11×tamp=1612159278&ver=2863&signature=DPrxF9axM2VTYNhw9gtBdzUKLsGZUVzto1xFjL3sHDhMQz83zrngHxDwpwAWKYToAvOIE1Enkk59mIUQ8lnj-AlmCqdMuYx*sGx8gkpCcXCaISfAcSew1pbnzORlr4cb&new=1
LTR排序算法LambdaRank原理詳解
ranknet詳解
PageRank原理剖析
https://blog.csdn.net/zhaozhn5/article/details/79776163
排序學習(Learning to rank)綜述
https://blog.csdn.net/anshuai_aw1/article/details/86018105
learning to rank
lambdarank
lightgbm用于排序 重點
https://github.com/jiangnanboy/learning_to_rank
https://www.cnblogs.com/little-horse/p/11237099.html
lightGBM用于排序(Learning to Rank )
https://blog.csdn.net/demm868/article/details/103485658
https://blog.csdn.net/kyle1314608/article/details/113372359
NDCG Normalized discounted cumulative gain 理解分析
https://blog.csdn.net/xiangyong58/article/details/51166127
信息檢索中的度量指標全解析 重點
https://blog.csdn.net/u011984148/article/details/108030794
査詢詞的Proximity值(即在文檔中多大的窗口內可以出現所有査詢詞)
背景
在信息過載的時代,如何從互聯網的海量數據中,準確、及時、高效地獲取用戶所需信息是信息檢索研究的主要問題,其本質是信息的排序問題。伴隨著人工智能的蓬勃發展,機器學習的思想逐漸滲透到信息檢索等重要領域,如何利用機器學習提升信息檢索的性能成為熱門研究領域。在信息檢索領域,一般按照相關度對文檔進行排序,比較典型的做法是針對搜索引擎中的一條查詢query,返回一個相關的文檔document集合,然后根據(query, document)之間的相關度進行排序,再返回給用戶。而隨著影響相關度的因素變多,使用傳統排序方法變得困難,人們就想到通過機器學習來解決這一問題,LTR由此誕生。
在2000年到2010年之間,有大量學者對其進行研究,產生了各類LTR(learning to rank)算法,從此LTR成為最經典的信息檢索技術。如圖1所示,用戶請求->讀取倒排索引->模型排序->返回結果,其中核心的技術排序模型 (Ranking model)部分就是LTR。本文對排序學習進行了分類,并重點分析了訓練排序模型時采用的不同LTR的方法類別。
排序學習框架
圖2展示了排序學習的一個典型框架:訓練數據獲取->特征提取->模型訓練->測試數據預測->效果評估,該框架涉及排序學習的三個重要方面-數據集、方法和評價指標。數據集主要包括訓練集(Training set)、驗證集(Validation set)和測試集(Test set)。其中,訓練集用于訓練排序模型,驗證集用于調整模型參數,測試集用于檢驗模型的泛化性能。評價指標用于度量排序模型的性能,一般有準確率(Precision, P)、召回率(Recall, R)、平均精度均值(Mean average precision, MAP)、歸一化折扣積累增益(Normalized discounted cumulated gain, NDCG)、期望倒數排序(Expected reciprocal rank, ERR)等,排序學習方法從排序學習數據集中學習并獲得排序模型,主要有三大類方法:Point-wise、Pair-wise和List-wise。
圖2.排序學習框架
Point-wise方法
Point-wise方法是通過近似為回歸問題解決排序問題,輸入的單條樣本為得分-文檔,將每個查詢-文檔對的相關性得分作為實數分數或者序數分數,使得單個查詢-文檔對作為樣本點(Point-wise的由來),訓練排序模型。預測時候對于指定輸入,給出查詢-文檔對的相關性得分。
Pair-wise方法
Pair-wise方法是通過近似為分類問題解決排序問題,輸入的單條樣本為標簽-文檔對。對于一次查詢的多個結果文檔,組合任意兩個文檔形成文檔對作為輸入樣本。即學習一個二分類器,對輸入的一對文檔對AB(Pair-wise的由來),根據A相關性是否比B好,二分類器給出分類標簽1或0。對所有文檔對進行分類,就可以得到一組偏序關系,從而構造文檔全集的排序關系。該類方法的原理是對給定的文檔全集{S},降低排序中的逆序文檔對的個數來降低排序錯誤,從而達到優化排序結果的目的。
List-wise方法
List-wise方法是直接優化排序列表,輸入為單條樣本為一個文檔排列。通過構造合適的度量函數衡量當前文檔排序和最優排序差值,優化度量函數得到排序模型。由于度量函數很多具有非連續性的性質,優化困難。
圖3. 排序模型三類方法
Point-wise(單點法排序學習)
單點法占據了排序學習的半壁江山,從最早的線性模型LR、FM等,到樹模型GBDT、Xgboost等、再到深度模型DNN,Wide&Deep,DeepFM、DIEN等等充斥著大量的研究結果,并且基本都已經廣泛用于工業實踐推薦、搜索、廣告的ctr預估中。
單點法排序學習衡量一個查詢關鍵字和一個文檔的配對,他們是否相關與其他文檔和其他關鍵字無關,也就是說這類排序算法是孤立地看待某個關鍵字和某個文檔是否相關,而不是關聯地看待問題。可以看出單點法排序學習是對現實問題一個極大的簡化,從做事情的方法論來說由簡入繁是正確的出發點,當我們簡單建模不能滿足業務需求時候再考慮更復雜的。明確了怎樣建模單點法排序學習的問題之后,我們重點來看如何評價其算法的好壞,基于最簡單的假設,查詢關鍵字和文檔只有兩種關系,一個是相關,一個是不相關,所以這是一個二分的相關信息,那么評估排序算法就變成了評估二分類問題。單點排序處理的對象是單獨的一篇文檔,將文檔轉換為特征向量之后,根據對應的label學習特征向量對應的權重,繼而學習到模型參數。
對于二分分類問題來說,有兩個主要的評價指標:
1.準確率(Precision),意義是在分類器已經判斷的相關文檔中,有多少是真正相關。
2.召回率(Recall), 意義是真正的相關文檔中有多少被識別出來了。但是現實中有個問題是人們只關注排序前面的K個文檔,或者換句話說,人們不可能看檢索系統中的所有結果,所以這就是一個Top-K的評價問題,就是針對排序后頂部的K個文檔進行評估。
上面主要針對基于二分的相關信息,而相關的標簽信息其實可以定義地更加多元化,比如衡量某個關鍵字和文檔是否相關時,從“最相關”,“相關”,“不確定”,“不相關”到“最不相關”,一共五級定義,在這種定義下一般有兩種評價排序的方法。
一種是使用多分類的評價方法,也就是把五級相關度當作五種不同的標簽,看分類器的準確度,從實際業務的角度來說,一般“最相關”和“相關”的文檔數量,對于某個查詢關鍵字來說是比較少的,而“不相關”和“最不相關”的文檔是大量的,因此單看分類準確度,評價天然存在有偏。
另一種是基于五級定義的排序評價方法:NDCG(Normalized Discounted Cumulative Gain)。NDCG不是一個分類準確度評價指標,而是一個排序的精度指標。
為了理解單點排序學習法,下面以經典的邏輯回歸模型(Logistic Regression,LR)為例:在實際信息流中,人對feed最簡單就是兩種行為,點擊或者不點擊,label分別標記為1和0;LR用于建模point-wise方式的數據,這種模型直接對標注好的point-wise數據,學習 P(y | x)或直接回歸預測y。下面是一般化的LR模型損失函數:
LR模型可解釋性好,方便問題定位和查找,通過特征權重可以解釋feed排序的得分,可以人工分析和判斷模型參數是否合理。LR是個線性分類模型,要求輸入是線性獨立特征,而我們使用的稠密的特征(維度在幾十到幾百之間)往往都是非線性的,并且具有依賴性,因此需要對特征進行轉換。特征轉換需要對特征的分布,特征與label的關系進行分析,然后采用合適的轉換方法。通常使用以下幾種:Polynomial Transformation(多項式變換), Logarithmic or Exponential Transformation(對數變換或指數變換,例如特征符合冪率分布),Interaction Transformation(組合特征變換)和Cumulative Distribution Function(累計分布函數)等。這些特征變換相當于人工將特征轉換為線性特征,以提高特征的表達能力。
Pair-wise(配對法排序學習)
上面介紹了單點法排序學習,該方法在建模的時候并未考慮文檔之間的關系,本小節介紹的配對法將考慮文檔之間的偏好關系,實際業務中我們往往能看到多個搜索結果,但是我們首先會點擊一個,所以這其中存在文檔之間隱含的偏序關系,對一個查詢關鍵字來說,最重要的不是針對某一個文檔的相關性的估計是否準確,而是正確的估計一組文檔之間的相對排序關系;如果文檔的相對關系估計正確了,從排序的角度說,最后的排序結果就是正確的。
2000年左右,研究人員開始利用SVM來訓練排序算法,來自康奈爾大學的Thorsten Joachims構建了基于特征差值的RankSVM,是配對學習法的經典算法,該算法還獲得了KDD時間檢驗獎。2005年微軟學者Chris Burges等人,開始使用神經網絡訓練文檔之間的偏序關系,方法叫RankNet,發表的這篇論文還獲得了ICML2015的10年經典論文獎。
上面陳述了兩大成果,說明了配對法的重要性和影響,下面講述一下配對法的建模基本思想和假設:
第一, 我們希望可以針對某一個關鍵字得到一個完美的排序關系;但是當一個用戶在網頁上搜索“蘋果”時,有的用戶希望購買iphone,有的用戶希望購買吃的蘋果,所以在某些實際情況下,一個關鍵字根據用戶的不同本身就不存在完美的排序。
第二, 我們希望能夠學習文檔之間的兩兩配對關系從而重構出這個完美的排序,這個假設在針對問題建模的情況下,邏輯上也不成立的,下面可以舉一個例子進行說明,例如學習到關系“B>C”、“C>A”來重構完美排序“B>C>A”,不一定代表模型能得到“B>A”,因為建模的時候兩兩之間的關系是獨立的;完整的兩兩配對關系和完美排序之間沒有一一對應關系,所以我們不能保證得到的是最優的排序。
第三, 我們能夠構建這樣存在兩兩偏序關系的文檔且符合實際業務場景,這個假設是屬于先驗假設,這個是否是真的目前還有待確認,想表達的意思是,文檔之間的兩兩關系來自于文檔特征之間的差異,可以利用不同樣本間的特征差值做為新特征,學習到新特征到相關性差異的映射關系。
上面三個假設是理想情況下,我們從理論和邏輯上說明了三個條件不都成立,所以配對法對現實問題建模是存在天然誤差的,但是這種誤差對問題本身來說很小,配對法相比單點法沒有考慮文檔之間關系來說,效果顯得更好些,對實際業務指標的提升有更明確的方向和意義。
那么假設上面三個條件都成立,我們考慮如何從單點法去建模配對法描述的問題,現在如果針對一個關鍵字而言,有一個完美的排序關系,可以推導出文檔之間的兩兩關系,再從這些相對關系中進行模型學習,從而進一步對其他關鍵字查詢的結果進行排序。下面陳述一下RankNet大家可以清晰感知這個過程:
圖4. RankNet網絡結構示意圖
RankNet是基于神經網絡的排序學習方法,該方法依賴于每個文檔對,定義了一個基于概率的損失函數,運用神經網絡和梯度下降法試圖最小化一個交叉熵損失函數,它終極目標是得到一個帶參數的得分函數:
得分函數S=f(x;w)可以取任何模型,如GBDT、DNN等。基于相關計算公式更新網絡參數,由于RankNet的訓練數據為各查詢下若干文檔對,因此需針對文檔對的輸入去調整網絡的權重。
RankNet不僅在理論上是一個很好的模型,而且是第一個應用于互聯網搜索引擎的排序學習方法,微軟已經將RankNet技術應用于其搜索引擎Bing中,為了改進RankNet,研究者們又提出了list-wise等排序學習方法,如FRank、LambdaRank和LambdaMART,以追求更好排序結果
List-wise(列表法排序學習)
2006年后,研究者們開始嘗試直接優化整個排序列表,比如2007年來自微軟研究院的徐君和李航發明的AdaRank算法,同年劉鐵巖等人在ICML2007上發表ListNet,算是從理論上開啟了List-wise的大門,他們對應的是兩個發展方向。另外一個重要的方向是Christopher J.C. Burges主導的,延續RankNet思路發展出FRank、LambdaRank和LambdaMART。
列表法排序學習前期有兩種基本思路:
1.直接針對NDCG這樣的指標直接優化;
2.根據已知的最優化排序(Ground Truth),試著重建這個順序,來衡量這中間的差異。針對第一種思路來說,面臨一個重要的問題:NDCG是非連續和不可微分的;但是大多數優化算法的目標函數都是連續可微分的,因此直接優化難度會很大。
針對這種情況主要有以下解決方法:
一、找一個近似NDCG的指標,這種指標需要滿足兩個條件:1.能很好的近似NDCG,2.函數需要是連續可微分的,代表性算法有SoftRank和AppRank。
二、從數學的形式上寫出一個NDCG等指標的上界,然后優化這個上界,如果這個上界連續可微分,則可以通過最小化這個上界來優化NDCG,代表性算法有SVM-MAP和SVM-NDCG。
三、從優化算法的角度出發,設計出一種優化算法來優化NDCG這類連續不可微函數的指標,代表性算法有AdaRank和RankGP。
針對第二種思路來說:已經知道針對某個關鍵字的完美排序(Ground Truth),我們希望設計出一個模型希望它排序后的結果和完美排序之間的差距盡量小,代表算法有ListNet和ListMLE。
列表法除了上面兩種大思路,還有一種是在純列表法和配對法之間尋求一種中間解法,這個方向代表方法就是微軟的RankNet,是一個理論基礎很完整的模型,后面他們進行了改進,提出FRank和LambdaRank以及后面著名的LambdaMART,值得注意的是RankNet以及之后的系列算法,里面有一個對問題很重要的洞察,那就是:一個排序算法是否能達到最優,就只需要將當前模型預測的排序與最優情況進行對比,看有哪些文檔對之間的關系錯了,那么學習最優排序的問題就可以轉化為減少兩兩排錯關系,更深入一步思考,其實我們不需要知道目標函數的形式,而僅僅需要知道這種錯誤某種形式的梯度就可以了,模型更新參數本質是需要知道誤差的梯度,并不需要知道目標函數具體的形式。
需要結合現實問題提出的一點是,盡管在學術研究中,純列表法表現優異,但是實際中,類似于LambdaRank的算法,基于配對法和列表法之間折中的辦法會更合適實際業務的需要和算法上線,因為列表法運算的復雜度會很高,在工業界應用中,例如信息流,對他們來說線上耗時不容許太大,所以列表法優勢并不大,目前主要貢獻還是學術價值。
下面以LambdaRank為例子說明列表排序方法的建模和求解過程:
在介紹LambdaRank的動機之前,我們從Intuition的角度來考察RankNet學習過程中,列表的排序變化。見圖5,這里每條橫線代表一個物品,其中藍色表示相關的物品,灰色表示不相關的物品。在某次迭代中,RankNet 將物品的順序從左邊變成了右邊。于是我們可以看到:
a. RankNet 的梯度下降表現在結果的整體變化中是逆序對數量的下降。圖中左邊,2~14不相關物品都排在了15號相關物品之前,這些不相關物品和15號物品構成的逆序對共13個,因此損失等價于為13;而右圖中,將1號相關物品降到了4號,15號相關物品上升到了10號,此時逆序對的數量為3+8=11個,因此損失等價于11。
b. 對于一些強調TopN個物品的排序指標(NDCG、ERR等)而言,上述優化是不理想的。例如,圖中右邊下一次迭代,在RankNet中梯度優化方向如黑色箭頭所示,此時損失可以下降到8;然而對于NDCG指標而言,我們更愿意看到紅色箭頭所示的優化方向(此時RankNet同樣是8,但是NDCG指標相比前一種情況上升了)。
圖5.文檔位置-梯度變化圖
此時LambdaRank登場。LambdaRank是一個經驗算法,它不是通過顯式定義損失函數再求梯度的方式對排序問題進行求解,而是分析排序問題需要的分數s的梯度的物理含義,直接定義梯度,即Lambda梯度。只希望L對s的梯度可以按照理想NDCG指標的方向走。
圖6. LambdaRank的網絡結構示意圖
LambdaRank是基于RankNet的改進方法,對梯度的計算方式引入信息檢索評價指標NDCG,針對迭代過程中生成的文檔列表以及相應的NDCG取值的變化情況來確定每個文檔對的梯度,從而調整文檔的相對順序以最大化NDCG,希望所構建的相應損失函數能與最終的評價準則盡可能一致。由于引入了排序指標,Lambda梯度更關注位置靠前的物品的排序位置的提升。有效避免了下調位置靠前的物品的情況發生。LambdaRank相比RankNet的優勢在于分解因式后訓練速度更快,同時考慮了排序指標,直接對問題求解,效果更明顯。
早期的LambdaRank,特別是RankNet是采用的神經網絡來進行模型訓練,基于神經網絡的排序學習方法學習能力較強,對噪聲數據魯棒性和容錯性也較強,但是參數較多調節困難,訓練速度慢,容易過擬合,泛化能力較差,比較容易陷入局部最小值,所以后來發展出基于樹模型的排序學習算法LambdaMART,經過大量實踐證明,基于決策樹方法對排序學習問題效果顯著。這系列的算法后來成為微軟搜索引擎Bing的核心算法之一。
三種排序學習特點和優缺點
一、標注成本的角度:
-
point-wise:直接可以利用互聯網的用戶點擊數據,基本沒有標注成本。
-
pair-wise:利用互聯網的點擊數據,然后人工修正對于同一個query兩個doc之間的偏序關系。
-
list-wise: 人工標注docs與query的整體相關度排序,標注成本最高。
二、從業務理解角度,ranking追求的是排序結果,并不要求精確打分,只要有相對打分即可。
- point-wise類方法
a)并沒有考慮同一個query對應的 docs 間的內部依賴性。一方面,導致輸入空間內的樣本不是IID的,違反了ML的基本假設,另一方面,沒有充分利用這種樣本間的結構性。
b)當不同query對應不同數量的docs時,整體loss將會被對應docs數量大的query組所支配,但是建模的時候我們假設query都是等價的。
c)損失函數也沒有model到預測排序中的位置信息,損失函數過多強調那些不重要的docs,即那些排序在后面對用戶體驗影響小的doc。
它優勢在于對實際問題的簡化,問題定義容易,普適性強,建模和計算成本低。實際業務復雜,也是目前大多數ctr模型使用point-wise的原因。
- pair-wise類方法
a)在考慮樣本時,doc pair的數量將是doc數量的平方次的,從而 point-wise類方法就存在的query間doc 數量的不平衡性將在pair-wise類方法中進一步放大。
b)相對point-wise類方法對噪聲標注更敏感,即一個錯誤標注會引起多個doc pair標注錯誤。
c)考慮了doc pair的相對位置,但損失函數還是沒有model到預測排序中的位置信息。
pair-wise相比point-wise考慮了文檔之間的偏序關系,對于隱語義模型來說能夠學習到更準確的embedding表達。
- list-wise類相較pointwise、pairwise對排序模型更自然,解決了排序應該考慮query和position問題,但是計算的時間復雜度會非常高,投入產出比相對不高,目前只有少數廠在使用。
展望
排序學習方法已經在工業界有很多成功應用,尤其是Point-wise和Pair-wise。但隨著模型復雜度越來越高,List-wise方法的模型帶來收益并沒有顯著提升,個人認為主要原因有以下:
1.實際應用中數據缺失和噪聲偏多,訓練時并不能很好捕捉足夠的信息來調整文檔之間微弱關系,
2.人為感知對文檔之間微弱的相對關系存在個性化差異,實際情況更多關注當前item是否需要,是否喜歡,
3.對于用戶一次請求,真實的Ground Truth實際情況是不可能獲取的(真實的label難以收集),大多數是根據用戶的隱式反饋構造出來的。
往下發展list-wise有兩點技術要求:
1.能減少模型和計算的復雜度,
2.對目標函數處理上有更近似和方便模型求解的方法。
從工業界角度考慮,推動排序學習方法在其他業務問題上的應用,例如多樣性、多目標、自適應。
參考文獻
[1] http://xtf615.com/2018/12/25/learning-to-rank/
[2] Learning to Rank using Gradient Descent
[3] https://github.com/PaddlePaddle/models/tree/develop/legacy/ltr
[4] Learning to Rank using Gradient Descent
[5] The LambdaLoss Framework for Ranking Metric Optimization
[6] Learning to rank for information retrieval
[7] Predicting Diverse Subsets Using Structural SVMs
[8] 排序學習研究進展和展望
[9] 極客時間《AI技術內參》
總結
以上是生活随笔為你收集整理的learning to rank_排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cmd命令及其问题
- 下一篇: 最新SOTA模型和实现代码