谷歌開源 TF-Ranking:專用於排序學習的可擴展 TensorFlow 庫

2021-01-16 雷鋒網

雷鋒網 AI 科技評論按:日前,谷歌 AI 發布了最新成果 TF-Ranking,它是一個專門針對排序學習(learning-to-rank)應用的可擴展 TensorFlow 庫。TF-Ranking 快速且易用,並能創建高質量的排序模型,對構建 web 搜索或新聞推薦等基於真實世界數據的排序系統感興趣的人,都可以將 TF-Ranking 作為強穩的、可擴展的解決方案。

排序是一種以最大化整個列表效用為目的,對項目列表進行排序的過程,適用於搜尋引擎、推薦系統、機器翻譯、對話系統,甚至還能用於計算生物學等眾多領域。在諸如這些(以及其他諸多)應用中,研究人員經常使用一系列稱作排序學習的有監督的機器學習技術。在許多情況下,這些排序學習技術會被應用於大規模數據集,在這一場景中,TensorFlow 的可伸縮性會成為一個優勢。然而,目前 TensorFlow 還不能直接支持學習排序。並且,現在也還沒有其他專門針對排序學習技術規模化應用的開源庫。

現在,谷歌 AI 宣布開源 TF-Ranking(https://github.com/tensorflow/ranking),它是一個可擴展的排序學習 TensorFlow 庫。正如谷歌在最近發表的論文(https://arxiv.org/abs/1812.00073)中所描述的,TF-Ranking 提供了一個統一的框架,該框架包括一套最先進的排序學習算法,並且支持 Pairwise 和 Listwise 損失函數、多項目評分、排序度量優化和無偏見排序等等。

TF-Ranking 快速且易用,並能創建高質量的排序模型。該統一框架讓機器學習研究人員、實踐者和愛好者能夠在單個庫中評估和選擇一系列不同的排序模型。此外,谷歌 AI 團隊堅信一個有用的開源庫,它的關鍵不僅在於提供合理的默認值(sensible default),而且還在於能夠授權用戶開發自定義模型。為此,他們提供了靈活的 API,讓用戶可以在 API 中定義和插入自定義的損失函數、評分函數和指標。

現有算法和指標支持

排序學習算法的目標是最小化在項目列表上定義的損失函數,以優化任意給定請求的排序。TF-Ranking 支持在此前工作(https://en.wikipedia.org/wiki/Learning_to_rank#Approaches)中所描述的各類標準的 pointwise,pairwise 和 listwise 損失函數。這確保了使用 TF-Ranking 庫的研究人員能夠重現和擴展先前的 baseline,並且他們的請求可以得到最明智的選擇。此外,TF-Ranking 還可以通過嵌入來處理稀疏特徵(如原始文本)以及擴展到數億個訓練實例。因此,任何對構建 web 搜索或新聞推薦等基於真實世界數據的排序系統感興趣的人,都可以將 TF-Ranking 作為強穩的、可擴展的解決方案。

經驗評估是所有機器學習或信息檢索研究的重要組成部分。為了確保與先前工作的兼容性,TF-Ranking 支持許多常用的排序評價指標,包括 Mean Reciprocal Rank(MRR,https://en.wikipedia.org/wiki/Discounted_cumulative_gain)和 Normalized Discounted Cumulative Gain(NDCG,https://en.wikipedia.org/wiki/Discounted_cumulative_gain),同時也讓研究人員在訓練期間更方便在 TensorBoard(開源 TensorFlow 可視化儀錶盤)上看到這些指標。

TensorBoard 上顯示的基於訓練步驟(X 軸)的 NDCG 指標 (Y 軸)示例,它表示了訓練期間指標的總體進度。不同的方法可直接在儀錶板上進行比較,並基於指標選出最佳模型。

多條目評分

TF-Ranking 支持一種新的評分機制,在新的評分機制中可以對多個條目進行聯合評分,這是對只能對單個條目進行獨立評分的傳統評分機制的擴展。多條目評分面臨的一個挑戰是難以推斷哪些條目必須進行分組並在子組中評分。然後,每個條目累積下來的分數將被用於排序。TF-Ranking 提供了一個 List-In-List-Out(LILO)API,來將所有這些邏輯放入導出的 TF 模型中。

TF-Ranking 庫支持擴展自傳統單條目評分的多條目評分架構。

正如谷歌 AI 在最近的工作(https://arxiv.org/abs/1811.04415)中所展示的,多條目評分在公共 LETOR 基準測試中的性能,與 RankNet,MART 和 LambdaMART 等最先進的排序學習模型相比具有競爭力。

排序評價指標優化

排序學習所面臨的一個重要研究挑戰是排序評價指標的優化(例如前面所提到的 NDCG 和 MRR)。雖然與 Area Under the Curve(AUC)之類的標準分類評價指標相比,這些評價指標能更好地衡量排序系統的性能,但可惜它們要麼不連續,要麼平滑。因此,這些評價指標的標準隨機梯度下降優化存在困難。

在最近的一項工作(https://ai.google/research/pubs/pub47258)中,谷歌 AI 提出了一種新的方法——LambdaLoss,它為排序評價指標優化提供了一個統一的概率框架。在這個框架中,可以通過期望最大化的過程來設計和優化由評價指標驅動的損失函數。TF-Ranking 庫集成了評價指標優化的最新成果,並提供了 LambdaLoss 的實現。谷歌 AI 表示,TF-Ranking 未來有望鼓舞和推動排序評價指標優化這一重要領域的更深入的研究進展。

無偏見排序學習

此前的研究(https://ai.google/research/pubs/pub45286)表明,給定一個項目的排序列表,用戶更有可能重點查看前面幾個結果,而忽略結果之間的相關性。這一發現激發了大家對於無偏見排序學習的研究興趣,並且帶來了無偏見評估和基於訓練實例重複加權的幾種無偏見學習算法的發展。

開啟 TF-Ranking 的使用

TF-Ranking 實現了 TensorFlow Estimator 接口,它通過封裝訓練、評估、預測和導出服務,可以大大簡化機器學習編程。

TF-Ranking 完美地集成了豐富的 TensorFlow 生態系統。如上所述,你可以使用 Tensorboard 將 NDCG 和 MRR 等排序評價指標可視化,以及使用這些評價指標選擇最佳模型檢查點。一旦你的模型準備就緒,便可使用 TensorFlow 服務(https://www.tensorflow.org/serving/),輕而易舉地將其部署到生產。

如果大家有興趣嘗試 TF-Ranking,可以前往谷歌 AI 的 GitHub 存儲庫(https://github.com/tensorflow/ranking),並參考教程示例(https://github.com/tensorflow/ranking/tree/master/tensorflow_ranking/examples)。

Via:http://ai.googleblog.com/2018/12/tf-ranking-scalable-tensorflow-library.html 雷鋒網 AI 科技評論編譯。 雷鋒網

相關焦點

  • 谷歌推出TF-Ranking:用於排序算法的可擴展TensorFlow庫
    【新智元導讀】谷歌AI發布新成果,TF-Ranking:這是一個應用於Learning to Rank、基於TensorFlow的可擴展庫。  谷歌AI發布了TF-Ranking,這是一個應用於Learning to Rank、基於TensorFlow的可擴展庫。  TF-Ranking  TF-Ranking提供了一個統一的框架,其中包括一套最先進的Learning to Rank算法,並支持成對或列表丟失函數,多項目評分,排名度量優化等等。
  • 詳解TF-Ranking:Google開源的排序框架應用於郵件檢索、推薦系統
    今天分享的是一個有關LTR框架的介紹,LTR是Learning-To-Rank,解決的是排序問題。排序問題在人工智慧領域應用很廣,比如在Gmail裡搜索一個關鍵詞,返回最匹配的郵件。再比如進入Google Drive後的一些文章推薦。
  • 業界| 谷歌發布tfdbg:讓TensorFlow機器學習模型調試更簡單
    選自Google Blog作者:蔡善清參與:李澤南、李亞洲隨著 2 月 16 日谷歌開發者大會上TensorFlow1.0的發布,這一最流行的深度學習框架邁進了新的時代。昨天,谷歌宣布開源 TensorFlow Debugger,一個專用於調試TensorFlow 代碼的新工具,希望以此讓開發者們能夠更輕鬆地構建機器學習項目。
  • TensorFlow發布JavaScript開發者的機器學習框架TensorFlow.js
    當時時間 3 月 30 日,谷歌 TenosrFlow 開發者峰會 2018 在美國加州石景山開幕,來自全球的機器學習用戶圍繞 TensorFlow 展開技術演講與演示。去年的 TensorFlow 開發者大會上,該框架正式升級到了 1.0 版本,逐漸成為最流行的深度學習框架。
  • 重磅發布2.0 Alpha版,TensorFlow新定位:端到端開源機器學習平臺
    此外,今日谷歌還開源了新的框架與庫,發布了兩款有趣的開發硬體。還換了 Logo~自 2015 年開源以來,TensorFlow 得到了越來越多開發者的認可,成為了當前最受歡迎的深度學習框架之一。據現場介紹,目前為止 TensorFlow 已經被下載超過 4100 萬次、提交 5 萬多次代碼更新、1800 多位貢獻者。
  • 谷歌發布全新TensorFlow庫「tf.Transform」簡化機器學習數據預...
    針對這一難題,谷歌於 22 日通過開發者博客正式發布了一個基於 TensorFlow 的全新功能組件 —— tf.Transform。它允許用戶在大規模數據處理框架中定義預處理流水線(preprocessing pipelines),同時用戶還可以將這些流水線導出,並將其作為 TensorFlow 計算圖(TensorFlow graph)的一部分。
  • TFLearn:為TensorFlow提供更高級別的API 的深度學習庫
    TFlearn是一個基於Tensorflow構建的模塊化透明深度學習庫。它旨在為TensorFlow提供更高級別的API,以促進和加速實驗,同時保持完全透明並與之兼容。TFLearn功能包括:通過教程和示例,易於使用和理解用於實現深度神經網絡的高級API。
  • tensorflow安裝教程
    tensorflow是谷歌開源的人工智慧庫,有最完善的生態支持。是進行人工智慧領域開發和科研的必備工具。本文在windows10下,藉助anacondaAnaconda安裝和使用,AkShare入門,安裝tensorflow2.0。
  • 開源| 雅虎BigML團隊開源大數據分布式深度學習框架TensorFlowOn...
    選自雅虎作者:Lee Yang,、Jun Shi、 Bobbie Chern、 Andy Feng機器之心編譯參與:杜夏德、朱思穎雅虎 Big ML 團隊今日宣布開源 TensorFlowOnSpark,用於在大數據集群上進行分布式深度學習。下面是該團隊官方發布的開源說明。近幾年,深度學習發展的非常迅速。
  • 玩轉TensorFlow?你需要知道這30功能
    ,它是 Google 開源的一款人工智慧學習系統。TFHub 模塊使它變得容易,並且可以在 https://tfhub.dev/ 這個開源軟體商店中使用。網址:https://magenta.tensorflow.org/ 16)種子庫這個功能也很少看到有人討論種子庫是一個不斷擴展的交互式機器學習示例集合
  • DeepMind開源Sonnet:可在TensorFlow中快速構建神經網絡
    選自DeepMind作者:Malcolm Reynolds等機器之心編譯參與:李澤南、Ellen Han昨天,DeepMind 發布了 Sonnet,一個在 TensorFlow 之上用於構建複雜神經網絡的開源庫。這是繼 DeepMind Lab 後,這家谷歌旗下的公司的又一次開源舉措。
  • 終於來了,TensorFlow 新增官方 Windows 支持
    TensorFlow 宣布開源剛剛過去一年。在谷歌的支持下,TensorFlow 已成為 GitHub 上最受歡迎的機器學習開源項目。同時,谷歌也在 TensorFlow 框架中進行過各類研究、開源了其中一些項目,這些研究涉及到自然語言處理、機器翻譯、圖像描述、圖像分類等等。
  • 未探索的TensorFlow庫
    然而,TensorFlow還提供了更多神秘的庫,我們將在本文中對此進行解釋。要了解更多關於它的信息,請參考這裡:https://blog.tensorflow.org/2020/04/quantization-aware-training-with-tensorflow-model-optimization-toolkit.html對於它的代碼,請看這裡:https://www.tensorflow.org/model_optimization/
  • ...雅虎BigML團隊開源大數據分布式深度學習框架TensorFlowOnSpark
    選自雅虎作者:Lee Yang,、Jun Shi、 Bobbie Chern、 Andy Feng機器之心編譯參與:杜夏德、朱思穎雅虎 Big ML 團隊今日宣布開源 TensorFlowOnSpark,用於在大數據集群上進行分布式深度學習。下面是該團隊官方發布的開源說明。近幾年,深度學習發展的非常迅速。
  • 自動生成代碼:TensorFlow工具TF-Coder開源
    最近,谷歌 TensorFlow 開源了一個幫助開發者寫 TensorFlow 代碼的程序合成工具 TF-Coder。項目地址:https://github.com/google-research/tensorflow-coderGoogle Colab
  • TensorFlow Agents日前開源,輕鬆在TF中構建並行強化學習算法
    TensorFlow Agents日前開源,這個項目是由谷歌的兩位研究員James Davidson、Vincent Vanhoucke,以及Danijar Hafner共同研發的。關於這個項目的開源信息他們在GitHub上進行了介紹,雷鋒網(公眾號:雷鋒網) AI 科技評論將內容進行編譯整理。TensorFlow AgentsTensorFlow Agents為強化學習提供了優化的基礎架構,它將OpenAI gym接口擴展到多個並行環境,並能在TensorFlow中訓練智能體,進行批量計算。
  • 獨家| TensorFlow 2.0將把Eager Execution變為默認執行模式,你該...
    我們注意到,在兩個月之前剛剛發布的 AutoGraph 已經離開 tf.contrib 成為了正式的 TF 庫的一部分,在設計文檔中,工程師提到,「為了 TF 2.0 做準備,我們將 AutoGraph 從 tensorflow / contrib / autograph 移動到了 tensorflow / python / autograph。
  • 深度解讀TensorFlow,了解它的最新發展!
    在前段時間的TensorFlow峰會上,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。  TensorFlow.js 是一個開源的用於開發機器學習項目的 WebGL-accelerated JavaScript 庫。
  • 人工智慧學習入門之TensorFlow2.2版本安裝(Windows10)
    谷歌的TensorFlow目前已經成為最為流行的人工智慧開源項目。很多公司基於TensorFlow實現自己的人工智慧程序。最新版本的TensorFlow不僅支持Linux作業系統,而且可以支持MacOS和Windows,今天我們就介紹一下如何在Windows10上安裝TensorFlow。
  • 最簡單的深度學習TensorFlow應用舉例!
    小編我的電腦很一般,沒有32G內存,也沒有1080,就windows上直接裝了23333windows+python 3.6+pycharm+tensorflow cpu話不多說,直接線性回歸,上圖。代碼截圖代碼截圖#接下來貼代碼#辰星樹洞import numpy as np #這是Python的一種開源的數值計算擴展,