發(fā)布人:Google Research 軟件工程師 Michael Bendersky 和 Xuanhui Wang
2018 年 12 月,我們推出了 TF-Ranking,這是一個(gè)基于 TensorFlow 的開源代碼庫,用于開發(fā)可擴(kuò)容的 learning-to-rank (LTR) 神經(jīng)模型。當(dāng)用戶期望收到有序的項(xiàng)目列表來輔助查詢時(shí),該模型可以發(fā)揮出色作用。LTR 模型與一次只對一個(gè)項(xiàng)目進(jìn)行分類的標(biāo)準(zhǔn)分類模型不同,它會將整個(gè)項(xiàng)目列表接收輸入,并學(xué)習(xí)排序,充分提升整個(gè)列表的效用。
TF-Ranking
https://github.com/tensorflow/ranking
雖然 LTR 模型最常用于搜索和推薦系統(tǒng),但自其發(fā)布以來,我們已經(jīng)看到 TF-Ranking 在除搜索以外的各領(lǐng)域,均有應(yīng)用,其中包括電子商務(wù)、SAT 求解器和智能城市規(guī)劃等。
Learning-to-rank (LTR) 的目標(biāo)是學(xué)習(xí)一個(gè)函數(shù) f(),該函數(shù)會以項(xiàng)目列表(文件、產(chǎn)品、電影等)作為輸入,并以最佳排序(相關(guān)性降序)輸出項(xiàng)目列表。上圖中,深淺不一的綠色表示項(xiàng)目的相關(guān)性水平,標(biāo)有 “x” 的紅色項(xiàng)目是不相關(guān)的
電子商務(wù)
https://dl.acm.org/doi/abs/10.1145/3308560.3316603
SAT 求解器
https://arxiv.org/abs/1904.12084
智能城市規(guī)劃
https://dl.acm.org/doi/abs/10.1145/3450267.3450538
2021 年 5 月,我們發(fā)布了 TF-Ranking 的一個(gè)重要版本,實(shí)現(xiàn)了全面支持使用 Keras(TensorFlow 2 的一個(gè)高階 API),以原生方式構(gòu)建 LTR 模型。我們?yōu)樵?Keras 排序模型加入了全新的工作流設(shè)計(jì),其中包括靈活的 ModelBuilder、用于設(shè)置訓(xùn)練數(shù)據(jù)的 DatasetBuilder, 以及利用給定數(shù)據(jù)集訓(xùn)練模型的 Pipeline。有了這些組件,構(gòu)建自定義 LTR 模型會比以往更輕松,且有利于快速探索、生產(chǎn)和研究的新的模型結(jié)構(gòu)。如果您選擇的工具是 RaggedTensors,TF-Ranking 現(xiàn)在也可以和這些工具協(xié)作。
重要版本
https://github.com/tensorflow/ranking/releases/tag/v0.4.0
TensorFlow 2
http://tensorflow.google.cn/
也
https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/examples/keras/antique_ragged.py
此外,我們在最新版本中結(jié)合了 Orbit 訓(xùn)練庫,其中包含了許多進(jìn)展成果,而這些成果正是近兩年半內(nèi),神經(jīng) LTR 研究結(jié)晶。下面我們分享一下 TF-Ranking 最新版本中的一些重要改進(jìn)。
構(gòu)建和訓(xùn)練原生 Keras 排序模型的工作流。藍(lán)色模塊由 TF-Ranking 提供,綠色模塊支持自定義
最新版本
https://github.com/tensorflow/ranking/releases/tag/v0.4.2
Orbit
https://github.com/tensorflow/models/tree/master/orbit
利用 TFR-BERT 的
Learning-to-Rank
最近,BERT 之類的預(yù)訓(xùn)練語言模型在各種語言理解任務(wù)中性能表現(xiàn)突出。為利用這些模型,TF-Ranking 實(shí)現(xiàn)了一個(gè)新穎的 TFR-BERT 架構(gòu)——通過結(jié)合 BERT 與 LTR 的優(yōu)勢,來優(yōu)化列表輸入的排序過程。舉個(gè)例子,假設(shè)有一個(gè)查詢和一個(gè)由 n 個(gè)文件組成的列表,而人們想要在對此查詢響應(yīng)中的文件進(jìn)行排序。LTR 模型并不會為每個(gè) 《query, document》 學(xué)習(xí)獨(dú)立的 BERT 表示,而是會應(yīng)用一個(gè)排序損失來共同學(xué)習(xí) BERT 表示,充分提升整個(gè)排序列表相對于參照標(biāo)準(zhǔn)標(biāo)簽的效用。
這個(gè)過程如下圖所示。首先,我們把查詢響應(yīng)中需要排序的 n 個(gè)文件組成的列表扁平化為一個(gè) 《query, document》 元組列表。把這些元組反饋至預(yù)訓(xùn)練的語言模型(例如 BERT)。然后用 TF-Ranking 中的專用排序損失,對整個(gè)文件列表的池化 BERT 輸出進(jìn)行聯(lián)合微調(diào)。
排序損失
https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/python/losses.py
結(jié)果表明,這種 TFR-BERT 架構(gòu)在預(yù)訓(xùn)練的語言模型性能方面有了明顯改善,因此,可以在執(zhí)行多個(gè)熱門排序任務(wù)時(shí)體現(xiàn)出十分優(yōu)越的性能。若將多個(gè)預(yù)訓(xùn)練的語言模型組合在一起,則效果更為突出。我們的用戶現(xiàn)在可以通過這個(gè)簡單的例子完成 TFR-BERT 入門。
TFR-BERT 架構(gòu)的說明,在這個(gè)架構(gòu)中,通過使用單個(gè) 《query, document》 對的 BERT 表示,在包含 n 個(gè)文件的列表上構(gòu)建了一個(gè)聯(lián)合 LTR 模型
多個(gè)熱門
https://arxiv.org/abs/2010.00200
簡單的例子
https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/examples/keras/tfrbert_antique_train.py
具有可解釋性的
Learning-to-Rank
透明度和可解釋性是在排序系統(tǒng)中部署 LTR 模型的重要因素,在貸款資格評估、廣告定位或指導(dǎo)醫(yī)療決定等過程中,用戶可以利用這些系統(tǒng)來確定結(jié)果。在這種情況下,每個(gè)單獨(dú)的特征對最終排序的貢獻(xiàn)應(yīng)具有可檢查性和可理解性,以此確保結(jié)果的透明度、問責(zé)制和公正性。
實(shí)現(xiàn)這一目標(biāo)的可用方法之一是使用廣義加性模型 (Generalized additive model,GAM),這是一種具有內(nèi)在可解釋性的機(jī)器學(xué)習(xí)模型,由唯一特征的平滑函數(shù)線性組合而成。然而,我們雖然已經(jīng)在回歸 (Regression analysis) 和分類任務(wù)方面對 GAM 進(jìn)行了廣泛的研究,但將其應(yīng)用于排序設(shè)置的方法卻并不明確。舉個(gè)例子,雖然可以直接利用 GAM 對列表中的每個(gè)單獨(dú)項(xiàng)目進(jìn)行建模,然而對項(xiàng)目的相互作用和這些項(xiàng)目的排序環(huán)境進(jìn)行建模,仍是一個(gè)更具挑戰(zhàn)性的研究問題。為此,我們開發(fā)了神經(jīng)排序 GAM,這是可為排序問題的廣義加性模型所用的擴(kuò)展程序。
神經(jīng)排序 GAM
https://arxiv.org/abs/2005.02553
與標(biāo)準(zhǔn)的 GAM 不同,神經(jīng)排序 GAM 可以同時(shí)考慮到排序項(xiàng)目和背景特征(例如查詢或用戶資料),從而得出一個(gè)可解釋的緊湊模型。這同時(shí)確保了各項(xiàng)目級別特征與背景特征的貢獻(xiàn)具有可解釋性。例如,在下圖中,使用神經(jīng)排序 GAM 可以看到在特定用戶設(shè)備的背景下,距離、價(jià)格和相關(guān)性是如何對酒店最終排序作出貢獻(xiàn)的。目前,神經(jīng)排序 GAM 現(xiàn)已作為 TF-Ranking 的一部分發(fā)布。
為本地搜索應(yīng)用神經(jīng)排序 GAM 的示例。對于每個(gè)輸入特征(例如價(jià)格、距離),子模型會產(chǎn)生可以檢查的子分?jǐn)?shù),支持公開查看。背景特征(例如用戶設(shè)備類型)可以用于推算子模型的重要性權(quán)重
發(fā)布
https://github.com/tensorflow/ranking/issues/202
神經(jīng)排序還是梯度提升?
神經(jīng)模型雖然在多個(gè)領(lǐng)域展現(xiàn)出了十分優(yōu)越的性能,但 LambdaMART 之類的專門梯度提升決策樹 (Gradient Boosted Decision Trees, GBDT) 仍然是利用各種開放 LTR 數(shù)據(jù)集時(shí)的性能標(biāo)桿。GBDT 在開放數(shù)據(jù)集中的成功可歸結(jié)于幾個(gè)原因。首先,由于其規(guī)模相對較小,神經(jīng)模型在這些數(shù)據(jù)集上容易過度擬合 (Overfitting)。其次,由于 GBDT 使用決策樹對其輸入特征空間進(jìn)行劃分,它們自然更能適應(yīng)待排序數(shù)據(jù)的數(shù)值尺度變化,這些數(shù)據(jù)通常包含具有 Zipfian (Zipf‘s law) 或其他偏斜分布的特征。然而,GBDT 在更為現(xiàn)實(shí)的排序場景中確實(shí)有其局限性,這些場景往往同時(shí)包含文本和數(shù)字特征。舉個(gè)例子,GBDT 不能直接應(yīng)用于像原始文檔文本這種,較大的離散特征空間。一般來說,它們的可擴(kuò)容性也要弱于神經(jīng)排序模型。
因此,自 TF-Ranking 發(fā)布以來,我們團(tuán)隊(duì)大大加深了對于神經(jīng)模型在數(shù)字特征排序中優(yōu)勢的理解。。最能充分體現(xiàn)出這種理解的是,ICLR 2021 的一篇論文中所描述的數(shù)據(jù)增強(qiáng)自覺潛在交叉 (DASALC) 模型,該模型首次在開放 LTR 數(shù)據(jù)集上建立了與強(qiáng)大的、與 LambdaMART 基線相同的神經(jīng)排序模型,并且在某些方面取得了統(tǒng)計(jì)學(xué)上的重大改進(jìn)。這一成就是通過各種技術(shù)的組合實(shí)現(xiàn)的,其中包括數(shù)據(jù)增強(qiáng)、神經(jīng)特征轉(zhuǎn)換、用于建模文檔交互的自注意機(jī)制、列表式排序損失,以及類似 GBDT 中用于提升的模型組合。現(xiàn)在 DASALC 模型的架構(gòu)完全由 TF-Ranking 庫實(shí)現(xiàn)。
ICLR 2021
https://research.google/pubs/pub50030/
結(jié)論
總而言之,我們相信基于 Keras 的 TF-Ranking 新版本能夠讓開展神經(jīng) LTR 研究和部署生產(chǎn)級排序系統(tǒng)變得更加輕松。我們鼓勵大家試用最新版本,并按照這個(gè)引導(dǎo)例子進(jìn)行實(shí)踐體驗(yàn)。雖然這個(gè)新版本讓我們感到非常激動,但我們的研發(fā)之旅遠(yuǎn)未結(jié)束,所以我們將繼續(xù)深化對 learning-to-rank 問題的理解,并與用戶分享這些進(jìn)展。
最新版本
https://github.com/tensorflow/ranking/releases/tag/v0.4.0
這個(gè)引導(dǎo)例子
https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/examples/keras/keras_dnn_tfrecord.py
致謝
本項(xiàng)目的實(shí)現(xiàn)離不開 TF-Ranking 團(tuán)隊(duì)的現(xiàn)任和前任成員:Honglei Zhuang、?Le Yan、Rama Pasumarthi、Rolf Jagerman、Zhen Qin、Shuguang Han、Sebastian Bruch、Nathan Cordeiro、Marc Najork 和 Patrick McGregor。另外要特別感謝 Tensorflow 團(tuán)隊(duì)的協(xié)作者:Zhenyu Tan、Goldie Gadde、Rick Chao、Yuefeng Zhou?、Hongkun Yu 和 Jing Li。
責(zé)任編輯:haq
-
模型
+關(guān)注
關(guān)注
1文章
3520瀏覽量
50419 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70729 -
tensorflow
+關(guān)注
關(guān)注
13文章
330瀏覽量
61178
原文標(biāo)題:TF-Ranking 中的 Keras API 讓 LTR 模型構(gòu)建更輕松
文章出處:【微信號:yingjiansanrenxing,微信公眾號:硬件三人行】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
新穎實(shí)用電子設(shè)計(jì)與制作
MCU采用STM32F407VGT6文件存在TF卡(SDIO),能否通過F4的USB把TF卡的txt和excel文件拷貝到U盤?
ElfBoard技術(shù)貼|如何通過TF卡啟動ELF 2學(xué)習(xí)板

tf卡與云存儲的比較 tf卡的兼容性問題
tf卡存儲容量選擇 tf卡的常見故障及解決方法
TF卡的安全性與加密技術(shù)
TF卡在安防監(jiān)控中的應(yīng)用
使用TF卡的常見問題
TF卡使用注意事項(xiàng)
TF卡適用于哪些設(shè)備
TF卡與SD卡的區(qū)別
MK米客方德存儲卡:TF卡與SD卡的詳細(xì)解讀

M8020A J-BERT 高性能比特誤碼率測試儀
AWG和BERT常見問題解答
MK米客方德TF卡:高速存儲與低功耗設(shè)計(jì)的最佳選擇

評論