详解TF-Ranking:Google开源的排序框架,应用于邮件检索、推荐系统等场景
今天分享的是一個有關(guān)LTR框架的介紹,LTR是Learning-To-Rank,解決的是排序問題。排序問題在人工智能領(lǐng)域應用很廣,比如在Gmail里搜索一個關(guān)鍵詞,返回最匹配的郵件。再比如進入Google Drive后的一些文章推薦。
傲海的分享主要參考Google2019年發(fā)布的一篇論文《TF-Ranking:Scalable TensorFlow Library for Learning-to-Rank》,蠻長的,看了小一周才學習完。這個庫已經(jīng)開源了,大家可以在下方地址訪問并使用:
https://github.com/tensorflow/ranking
LTR三種模式:Pointwise、Pairwise、Listwise
介紹LTR的話先要講下Pointwise、Pairwise、Listwise這三個模式的區(qū)別,以生活中的一個例子說明:
上圖是一個點餐界面,假設(shè)我們強制用戶只能在界面中點一個菜,那么Pointwise、Pairwise、Listwise是如何構(gòu)建訓練過程的呢:
-
Pointwise:只關(guān)心單點的優(yōu)化,比如用戶點了排骨。那么就把排骨構(gòu)建成正樣本,其它菜都是負樣本,構(gòu)建成一個二分類問題,進行訓練。Pointwise的問題在于缺少對整個列表的關(guān)系屬性的挖掘
-
Pairwise:把優(yōu)化問題看作兩個樣本的組合,訓練的時候輸入的是兩個樣本的特征組合,返回值比較高的樣本
-
Listwise:把整個序列看作一個訓練樣本進行優(yōu)化,Listwise也是目前比較好的一種推薦場景訓練模式,因為它會完全考慮所有樣本的關(guān)聯(lián)屬性。比方說我點了紅燒肉,那么排骨也可能是我喜歡的即使我沒點,這種潛在的屬性挖掘用Listwise更合理
Pointwise、Pairwise、Listwise的訓練模式的不同主要會影響訓練中使用的Metrics評價方法,也就是DCG、NDCG等,這里就不展開說。
TF-LTR Architecture工程框架
大部分同學可能還是偏應用層,所以廢話不多,直接介紹TF-LTR的框架。
?
TF里面LTR框架把整個排序流程分為Training和Serving兩個部分,其中包含input_fn、transform_fn、scoring_fn、ranking head這幾個大的模塊,下面就分別介紹下。
1.input_fn
input_fn是一個數(shù)據(jù)IO的框架,這個框架可以從存儲空間拉取數(shù)據(jù),也可以從進程中直接讀取。兼容了Libsvm、tf.sequence等數(shù)據(jù)格式,也可以自定義。
有一個定義挺有意思的,他把per item feature定義叫做3-D tensor,就是這樣的三元組(queries,items,feature)。context feature定義叫做2-D tensor,是個二元組(queries,feature)。PS:這個可以用到以后寫架構(gòu)PPT里面,看上去很專業(yè)的樣子。
2.transform_fn
這一步驟做的是特征轉(zhuǎn)換,把sparse feature轉(zhuǎn)換成dense feature??傊?#xff0c;特征embedding就得了,想辦法把特征給embedding了。
3.scoring_fn
定義打分規(guī)則,在training和predicting的過程中用這個函數(shù)進行打分。官方給的例子挺奇怪,為啥打分函數(shù)要這么復雜--
4.ranking模塊
首先要定義ranking loss和ranking metric,這也是模型訓練的最基本流程,按照Pointwise、Pairwise、Listwise的不同模式在這里配置metric函數(shù)就好了。
ranking模塊的輸入是scoring_fn的分數(shù)以及真實的客戶行為label,根據(jù)這兩個反饋計算loss,根據(jù)metric不斷迭代模型,最終實現(xiàn)收斂。
總結(jié)一下
TensorFlow在向業(yè)務層不斷貢獻各種開源庫,把整個人工智能應用領(lǐng)域的門檻降低,這是個挺好的現(xiàn)象,后續(xù)如果做推薦或者文章檢索可以考慮使用TF-LTR庫試試。
總結(jié)
以上是生活随笔為你收集整理的详解TF-Ranking:Google开源的排序框架,应用于邮件检索、推荐系统等场景的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google AutoML最新技术解析:
- 下一篇: 浅析人类最贵、最大的机器学习模型GPT-