谷歌開源 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 視覺化儀表盤)上顯示這些指標(在訓練期間)。
多項評分
TF-Ranking 支援一種新穎的評分機制,可以聯合對多個專案(例如網頁)進行評分,這是對傳統評分機制的一個擴充套件,在傳統的評分機制中,只對單個專案進行獨立評分。多專案評分面臨的一個挑戰是難以進行推理,專案必須被分成子組進行評分。然後,累積每個專案的分數用於排序。為了隱藏這些複雜性,TF-Ranking 提供了 List-In-List-Out(LILO)API,將這些邏輯包裝在匯出的 TF 模型中。
正如我們在最近的工作中所展示的那樣,在公共 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