很多人都聽(tīng)說(shuō)過(guò)大名鼎鼎的PageRank算法,它能夠自動(dòng)判斷網(wǎng)頁(yè)的重要性,也是決定搜索結(jié)果排序的關(guān)鍵因素之一。但在很多時(shí)候,僅僅憑重要性遠(yuǎn)遠(yuǎn)無(wú)法完成一項(xiàng)排序。計(jì)算機(jī)和我們都有很多東西需要學(xué)習(xí)。
日常生活中存在多種多樣的排序。我們最熟悉的,比如娛樂(lè)圈里的“超女”、“快男”,體育界的各項(xiàng)賽事,在學(xué)校里經(jīng)常會(huì)碰到的成績(jī)排名等等。而在計(jì)算機(jī)領(lǐng)域內(nèi),一個(gè)最典型和最熱門(mén)的例子,恐怕就是排序在搜索引擎中的應(yīng)用了。赫赫有名的PageRank算法,就構(gòu)建了一套巧妙的機(jī)制和排序模型,來(lái)自動(dòng)判斷網(wǎng)頁(yè)的重要性,并也成為Google的搜索引擎賴(lài)以成名的利器之一。
也恰恰是由于人們逐漸意識(shí)到排序問(wèn)題至于搜索引擎效率的重要性,所以最近幾年,整個(gè)學(xué)術(shù)界對(duì)排序的認(rèn)識(shí)也在迅速提升高度,大家都希望可以非常正規(guī)的把排序當(dāng)做一個(gè)學(xué)術(shù)問(wèn)題來(lái)進(jìn)行研究,并最終形成一個(gè)完整的理論體系??梢哉f(shuō),排序已經(jīng)成為了機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)一個(gè)最新的分支。
就像該領(lǐng)域內(nèi)的分類(lèi)、回歸、聚類(lèi)等其他一些已經(jīng)被研究得很透徹的問(wèn)題一樣,排序到底應(yīng)該如何界定?存在什么樣的特性?有什么理論的知識(shí)蘊(yùn)含其中?如何通過(guò)機(jī)器學(xué)習(xí)來(lái)自動(dòng)的構(gòu)建出排序模型?
微軟亞洲研究院(MSRA)大概在三年前開(kāi)始了有關(guān)“排序?qū)W習(xí)”(Learning to Rank)的研究。2007年,MSRA一篇名為《Learning to Rank: From Pairwise Approach to Listwise Approach》發(fā)表,在整個(gè)學(xué)術(shù)界引起了強(qiáng)烈反響。據(jù)專(zhuān)門(mén)負(fù)責(zé)此課題的主任研究員李航博士介紹,這也和信息爆炸時(shí)代有一定的關(guān)系,用戶(hù)面前的信息量太大,“很多東西都會(huì)希望有一個(gè)排個(gè)序,搜索是最典型的例子,以此來(lái)幫助他們?nèi)ピL問(wèn)到最想要的信息。”
“其實(shí)排序是一種關(guān)系的表現(xiàn),不像以前比如分類(lèi)、回歸是一個(gè)物體或一個(gè)對(duì)象本身的屬性,”和李航一起做該課題研究的劉鐵巖博士告訴記者,“以前說(shuō)一個(gè)網(wǎng)頁(yè),它到底是講新聞還是講體育的?其實(shí)是個(gè)絕對(duì)的事,拿到這個(gè)網(wǎng)頁(yè)一切都知道了,是它的本身的屬性。但排序是指這一個(gè)網(wǎng)頁(yè)跟別的網(wǎng)頁(yè)之間比較的一種關(guān)系。比如以前可以叫做一元學(xué)習(xí),那么現(xiàn)在則是一個(gè)更高元的、更高階的一個(gè)問(wèn)題?!?/p>
李航覺(jué)得,這一點(diǎn)對(duì)整個(gè)傳統(tǒng)的機(jī)器學(xué)習(xí)都是一個(gè)很大的挑戰(zhàn)。因?yàn)榘磦鹘y(tǒng)觀點(diǎn),會(huì)存在一些基本假設(shè),每個(gè)樣本背后都是同樣一個(gè)規(guī)律在控制。但是對(duì)于排序,“其實(shí)我們想要挖掘的是要滿(mǎn)足對(duì)象之間的那種關(guān)系,這就不能用以前那種假設(shè)去看待了,至少在某種情況下,已經(jīng)不完全成立了,所以會(huì)有一些新的理論和實(shí)踐要發(fā)生”。
與之前的“Pairwise”不同的是,李航和劉鐵巖他們所提出的新研究方法“Listwise”是基于一個(gè)列表的學(xué)習(xí),也就是以一個(gè)列表為基本的學(xué)習(xí)單元,“因?yàn)橐粋€(gè)列表本身就包含了一些排了序的文檔,某些關(guān)系已經(jīng)嵌在這樣的表達(dá)方式里?!眲㈣F巖說(shuō),“所以我們不需要像以前研究時(shí)的那種假設(shè),文檔之間會(huì)有相對(duì)大小的關(guān)系,這些都已經(jīng)在我們學(xué)習(xí)單元里面了,這使得基于此的一些理論和實(shí)踐都會(huì)比較順暢,和以前有較大不同?!?/p>
Listwise方法之所以受到關(guān)注,是因?yàn)樵谠u(píng)價(jià)排序結(jié)果好壞的時(shí)候,它把查詢(xún)?cè)~對(duì)應(yīng)的所有文檔通盤(pán)考慮,全局衡量,而以前的工作把目光中在單個(gè)文檔或者一對(duì)文檔之上;而且可以對(duì)文檔之間的關(guān)系,如相似度等進(jìn)行建模,因此可以定義更加有效的排序函數(shù);另外,由于是列表級(jí)別,它可以充分利用文檔在列表中的位置信息,因此可以更加強(qiáng)調(diào)排在前面的文檔,而這與用戶(hù)的體驗(yàn)更加一致。
回到搜索,李航說(shuō),“排序?qū)W習(xí)”這個(gè)研究更多的是關(guān)心算法,以及排序模型的構(gòu)建。比如在互聯(lián)網(wǎng)搜索的時(shí)候,網(wǎng)頁(yè)的重要度是一個(gè)重要的特征,但也要考慮關(guān)聯(lián)度;只有重要度和相關(guān)度可能也不夠,還要考慮其他的一些因素。網(wǎng)絡(luò)搜索發(fā)展到今天,人們已經(jīng)慢慢意識(shí)到,有太多的因素會(huì)影響到排序,把這些因素視作特征用一些方法綜合考慮得出一個(gè)最合理的排序,這是Learning to Rank要解決的問(wèn)題。