谷歌開源TF-Ranking:一個可擴展的排名學習TensorFlow庫

排名是指對一個列表項進行排序的過程,以便最大化列表的效用,適用於各種領域,從搜索引擎和推薦系統到機器翻譯、對話系統甚至是計算生物學。在這些應用程序中,研究人員經常使用一系列叫作排名學習(learning-to-rank)的監督機器學習技術。在很多情況下,這些排名學習技術被應用在非常大型的數據集上——TensorFlow的可擴展性在這方面可能會是一個優勢。但是,目前還不支持直接在TensorFlow中應用排名學習技術。據我們所知,還沒有其他開源庫專門針對排名學習技術的大規模應用。

今天,我們很高興地宣佈TF-Ranking,一個用於排名學習的可擴展TensorFlow庫。正如我們在最近發表的論文中所描述的那樣,TF-Ranking提供了一個統一的框架,包括了一套最先進的排名學習算法,並支持Pairwise和Listwise損失函數、多項目評分、排名度量優化和無偏見排名學習。

TF-Ranking速度很快,而且易於使用,並可用它創建高質量的排名模型。統一的框架讓ML研究人員、ML從業者和ML愛好者能夠基於單個庫評估和選擇一系列不同的排名模型。此外,我們堅信,一個好的開源庫的關鍵之處不僅在於提供合理的默認設置,它還應該讓用戶能夠開發自己的自定義模型。因此,我們提供了靈活的API,用戶可以定義和插入自己的自定義損失函數、評分函數和度量指標。

現有的算法和度量指標支持

排名學習算法的目標是最小化在項目列表上定義的損失函數,優化給定應用程序的列表排序效用。TF-Ranking支持標準的Pointwise、Pairwise和Listwise損失函數。使用TF-Ranking庫的ML研究人員能夠複製和擴展以前發佈的基線,ML專業人員可以爲他們的應用做出最明智的選擇。此外,TF-Ranking可以通過嵌入和擴展到數億個訓練實例來處理稀疏特徵(如原始文本)。因此,任何對構建真實世界數據密集型排名系統(如網絡搜索或新聞推薦)感興趣的人都可以使用TF-Ranking作爲強大、可擴展的解決方案。

經驗評估是機器學習或信息檢索研究的重要組成部分。爲了確保與先前工作的兼容性,我們支持很多常用的排名指標,包括平均倒數排名(MRR)和標準化折扣累積收益(NDCG)。我們還可以在TensorBoard(開源的TensorFlow可視化儀表盤)上顯示這些指標(在訓練期間)。

image

在TensorBoard中顯示的訓練步驟(X軸)的NDCG度量指標(Y軸)的示例。它顯示了訓練期間指標的總體進度。可以直接在儀表盤上比較不同的方法。可以根據指標選擇最佳模型。

多項評分

TF-Ranking支持一種新穎的評分機制,可以聯合對多個項目(例如網頁)進行評分,這是對傳統評分機制的一個擴展,在傳統的評分機制中,只對單個項目進行獨立評分。多項目評分面臨的一個挑戰是難以進行推理,項目必須被分成子組進行評分。然後,累積每個項目的分數用於排序。爲了隱藏這些複雜性,TF-Ranking提供了List-In-List-Out(LILO)API,將這些邏輯包裝在導出的TF模型中。

image

TF-Ranking庫支持多項目評分架構,是對傳統單項評分的擴展。

正如我們在最近的工作中所展示的那樣,在公共LETOR基準測試中,多項目評分在性能方面與RankNet、MART和LambdaMART等最先進的學習模型相比具有相當的競爭力。

排名指標優化

排名學習的一個重要研究挑戰是排名指標的直接優化(例如前面提到的NDCG和MRR)。這些指標雖然能夠比標準分類指標(如曲線下面積(AUC))更好地衡量排名系統的性能,但卻具有不連續或扁平的特點。因此,這些指標的標準隨機梯度下降優化是有問題的。

在最近的工作中,我們提出了一種新的方法LambdaLoss,它提供了一種用於對度量優化進行排序的原則概率框架。在這個框架中,可以通過期望最大化過程來設計和優化基於度量指標驅動的損失函數。TF-Ranking庫集成了直接度量指標優化的最新成果,並提供了LambdaLoss實現。我們希望這些可以鼓勵和促進排名度量指標優化領域進一步的研究和進展。

無偏見的排名學習

之前的研究表明,對於給定的已排名項目列表,用戶更有可能與前幾個結果交互,無論它們的相關性是怎樣的。這一發現激發了研究人員對無偏見排名學習的興趣,並且基於訓練實例重新加權開發出了無偏見的評估和幾種無偏見的學習算法。TF-Ranking庫實現了支持無偏見評估的度量指標,並且通過原生支持重新加權(解決用戶與數據集交互的固有偏差)實現了無偏見學習損失函數。

TF-Ranking入門

TF-Ranking實現了TensorFlow Estimator接口,通過封裝訓練、評估、預測和導出服務極大簡化了機器學習編程。TF-Ranking與豐富的TensorFlow生態系統完美集成。如上所述,你可以使用Tensorboard可視化NDCG和MRR等排名指標,以及使用這些指標選擇最佳模型檢查點。在你的模型準備就緒之後,可以使用TensorFlow Serving將模型部署到生產環境中。

如果你有興趣嘗試TF-Ranking,請查看我們的GitHub存儲庫,並參考教程示例。TF-Ranking是一個活躍的研究項目,我們歡迎你的反饋和貢獻。我們很高興看到TF-Ranking能夠給信息檢索和機器學習研究社區帶來一些幫助。

英文原文:http://ai.googleblog.com/2018/12/tf-ranking-scalable-tensorflow-library.html

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章