排名 (Ranking) 意指為最大程度地利用整個(gè)列表而對(duì)列表項(xiàng)進(jìn)行排序的過(guò)程,其適用領(lǐng)域非常廣泛,涉及搜索引擎與系統(tǒng)推薦、機(jī)器翻譯、對(duì)話系統(tǒng)乃至計(jì)算生物學(xué)等。在諸如此類(及許多其他類型)的應(yīng)用中,研究人員經(jīng)常會(huì)使用一組稱為L(zhǎng)earning-to-Rank的監(jiān)督式機(jī)器學(xué)習(xí)技術(shù)。在許多情況下,這些 Learning-to-Rank 技術(shù)應(yīng)用于規(guī)模很龐大的數(shù)據(jù)集—在此類情形中,TensorFlow的可擴(kuò)展性可能是一種優(yōu)勢(shì)。但當(dāng)前,我們還沒(méi)有為在 TensorFlow 中應(yīng)用 Learning-to-Rank 技術(shù)提供 “開(kāi)箱即用” 的支持。據(jù)我們所知,目前也沒(méi)有其他開(kāi)源庫(kù)專門大規(guī)模應(yīng)用 Learning-to-Rank 技術(shù)。今天,我們很高興與諸位分享TF-Ranking,這是一個(gè)專為 Learning-to-Rank 打造的可擴(kuò)展的 TensorFlow 庫(kù)。正如我們?cè)诮诘恼撐闹兴觯琓F-Ranking 提供的統(tǒng)一框架包含一套最先進(jìn)的 Learning-to-Rank 算法,并支持Pairwise 或 Listwise 損失函數(shù)、多項(xiàng)目評(píng)分、排名指標(biāo)優(yōu)化以及無(wú)偏差 Learning-to-Rank。TF-Ranking 運(yùn)行速度快,易于使用,并可創(chuàng)建高質(zhì)量的排名模型。統(tǒng)一的框架讓機(jī)器學(xué)習(xí)研究人員、從業(yè)者和愛(ài)好者能夠在單個(gè)庫(kù)中評(píng)估并選擇一組不同的排名模型。此外,我們堅(jiān)信,作為一個(gè)實(shí)用的開(kāi)源庫(kù),其核心不僅在于提供合理的默認(rèn)值,還應(yīng)當(dāng)能讓用戶開(kāi)發(fā)其自定義模型。因此,我們提供了靈活的 API,用戶可在此 API 中定義并插入自定義損失函數(shù)、評(píng)分函數(shù)和指標(biāo)。
對(duì)現(xiàn)有算法和指標(biāo)的支持
Learning-to-Rank 算法的目標(biāo)是將針對(duì)項(xiàng)目列表定義的損失函數(shù)最小化,從而優(yōu)化給定應(yīng)用列表排序的效用。TF-Ranking 支持我們?cè)谙惹把芯恐兴枋龅拇罅繕?biāo)準(zhǔn) Pointwise、Pairwise 和 Listwise 損失函數(shù)。這不僅能確保使用 TF-Ranking 庫(kù)的研究人員可復(fù)制和擴(kuò)展過(guò)去發(fā)布的基準(zhǔn),也能讓從業(yè)者為其應(yīng)用做出最明智的選擇。此外,TF-Ranking 能通過(guò)嵌入和擴(kuò)展至數(shù)百億個(gè)訓(xùn)練實(shí)例來(lái)處理稀疏特征(如原始文本)。因此,無(wú)論是誰(shuí),只要對(duì)構(gòu)建真實(shí)數(shù)據(jù)密集型排名系統(tǒng)(例如網(wǎng)頁(yè)搜索或新聞推薦)抱有興趣,均可將 TF-Ranking 用作強(qiáng)大的可擴(kuò)展解決方案。經(jīng)驗(yàn)評(píng)估是所有機(jī)器學(xué)習(xí)或信息檢索研究的重要一環(huán)。為確保兼容先前的研究,TF-Ranking 支持許多常用的排名指標(biāo),包括平均倒序排名(MRR) 和標(biāo)準(zhǔn)化折扣累積收益(NDCG)。訓(xùn)練期間,我們還可在TensorBoard(一種開(kāi)源的 TensorFlow 可視化信息中心)上輕松查看這些指標(biāo)。
隨訓(xùn)練步驟(X 軸)變化的 NDCG 指標(biāo)(Y 軸)示例(在 TensorBoard 上顯示)。該示例顯示出指標(biāo)在訓(xùn)練期間的整體進(jìn)度。您可以在信息中心上直接對(duì)不同的方法進(jìn)行比較,根據(jù)指標(biāo)選擇最佳模型
多項(xiàng)目評(píng)分
TF-Ranking 支持一種新穎的評(píng)分機(jī)制,可以對(duì)多個(gè)項(xiàng)目(例如網(wǎng)頁(yè))執(zhí)行聯(lián)合評(píng)分,這是對(duì)傳統(tǒng)評(píng)分范例(對(duì)單個(gè)項(xiàng)目進(jìn)行獨(dú)立評(píng)分)的擴(kuò)展。關(guān)于多項(xiàng)目評(píng)分,我們經(jīng)常面臨的一個(gè)挑戰(zhàn)是,難以判斷需將哪些項(xiàng)目進(jìn)行分組并在子組中進(jìn)行評(píng)分。然后,累計(jì)每個(gè)項(xiàng)目的評(píng)分并用于排序。為了讓用戶免于接觸這些復(fù)雜原理,TF-Ranking 提供了一個(gè) List-In-List-Out (LILO) API,將所有邏輯封裝于導(dǎo)出的 TensorFlow 模型內(nèi)。
TF-Ranking 庫(kù)支持多項(xiàng)目評(píng)分架構(gòu),這是對(duì)傳統(tǒng)單項(xiàng)目評(píng)分的擴(kuò)展
正如近期研究中所示,在公開(kāi)的LETOR基準(zhǔn)測(cè)試中,相較 RankNet、MART 和 LambdaMART 等最新 Learning-to-Rank 模型,多項(xiàng)目評(píng)分在性能表現(xiàn)方面極具競(jìng)爭(zhēng)力。
排名指標(biāo)優(yōu)化
直接優(yōu)化排名指標(biāo)(例如前文所提及的 NDCG 和 MRR)是 Learning-to-Rank 中的一個(gè)重大研究難題。雖然這些指標(biāo)對(duì)排名系統(tǒng)性能的衡量效果優(yōu)于曲面下面積(AUC) 等標(biāo)準(zhǔn)分類指標(biāo),但遺憾的是,它們具有間斷或扁平的屬性。因此,這些指標(biāo)的標(biāo)準(zhǔn)隨機(jī)梯度下降優(yōu)化是存在問(wèn)題的。在近期研究中,我們提出了一種稱作 LambdaLoss 的新型方法,可為排名指標(biāo)優(yōu)化提供一個(gè)條理化的概率框架。在此框架內(nèi),用戶可通過(guò)期望最大化程序來(lái)設(shè)計(jì)與優(yōu)化指標(biāo)驅(qū)動(dòng)的損失函數(shù)。TF-Ranking 庫(kù)集成了直接指標(biāo)優(yōu)化的最新成果,并可提供 LambdaLoss 的實(shí)現(xiàn)。我們希望此方法能激勵(lì)并推動(dòng)排名指標(biāo)優(yōu)化在重大領(lǐng)域內(nèi)的進(jìn)一步研究發(fā)展。
無(wú)偏差 Learning-to-Rank
先前的研究表明,若給定排名后的項(xiàng)目列表,用戶更有可能與前幾個(gè)結(jié)果進(jìn)行交互,而無(wú)論其相關(guān)性如何。這一發(fā)現(xiàn)激發(fā)了研究人員對(duì)無(wú)偏差 Learning-to-Rank的研究興趣,他們?cè)趯?duì)訓(xùn)練實(shí)例重新加權(quán)的基礎(chǔ)上開(kāi)發(fā)出了無(wú)偏差評(píng)估和多種無(wú)偏差學(xué)習(xí)算法。TF-Ranking 庫(kù)不僅能實(shí)現(xiàn)支持無(wú)偏差評(píng)估的指標(biāo),還能通過(guò)原生支持重新加權(quán)來(lái)實(shí)現(xiàn)無(wú)偏差學(xué)習(xí)損失函數(shù),從而解決用戶與數(shù)據(jù)集交互時(shí)出現(xiàn)的固有偏差。
TF-Ranking 入門
TF-Ranking 實(shí)現(xiàn)了TensorFlow Estimator接口,可通過(guò)封裝訓(xùn)練、評(píng)估、預(yù)測(cè)和服務(wù)導(dǎo)出大幅度簡(jiǎn)化機(jī)器學(xué)習(xí)編程。TF-Ranking 與豐富的 TensorFlow 生態(tài)系統(tǒng)完美集成。如前文所述,您既可使用Tensorboard直觀呈現(xiàn) NDCG 和 MRR 等排名指標(biāo),也可以使用這些指標(biāo)選出最佳模型檢查點(diǎn)。待模型準(zhǔn)備就緒,您便可使用TensorFlow Serving輕松將其部署至生產(chǎn)環(huán)境。若您有興趣親自試用 TF-Ranking,請(qǐng)查看我們的GitHub 存儲(chǔ)區(qū),并瀏覽教程示例。TF-Ranking 是一個(gè)活躍的研究項(xiàng)目,歡迎您為我們提供反饋和貢獻(xiàn)。我們很高興能見(jiàn)證 TF-Ranking 為信息檢索和機(jī)器學(xué)習(xí)研究社區(qū)所帶來(lái)的幫助。
致謝
本項(xiàng)目的完成離不開(kāi) TF-Ranking 核心團(tuán)隊(duì)以下成員的付出:Rama Pasumarthi、Cheng Li、Sebastian Bruch、Nadav Golbandi、Stephan Wolf、Jan Pfeifer、Rohan Anil、Marc Najork、Patrick McGregor 以及 Clemens Mewald。同時(shí)感謝 TensorFlow 團(tuán)隊(duì)以下成員為我們提供建議和支持:Alexandre Passos、Mustafa Ispir、Karmel Allison、Martin Wicke 等。最后,要特別感謝我們的協(xié)作者、實(shí)習(xí)生和嘗鮮用戶:Suming Chen、Zhen Qin、Chirag Sethi、Maryam Karimzadehgan、Makoto Uchida、Yan Zhu、Qingyao A、Brandon Tran、Donald Metzler、Mike Colagrosso 以及幫助我們?cè)u(píng)估和測(cè)試 TF-Ranking 初期版本的眾多 Google 員工們。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
評(píng)分系統(tǒng)
+關(guān)注
關(guān)注
0文章
4瀏覽量
6653
原文標(biāo)題:TF-Ranking:為 Learning-to-Rank 打造的可擴(kuò)展 TensorFlow 庫(kù)
文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論