簡單介紹 TF-Ranking

本文為 AI 研習社編譯的技術博客,原標題 :

Introducing TF-Ranking

作者 | Jesus Rodriguez

翻譯 | Lemon_Sophia         

校對 | 鄧普斯•傑弗        審核 | 醬番梨       整理 | 立魚王

原文鏈接:

https://towardsdatascience.com/introducing-tf-ranking-f94433c33ff

排序是機器學習場景中最常見的問題之一。從搜索到推薦系統,排名模型是許多主流機器學習體系結構的重要組成部分。在機器學習理論中,排序方法通常使用像learning-to-rank(LTR)或machine learning ranking機器學習排序(LTR)這樣的術語。儘管具有相關性,但是在大多數機器學習框架中,大規模開發LTR模型仍然是一個挑戰。最近,來自谷歌的人工智能(AI)工程師引入了TF-Ranking,這是一個基於TensorFlow的框架,用於構建高度可伸縮的LTR模型。幾周前發表的一篇研究論文詳細闡述了TF-Ranking背後的原則。

從概念上講,排序問題定義為對一組樣本(或示例)進行排序的派生,這些示例可以最大化整個列表的效用。這個定義聽起來類似於分類和回歸問題,但排序問題從根本上是不同的。分類或回歸的目標是儘可能準確地預測每個示例的標籤或值,而排序的目標是對整個示例列表進行優化排序,以便最先顯示相關度最高的示例。為了推斷相關性,LTR方法嘗試學習一個評分函數(valued scores),該函數將示例特徵向量映射到標記數據的實值評分(real-valued scores)。 

這種簡單的體系結構已經成為大多數排名算法以及RankLib或LightGBM等庫的基礎。雖然這些庫提供了有效的排序方法,但它們是針對小型數據集實現的,這使得它們在依賴於大量訓練數據的實際場景中不切實際 。除此之外,現有的LTR庫還沒有為在深度學習場景中常見的稀疏和多維數據集而設計。 

現有LTR stacks(LTR棧)的局限性使得LTR方法在深度學習場景中的實現越來越複雜。由於缺乏對主流深度學習框架(如TensorFlow、MxNet、PyTorch或Caffe2)中的排名模型的支持,這個問題變得愈加嚴峻。 


  進入 TF-Ranking

TF-Ranking是一個基於tensorflow的框架,它支持在深度學習場景中實現TLR方法。該框架包括實現流行的TLR技術,如成對pairwise或列表listwise損失函數、多項目評分、排名指標優化和無偏學習排名。

TF-Ranking的實現非常複雜,但使用起來也非常簡單。該實現的核心組件是一個model_fn函數,它接受特徵和標籤作為輸入,並根據模式(TRAIN、EVAL、PREDICT)返回損失、預測、度量指標和訓練操作。使用TF-Ranking構建model_fn函數是基於兩個基本組件的組合: 評分函數(scoring function)和排名頭(ranking head)。

  • Scoring Function評分函數: TF-Ranking支持單項和多項評分功能。單項評分函數可以用函數F(X) = [F(x1);f (x2);:::;f(xn)],其中輸入表示單個示例的特徵,並計算一個分數作為輸出。多項目評分函數擴展了一組示例的這種結構。TF-Ranking將每個示例列表分割成若干張量,張量的形狀為[batch_size, group_size, feature_size]。從上面的代碼示例中可以看到,評分函數是一個用戶指定的閉包,它傳遞給了這個排名model_fn構建器。

  • Ranking Head排名頭: TF-Ranking使用一個針對特定指標的排名頭和排名邏輯的損失。從概念上講,排名頭結構計算排名指標和排名損失,給出分數、標籤和可選的示例權重。通過編程的方式,排名頭通過工廠方法tf .head.create_ranking_head公開。


   使用TF-Ranking

從編程的角度來看,TF-Ranking實現了TensorFlow Estimator接口,該接口抽象了機器學習應用程序生命周期的不同方面,比如訓練、評估、預測和模型服務。使用TF-Ranking的經驗如下面的代碼所示。

除了編程簡單之外,TF-Ranking還集成了TensorFlow生態系統的其他部分。使用TF-Rankign開發的模型可以使用TensorBoard工具集進行可視化評估,如下圖所示。


   TF-Ranking在現實世界中的應用 

谷歌在兩個關鍵任務場景中評估了 TF-Ranking: 對存儲在谷歌驅動器中的文檔進行Gmail搜索和推薦。在Gmail搜索場景中,使用TF-Ranking對匹配特定用戶查詢的五個結果進行排序。用戶點擊等指標被用作排名的相關標籤。不同排序模型的結果如下矩陣所示。


在谷歌驅動器場景中,TF-Ranking用於實現一個推薦引擎,該引擎在用戶訪問驅動器主屏時顯示當前相關的文檔。與Gmail場景類似,推薦系統會考慮用戶點擊量來重新評估排名模型。結果如下矩陣所示。

TF-Ranking是對TensorFlow堆棧的一個很好的補充。不同於它的前身。TF-Ranking針對需要大型數據集的模型進行了優化,並基於TensorFlow估計器提供了非常簡單的開發人員體驗。包含示例和教程的TF-Ranking代碼可以在GitHub上找到。

想要繼續查看該篇文章相關鏈接和參考文獻?

點擊【簡單介紹 TF-Ranking】或長按下方地址:雷鋒網雷鋒網雷鋒網

https://ai.yanxishe.com/page/TextTranslation/1342

AI入門、大數據、機器學習免費教程

35本世界頂級原本教程限時開放,這類書單由知名數據科學網站 KDnuggets 的副主編,同時也是資深的數據科學家、深度學習技術愛好者的Matthew Mayo推薦,他在機器學習和數據科學領域具有豐富的科研和從業經驗。

點擊鏈接即可獲取:https://ai.yanxishe.com/page/resourceDetail/417



想在手機閱讀更多電腦與科技資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems