RankNet 信息檢索排序算法

排序算法是信息檢索里面很重要的一環(huán),例如用戶提交了一個(gè)查詢 q主守,搜索引擎會(huì)返回很多相關(guān)的文檔禀倔,然后需要采用排序算法根據(jù)文檔與 q 的相關(guān)性對(duì)文檔進(jìn)行排序〔我可以采用機(jī)器學(xué)習(xí)的方法解決排序的問(wèn)題救湖,稱為 Learning To Rank (LTR) 。LTR 主要分三類 PointWise涎才,PairWise鞋既,ListWise,本文主要介紹一種 PairWise 的算法 RankNet耍铜。

1.信息檢索排序

在信息檢索時(shí)邑闺,系統(tǒng)需要根據(jù)用戶的查詢 q,對(duì)文檔進(jìn)行相關(guān)性排序棕兼。信息檢索中有很多經(jīng)典的排序算法陡舅。

布爾模型(Boolean Model)

將查詢表示成關(guān)鍵詞的布爾組合,用 "與"伴挚,"或"靶衍,"非" 將查詢組合起來(lái)灾炭,然后計(jì)算文檔和查詢的匹配程度。但是布爾模型通常只能檢索出符合條件的文檔颅眶,不能進(jìn)行排序蜈出,例如我們有如下三個(gè)文檔:

文檔1: a b c d e f
文檔2: a x b y y z
文檔3: a c d e f g

根據(jù)文檔和單詞可以構(gòu)造出一個(gè)單詞-文檔矩陣,表示單詞是否出現(xiàn)在文檔中帚呼。

布爾模型

如果用戶要查詢有 a 或者 b掏缎,但是一定有 z 的文檔。首先從上述矩陣中找出 a煤杀,b眷蜈,z 對(duì)應(yīng)的向量 a(1, 1, 1),b(1, 1, 0)沈自,z(0, 1, 0)酌儒,然后按照查詢所描述的布爾組合將向量組合在一起。如下所示枯途,只有文檔 2 符合條件忌怎。

布爾模型檢索

向量空間模型 Vectos Space Model

將文檔和查詢轉(zhuǎn)成向量空間中的向量,然后計(jì)算查詢向量和文檔向量的內(nèi)積得到相似度酪夷,按相似度進(jìn)行排序榴啸。向量可以用 TF-IDF 向量表示。

PageRank

給定一個(gè)網(wǎng)頁(yè) u晚岭,其影響力等于所有鏈接到 u 的網(wǎng)頁(yè)加權(quán)影響力之和鸥印,如下所示。

PageRank

v 表示所有能夠跳轉(zhuǎn)到網(wǎng)頁(yè) u 的頁(yè)面坦报,L(v) 表示網(wǎng)頁(yè) v 所有跳轉(zhuǎn)鏈接個(gè)數(shù)库说。另外用戶也有可能通過(guò)輸入網(wǎng)址訪問(wèn)頁(yè)面而不是通過(guò)跳轉(zhuǎn)鏈接,因此 PageRank 算法還加上了一個(gè)因子 d片择,表示用戶按照跳轉(zhuǎn)鏈接上網(wǎng)的概率潜的。

PageRank

2.Learning To Rank

Learning To Rank 主要是使用機(jī)器學(xué)習(xí)的方法學(xué)習(xí)出文檔的排序,主要分為三類:

PointWise:給定查詢 q字管,PointWise 模型的輸入是單個(gè)文檔啰挪,直接計(jì)算出 q 和該文檔的相關(guān)性,再根據(jù)相關(guān)性進(jìn)行排序嘲叔。這一類方法沒(méi)有考慮文檔之間的相互依賴關(guān)系脐供,而且損失函數(shù)是不知道排序后文檔的相對(duì)位置的。

PairWise:給定查詢 q借跪,PairWise 模型的輸入是文檔對(duì) (即兩個(gè)文檔),然后計(jì)算 q 更偏向于哪個(gè)文檔酌壕。因此模型可以知道文檔之間的相對(duì)順序掏愁。

ListWise:輸入的是查詢 q 以及一組文檔歇由,輸出為所有文檔的排序結(jié)果。

本文主要介紹一種 PairWise 的 LTR 算法果港,RankNet 是微軟研究院 2005 年提出的沦泌,用在搜索引擎 Bing 中,對(duì)應(yīng)的論文是《Learning to Rank Using Gradient Descent》辛掠。RankNet 提出了一種概率損失函數(shù)谢谦,然后使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)排名函數(shù) (ranking function),最后用使用梯度下降的方法訓(xùn)練模型萝衩。

3.RankNet

RankNet 使用神經(jīng)網(wǎng)絡(luò)對(duì)文檔進(jìn)行打分回挽,f(x1) 表示樣本 x1 的分?jǐn)?shù),如果 f(x1) > f(x2)猩谊,則表示 x1 排名高于 x2 (用 x1->x2 表示)千劈。

我們可以利用函數(shù) f 計(jì)算得到樣本 xi 比樣本 xj 排名更高的概率,如下所示牌捷。

Pij

另外還需要 xi 比 xj 排名更高 (即 xi 比 xj 更加相關(guān)) 的真實(shí)概率墙牌,在數(shù)據(jù)集中有參數(shù) Sij。如果 xi 相關(guān)性比 xj 更高暗甥,則 Sij = 1喜滨;如果 xi 相關(guān)性比 xj 低,則 Sij = -1撤防;如果 xi 相關(guān)性和 xj 一樣虽风,則 Sij = 0。我們可以通過(guò)下面的公式計(jì)算 xi 比 xj 排名更高的真實(shí)概率即碗。

真實(shí)概率

RankNet 的損失函數(shù)采用了 cross entrophy焰情,根據(jù) 損失函數(shù)進(jìn)行梯度下降,優(yōu)化神經(jīng)網(wǎng)絡(luò)的參數(shù) (即函數(shù) f)剥懒,損失函數(shù)如下所示内舟。

損失函數(shù)

下圖是不同真實(shí)概率下,損失函數(shù)取值和 (oi-oj) 的關(guān)系初橘。

4.參考文獻(xiàn)

《Learning to Rank using Gradient Descent》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末验游,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子保檐,更是在濱河造成了極大的恐慌耕蝉,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夜只,死亡現(xiàn)場(chǎng)離奇詭異垒在,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)扔亥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門场躯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)谈为,“玉大人,你說(shuō)我怎么就攤上這事踢关∩■辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵签舞,是天一觀的道長(zhǎng)秕脓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)儒搭,這世上最難降的妖魔是什么吠架? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮师妙,結(jié)果婚禮上诵肛,老公的妹妹穿的比我還像新娘。我一直安慰自己默穴,他們只是感情好怔檩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蓄诽,像睡著了一般薛训。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仑氛,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天乙埃,我揣著相機(jī)與錄音,去河邊找鬼锯岖。 笑死介袜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的出吹。 我是一名探鬼主播遇伞,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼捶牢!你這毒婦竟也來(lái)了鸠珠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秋麸,失蹤者是張志新(化名)和其女友劉穎渐排,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灸蟆,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驯耻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片可缚。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡孽水,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出城看,到底是詐尸還是另有隱情,我是刑警寧澤杏慰,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布测柠,位于F島的核電站,受9級(jí)特大地震影響缘滥,放射性物質(zhì)發(fā)生泄漏轰胁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一朝扼、第九天 我趴在偏房一處隱蔽的房頂上張望赃阀。 院中可真熱鬧,春花似錦擎颖、人聲如沸榛斯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驮俗。三九已至,卻和暖如春允跑,著一層夾襖步出監(jiān)牢的瞬間王凑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工聋丝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留索烹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓弱睦,卻偏偏與公主長(zhǎng)得像百姓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子每篷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 為什么要用LTR 傳統(tǒng)的檢索模型靠人工擬合排序公式瓣戚,并通過(guò)不斷的實(shí)驗(yàn)確定最佳的參數(shù)組合,以此來(lái)形成相關(guān)性打分焦读。這種...
    Yespon閱讀 6,735評(píng)論 0 5
  • LambdaMART是一種state-of-art的Learning to rank算法子库,由微軟在2010年提出[...
    天行劍閱讀 16,842評(píng)論 3 52
  • 最近工作中需要調(diào)研一下搜索排序相關(guān)的方法,這里寫一篇水文矗晃,總結(jié)一下幾天下來(lái)的調(diào)研成果仑嗅。包括 Learning to...
    y_felix閱讀 12,604評(píng)論 3 16
  • 前言 推薦的Rerank排序有兩種情況,一個(gè)是離線計(jì)算的時(shí)候?yàn)槊總€(gè)用戶提前用Rerank排序算法算好推薦結(jié)果,另一...
    充電了么閱讀 2,883評(píng)論 0 0
  • 夜鶯2517閱讀 127,712評(píng)論 1 9