【深度學習】排序學習(Learning to rank)


L2R將機器學習的技術很好的應用到了排序中。

 https://jimmy-walker.gitbooks.io/rank/L2R.html

github https://github.com/jiangnanboy/learning_to_rank

lightgbm的訓練速度非常快,快的起飛。

 先看看L2R之前,業界是怎么做排序的。下面兩個:

1.1 相關度排序模型(Relevance Ranking Model)

根據查詢和文檔之間的相似度來對文檔進行排序。

常用的模型包括:布爾模型(Boolean Model),向量空間模型(Vector Space Model),隱語義分析(Latent Semantic Analysis),BM25,LMIR模型等等。

1.2 重要性排序模型(Importance Ranking Model)

根據網頁(亦即文檔)之間的圖結構來判斷文檔的權威程度,

典型的權威網站包括Google,Yahoo!等。常用的模型包括PageRank,HITS,HillTop,TrustRank等等。

 為什么需要使用機器學習的方法來進行排序

 對於傳統的排序模型,單個模型往往只能考慮某一個方面(相關度或者重要性),

用單個模型達不到要求。我們就想說,組合多種排序模型來進行排序,但是,如何組合多個排序模型來形成一個新的排序模型,是一個很大的問題。

 

使用機器學習的方法,我們可以把各個現有排序模型的輸出作為特征,然后訓練一個新的模型,並自動學得這個新的模型的參數,從而很方便的可以組合多個現有的排序模型來生成新的排序模型。

 

L2R的特征即然是使用機器學習的方法,那么就要有feature,

feature可以分為3大類:

Doc本身的特征:Pagerank、內容豐富度、是否是spam、質量值、CTR等
Query-Doc的特征:Query-Doc的相關性、Query在文檔中出現的次數,査詢詞的Proximity值(即在文檔中多大的窗口內可以出現所有査詢詞)等。當然,有些Query-Doc的特征不是顯式的,而是有Semantic的,即雖然Query在文檔中沒有出現,但是語義上是有關系的。
Query的特征:Query 在所有Query 中的出現次數、比率等

 

 

4. L2R訓練數據的獲取

  L2R的訓練數據可以有三種形式:對於每個查詢,各個文檔的絕對相關值(非常相關,比較相關,不相關,等等);對於每個查詢,兩兩文檔之間的相對相關值(文檔1比文檔2相關,文檔4比文檔3相關,等等);對於每個查詢,所有文檔的按相關度排序的列表(文檔1>文檔2>文檔3)。這三種形式的訓練數據之間可以相互轉換。

 

訓練數據的獲取有兩種主要方法:人工標注[3]和從日志文件中挖掘[4]。

  人工標注:首先從搜索引擎的搜索記錄中隨機抽取一些查詢,將這些查詢提交給多個不同的搜索引擎,然后選取各個搜索引擎返回結果的前K個,最后由專業人員來對這些文檔按照和查詢的相關度進行標注。

 

 

 

5. L2R模型訓練

  L2R是一個有監督學習過程。

  對與每個給定的查詢-文檔對(query document pair),抽取相應的特征(既包括查詢和文檔之間的各種相關度,也包括文檔本身的特征以及重要性等),另外通過或者人工標注或者從日志中挖掘的方法來得到給定查詢下文檔集合的真實序列。然后我們使用L2R的各種算法來學到一個排序模型,使其輸出的文檔序列和真實序列盡可能相似。

 

6. L2R算法分類和簡介

  L2R算法主要包括三種類別:PointWise,PairWise,ListWise。

 最直觀的方案是Pointwise算法,例如對於廣告CTR預估,在訓練階段需要標注某個文檔的點擊概率,這相對來說容易。Pairwise算法一個重要分支是Lambda系列,包括LambdaRank、LambdaMart等,它的核心思想是:很多時候我們很難直接計算損失函數的值,但卻很容易計算損失函數梯度(Gradient)。這意味着我們很難計算整個列表的nDCG和ERR等指標,但卻很容易知道某個文檔應該排的更靠前還是靠后。Listwise算法往往效果最好,但是如何為每個請求對所有文檔進行標注是一個巨大的挑戰。

 

7. L2R效果評價

  L2R是用機器學習的方法來進行排序,所以評價L2R效果的指標就是評價排序的指標,主要包括一下幾種:

 1) WTA(Winners take all) 對於給定的查詢q,如果模型返回的結果列表中,第一個文檔是相關的,則WTA(q)=1,否則為0.

  2) MRR(Mean Reciprocal Rank) 對於給定查詢q,如果第一個相關的文檔的位置是R(q),則MRR(q)=1/R(q)。

  3) MAP(Mean Average Precision) 對於每個真實相關的文檔d,考慮其在模型排序結果中的位置P(d),統計該位置之前的文檔集合的分類准確率,取所有這些准確率的平均值。

  4) NDCG(Normalized Discounted Cumulative Gain歸一化折損累計增益) 是一種綜合考慮模型排序結果和真實序列之間的關系的一種指標,也是最常用的衡量排序結果的指標,

DCG的兩個思想:

  1、讓排名越靠前的結果越能影響最后的結果;

  2、有高關聯度的結果出現在更靠前的位置的時候,指標會越高;

  5) RC(Rank Correlation) 使用相關度來衡量排序結果和真實序列之間的相似度,常用的指標是Kendall’s Tau。 

 

在線排序架構

索引階段的工作是由索引器(Indexer)讀取文檔(Documents)構建索引(Index)。

 

查詢階段讀取索引做為召回,然后交給Topn Retriever進行粗排,在粗排后的結果里面將前n個文檔傳給Reranker進行精排。這樣一個召回、粗排、精排的架構最初是由Google提出來的,也被稱為“Two-Phase Scheme”。

索引部分屬於離線階段,這里重點講述在線排序階段,即查詢階段。

 

綜上所述,召回總體而言分成四大類:

  • 關鍵詞召回,我們采用Elasticsearch解決方案。

  • 距離召回,我們采用K-D tree的解決方案。

  • 粗排召回。

  • 推薦類召回。

 

 

進展

在工業界內,推薦算法有更多的應用,例如微軟提出了DSSM(deep structured semantic models),一種Pair Wise Ranking方法。Google提出了神經網絡(a wide and deep network)來做推薦和排序。近期,大家可能更多使用RNN/CNN或者Attention的技術來做推薦。因為用戶在某一個平台上,會存在一個天然的行為序列,這個性質使得RNN/CNN或者Attention具有更佳的可用性。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM