天天看點

谷歌開源TF-Ranking:支援多種排序學習的可擴充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 可視化儀表盤)上顯示這些名額(在訓練期間)。

谷歌開源TF-Ranking:支援多種排序學習的可擴充TensorFlow庫

多項評分

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

谷歌開源TF-Ranking:支援多種排序學習的可擴充TensorFlow庫

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

排序名額優化

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

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

無偏見的排序學習

之前的研究表明,對于給定的已排序項目清單,使用者更有可能與前幾個結果互動,無論它們的相關性是怎樣的。這一發現激發了研究人員對無偏見排序學習的興趣,并且基于訓練執行個體重新權重開發出了無偏見的評估和幾種無偏見的學習算法。TF-Ranking 庫實作了支援無偏見評估的度量名額,并且通過原生支援重新權重(解決使用者與資料集互動的固有偏差)實作了無偏見學習損失函數。

TF-Ranking 入門