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

為 Learning-to-Rank 打造的可擴展 TensorFlow 庫
評論