丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給skura
發(fā)送

0

一圖勝千言: 解讀阿里的Deep Image CTR Model

本文作者: skura 2019-02-22 17:14
導(dǎo)語(yǔ):阿里巴巴論文解讀

雷鋒網(wǎng) AI 科技評(píng)論按:本文作者石塔西,原載于知乎,雷鋒網(wǎng)已獲授權(quán)。

本文是對(duì)阿里的論文《Image Matters: Visually modeling user behaviors using Advanced Model Server》的解讀。

初讀此文的標(biāo)題和摘要,又有 image,又有 CTR,我以為是一種新型的 CNN+MLP 的聯(lián)合建模方法。讀下來(lái)才知道,本文的重點(diǎn)絕不在什么圖像建模上,壓根就沒(méi) CNN 什么事。想像中的像素級(jí)別的建模根本沒(méi)有出現(xiàn),商品的圖片利用網(wǎng)上可下載的預(yù)訓(xùn)練好的 VGG16 模型的某個(gè)中間層壓縮成 4096 維向量,作為 CTR 模型的原始輸入。

而將圖片引入到推薦/搜索領(lǐng)域,也不是什么新鮮事。不說(shuō)論文 Related Works 中提到的工作,我自己就做過(guò)基于圖片的向量化召回,結(jié)構(gòu)與論文圖 4 中的 Pre-Rank DICM 結(jié)構(gòu)很相似,只不過(guò)用戶側(cè)不包含他之前點(diǎn)擊過(guò)的商品圖片罷了,在此略下不表。

沒(méi)有提出新的圖像建模方法,也并非第一次在推薦算法中使用圖片信息,那么此文的創(chuàng)新點(diǎn)到底在哪里?我覺(jué)得,本文的創(chuàng)新點(diǎn)有兩個(gè)創(chuàng)新點(diǎn):

  1. 之前的工作盡管也在推薦/搜索算法中引入了圖片信息,可是那些圖片只用于物料側(cè),用于豐富商品、文章的特征表示。而阿里的這篇論文,是第一次將圖片用于用戶側(cè)建模,基于用戶歷史點(diǎn)擊過(guò)的圖片(user behavior images)來(lái)建模用戶的視覺(jué)偏好。

  2. 接下來(lái)會(huì)看到,將圖片加入到用戶側(cè)建模,理論上并不復(fù)雜,理論上用傳統(tǒng) PS 也可以實(shí)現(xiàn),起碼跑個(gè)實(shí)驗(yàn),發(fā)篇論文應(yīng)該不成問(wèn)題。但是,如果應(yīng)用到實(shí)際系統(tǒng),圖片特征引入的大數(shù)據(jù)量成為技術(shù)瓶頸。為此,阿里團(tuán)隊(duì)為傳統(tǒng) PS 的 server 也增加了「模型訓(xùn)練」功能,并稱新結(jié)構(gòu)為 Advanced Model Server(AMS)

基于歷史點(diǎn)擊圖片建模用戶視覺(jué)偏好

先談一下第一個(gè)「小創(chuàng)新」。之所以說(shuō)其「小」,是因?yàn)?strong>通過(guò)預(yù)訓(xùn)練的 CNN 模型提取特征后,每張圖片用一個(gè)高維(比如 4096)稠密向量來(lái)表示。這些圖片向量,與常見(jiàn)的稀疏 ID 類特征經(jīng)過(guò) embedding 得到的稠密向量,沒(méi)有質(zhì)的區(qū)別(量的區(qū)別,下文會(huì)提到),完全可以復(fù)用以前處理 ID embedding 的方法(如 pooling, attention)來(lái)處理。

Deep Image CTR Model(DICM)的具體結(jié)構(gòu)如下所示:

一圖勝千言: 解讀阿里的Deep Image CTR Model

DICM 架構(gòu)圖

  • 如果只看左邊,就是推薦/搜索中常見(jiàn)的 Embedding+MLP 結(jié)構(gòu)。注意上圖中的 Embedding+MLP 結(jié)構(gòu)只是實(shí)際系統(tǒng)的簡(jiǎn)化版本,實(shí)際系統(tǒng)中可以替換成 Wide&Deep, DIN, DIEN 等這些「高大上」的東西。

  • 假設(shè)一個(gè)滿足要求的圖片 embedding model 已經(jīng) ready,即圖中的 embmodel。商品的縮略圖,經(jīng)過(guò) embmodel 壓縮,得到商品的圖片信息(圖中的粉紅色塊)

  • 右邊部分,負(fù)責(zé)利用圖片建模用戶。將每個(gè)用戶點(diǎn)擊過(guò)的圖片(user behavior image),經(jīng)過(guò) embmodel 進(jìn)行壓縮(圖中的藍(lán)色塊)。它們與商品圖片(ad image)的 embedding 結(jié)果(粉紅色塊)經(jīng)過(guò) attentive pooling 合并成一個(gè)向量(桔色塊)表示用戶的視覺(jué)偏好

  • 將用戶點(diǎn)擊過(guò)的多張圖片的向量(藍(lán)色)合并成一個(gè)向量(桔色),其思路與 Deep Interest Network 基于 attention 的 pooling 機(jī)制大同小異,只不過(guò)要同時(shí)考慮「id 類特征」與「商品圖片」對(duì)用戶歷史點(diǎn)擊圖片的 attention,稱為 MultiQueryAttentivePooling。

  • 第 1 步得到基于 id 特征的 embedding 結(jié)果,與第 2 步得到的商品圖片 (ad image) 的 embedding 結(jié)果(粉紅色),與第 3 步得到的表示用戶興趣偏好的向量(桔紅色),拼接起來(lái),傳入 MLP,進(jìn)行充分的交互

這個(gè)模型的優(yōu)勢(shì)在于:

  • 之前的模型只考慮了傳統(tǒng)的 ID 類特征和物料的圖像信息,這次加入了用戶的視覺(jué)偏好,補(bǔ)齊了一塊信息短板

  • 不僅如此,通過(guò) MLP,將傳統(tǒng)的 ID 類特征、物料的圖像信息、用戶的視覺(jué)偏好進(jìn)行充分交互,能夠發(fā)現(xiàn)更多的 pattern。

  • 基于用戶歷史訪問(wèn)的 item id 來(lái)建模用戶的興趣,始終有「冷啟動(dòng)」問(wèn)題。如果用戶訪問(wèn)過(guò)一個(gè) embedding matrix 中不存在的 item,這部分信息只能損失掉。而基于用戶歷史訪問(wèn)的圖片來(lái)建模,類似于 content-based modeling,商品雖然是新的,但是其使用的圖片與模型之前見(jiàn)過(guò)的圖片卻很相似,從而減輕了「冷啟動(dòng)」問(wèn)題。

綜上可見(jiàn),DICM 的思路、結(jié)構(gòu)都很簡(jiǎn)單。但是,上面的描述埋了個(gè)大伏筆:那個(gè)圖片嵌入模型 embmodel 如何設(shè)計(jì)?沒(méi)有加入圖片、只有稀疏的 ID 類特征時(shí),Embedding+MLP 可以通過(guò) Parameter Server 來(lái)分布式訓(xùn)練?,F(xiàn)在這個(gè) embmodel,是否還可以在 PS 上訓(xùn)練?在回答這個(gè)問(wèn)題之前,讓我們先看看稀疏 ID 特征 Embedding+MLP 在傳統(tǒng)的 PS 上是如何訓(xùn)練的?

稀疏 ID 特征 Embedding+MLP 在傳統(tǒng)的 PS 上是如何訓(xùn)練的?

介紹 PS 的論文、博客汗牛充棟,實(shí)在論不上我在這里炒冷飯,但是,我還是要將我實(shí)踐過(guò)的「基于 PS 訓(xùn)練的 DNN 推薦算法」,在這里簡(jiǎn)單介紹一下,因?yàn)槲矣X(jué)得它與《Scaling Distributed Machine Learning with the Parameter Server》所介紹的「經(jīng)典」PS 還是稍稍有所不同,與同行們探討。

基于 PS 的分布式訓(xùn)練的思想還是很簡(jiǎn)單的:

1.一開(kāi)始是 data parallelism。每臺(tái) worker 只利用本地的訓(xùn)練數(shù)據(jù)前代、回代,計(jì)算 gradient,并發(fā)往 server。Server 匯總(平均)各 worker 發(fā)來(lái)的 gradient,更新模型,并把更新過(guò)的模型同步給各 worker。這里有一個(gè)前提,就是數(shù)據(jù)量超大,但是模型足夠小,單臺(tái) server 的內(nèi)存足以容納。

2.但是,推薦/搜索系統(tǒng)使用超大規(guī)模的 LR 模型,模型參數(shù)之多,已經(jīng)是單臺(tái) server 無(wú)法容納的了。這時(shí) Parameter Server 才應(yīng)運(yùn)而生,它同時(shí)結(jié)合了 data parallelism 與 model parallelism

  • Data parallelism:訓(xùn)練數(shù)據(jù)依然分布地存儲(chǔ)在各臺(tái) worker node 上,各 worker node 也只用本地?cái)?shù)據(jù)進(jìn)行計(jì)算。

  • Model parallelism:一來(lái)模型之大,單臺(tái) server 已經(jīng)無(wú)法容納,所以多臺(tái) server 組成一個(gè)分布式的 key-value 數(shù)據(jù)庫(kù),共同容納、更新模型參數(shù);二來(lái),由于推薦/搜索的特征超級(jí)稀疏,各 worker 上的訓(xùn)練數(shù)據(jù)只涵蓋了一部分特征,因此每個(gè) worker 與 server 之間也沒(méi)有必要同步完整模型,而只需要同步該 worker 的本地訓(xùn)練數(shù)據(jù)所能夠涵蓋的那一部分模型。

所以按照我的理解,PS 最擅長(zhǎng)的是訓(xùn)練稀疏數(shù)據(jù)集上的算法,比如超大規(guī)模 LR 的 CTR 預(yù)估。但是,基于 DNN 的推薦/搜索算法,常見(jiàn)模式是稀疏 ID 特征 Embedding+MLP,稍稍有所不同

1.稀疏 ID 特征 Embedding,是使用 PS 的理想對(duì)象:超大的 embedding 矩陣已經(jīng)無(wú)法容納于單臺(tái)機(jī)器中,需要分布式的 key-value 數(shù)據(jù)庫(kù)共同存儲(chǔ);數(shù)據(jù)稀疏,各 worker 上的訓(xùn)練數(shù)據(jù)只涵蓋一部分 ID 特征,自然也只需要和 server 同步這一部分 ID 的 embedding 向量。

2.MLP 部分,稍稍不同

  • 和計(jì)算機(jī)視覺(jué)中動(dòng)輒幾百層的深網(wǎng)絡(luò)相比,根據(jù)我的經(jīng)驗(yàn),縱使工業(yè)級(jí)別的推薦/搜索算法,MLP 也就是 3~4 層而已,否則就有過(guò)擬合的風(fēng)險(xiǎn)。這等「小淺網(wǎng)絡(luò)」可以容納于單臺(tái)機(jī)器的內(nèi)存中,不需要分布式存儲(chǔ)。

  • 與每臺(tái) worker 只需要與 server 同步本地所需要的部分 embedding 不同,MLP 是一個(gè)整體,每臺(tái) worker 都需要與 server 同步完整 MLP 的全部參數(shù),不會(huì)只同步局部模型。

所以,在我的實(shí)踐中

  • 稀疏 ID 特征 Embedding,就是標(biāo)準(zhǔn)的 PS 做法,用 key-value 來(lái)存儲(chǔ)。Key 就是 id feature,value 就是其對(duì)應(yīng)的 embedding 向量;

  • MLP 部分,我用一個(gè) KEY_FOR_ALL_MLP 在 server 中存儲(chǔ) MLP 的所有參數(shù)(一個(gè)很大,但單機(jī)足以容納的向量),以完成 worker 之間對(duì) MLP 參數(shù)的同步。

實(shí)際上,對(duì) Embedding 和 MLP 不同特性的論述,在《Deep Interest Network for Click-Through Rate Prediction》中也有所論述。阿里的 X-DeepLearning 平臺(tái)

  • 用 Distributed Embedding Layer 實(shí)現(xiàn)了分布式的 key-value 數(shù)據(jù)庫(kù)來(lái)存儲(chǔ) embedding。應(yīng)該是標(biāo)準(zhǔn)的 PS 做法。

  • 用 Local Backend 在單機(jī)上訓(xùn)練 MLP。如何實(shí)現(xiàn)各 worker(i.e., local backend)的 MLP 的同步?是否和我的做法類似,用一個(gè) key 在 server 上存儲(chǔ) MLP 的所有參數(shù)?目前尚不得而知,還需要繼續(xù)研究。

加入圖片特征后,能否繼續(xù)在 PS 上訓(xùn)練?

按原論文的說(shuō)法,自然是不能,所以才提出了 AMS。一開(kāi)始,我以為」PS 不支持圖片」是「質(zhì)」的不同,即 PS 主要針對(duì)稀疏特征,而圖片是稠密數(shù)據(jù)。但是,讀完文章之后,發(fā)現(xiàn)之前的想法是錯(cuò)誤的,稀疏 ID 特征與圖片特征在稀疏性是統(tǒng)一的。

  • 某個(gè) worker node 上訓(xùn)練樣本集,所涵蓋的 item id 與 item image,只是所有 item ids/images 的一部分,從這個(gè)角度來(lái)說(shuō),item id/image 都是稀疏的,為使用 PS 架構(gòu)提供了可能性

  • item image 經(jīng)過(guò) pre-trained CNN model 預(yù)處理,參與 DICM 訓(xùn)練時(shí),已經(jīng)是固定長(zhǎng)度的稠密向量。Item id 也需要 embedding 成稠密向量。從這個(gè)角度來(lái)說(shuō),item id/image 又都是稠密的

正因?yàn)?strong>稀疏 ID 特征與圖片特征,本質(zhì)上沒(méi)有什么不同,因此 PS 無(wú)須修改,就可以用于訓(xùn)練包含圖片特征的 CTR 模型(起碼理論上行得通),就是文中所謂的 store-in-server 模式。

  • 圖片特征存入 PS 中的 server,key 是 image index,value 是經(jīng)過(guò) VGG16 提取出來(lái)的稠密向量

  • 訓(xùn)練數(shù)據(jù)存放在各 worker 上,其中圖片部分只存儲(chǔ) image index

  • 訓(xùn)練中,每個(gè) worker 根據(jù)各自本地的訓(xùn)練集所包含的 image index,向 server 請(qǐng)求各自所需的 image 的 embedding,訓(xùn)練自己的 MLP

一切看上去很美好,直到我們審視 VGG16 提取出來(lái)的 image embedding 到底有多長(zhǎng)?

  • 原論文中提到,經(jīng)過(guò)試驗(yàn),阿里團(tuán)隊(duì)最終選擇了 FC6 的輸出,是一個(gè) 4096 長(zhǎng)的浮點(diǎn)數(shù)向量。而這僅僅是一張圖片,每次迭代中,worker/server 需要通信的數(shù)據(jù)量是 mini-batch size * 單用戶歷史點(diǎn)擊圖片數(shù) (i.e., 通常是幾十到上百) * 4096 個(gè)浮點(diǎn)數(shù)。按照原論文中 table 2 的統(tǒng)計(jì),那是 5G 的通訊量。

  • 而一個(gè) ID 特征的 embedding 才用 12 維的向量來(lái)表示。也就是說(shuō),引入 image 后,通訊量增長(zhǎng)了 4096/12=341 倍。

(或許有心的讀者問(wèn),既然 4096 的 image embedding 會(huì)造成如此大的通訊壓力,那為什么不選擇 vgg16 中小一些層的輸出呢?因?yàn)?vgg16 是針對(duì) ImageNet 訓(xùn)練好的,而 ImageNet 中的圖片與淘寶的商品圖片還是有不小的差距(淘寶的商品圖片應(yīng)該很少會(huì)出現(xiàn)海象與鴨嘴獸吧),因此需要提取出來(lái)的 image embedding 足夠長(zhǎng),以更好地保留一些原始信息。原論文中也嘗試過(guò)提取 1000 維的向量,性能上有較大損失。)

正是因?yàn)樵紙D片 embedding 太大了,給通信造成巨大壓力,才促使阿里團(tuán)隊(duì)在 server 上也增加了一個(gè)「壓縮」模型,從而將 PS 升級(jí)為 AMS。

AMS 的技術(shù)細(xì)節(jié),將在下一節(jié)詳細(xì)說(shuō)明。這里,我覺(jué)得需要強(qiáng)調(diào)一下,由于加入圖片而需要在 AMS,而不是 PS 上訓(xùn)練,這個(gè)變化是「量」變引起的,而不是因?yàn)樵瓉?lái)的 ID 特征與圖片這樣的多媒體特征在「質(zhì)」上有什么不同。比如,在這個(gè)例子中,

  • 使用 AMS 是因?yàn)?image 的原始 embedding 由 4096 個(gè)浮點(diǎn)數(shù)組成,太大了

  • 之所以需要 4096 個(gè)浮點(diǎn)數(shù),是因?yàn)?vgg16 是針對(duì) ImageNet 訓(xùn)練的,與淘寶圖片相差較大,所以需要保留較多的原始信息

  • 如果淘寶專門訓(xùn)練一個(gè)針對(duì)商品圖片的分類模型,那么就有可能拿某個(gè)更接近 loss 層、更小的中間層的輸出作為 image embedding

  • 這樣一來(lái),也就沒(méi)有通信壓力了,也就無(wú)需 server 上的「壓縮」模型了,傳統(tǒng)的 PS 也就完全可以勝任了。

所以,AMS 并不應(yīng)該是接入多媒體特征后的唯一選擇,而 AMS 也不僅僅是針對(duì)多媒體特征才有用。應(yīng)該說(shuō),AMS 應(yīng)該是針對(duì)「embedding 過(guò)大、占有過(guò)多帶寬」的解決方案之一。

Advanced Model Server(AMS)架構(gòu)

上一節(jié)講清楚了,AMS 是為了解決「image 的原始 embedding 過(guò)大,造成太大通信壓力」的問(wèn)題而提出的。在這一節(jié)里,我們來(lái)看看 AMS 是如何解決這一問(wèn)題的。

AMS 的解決方案也很簡(jiǎn)單:

  • 為每個(gè) server 增加一個(gè)可學(xué)習(xí)的「壓縮」模型(論文中的 sub-model,其實(shí)就是一個(gè) 4096-256-64-12 的金字塔型的 MLP

  • 當(dāng) worker 向 server 請(qǐng)求 image embedding 時(shí),server 上的「壓縮」模型先將原始的 4096 維的 image embedding 壓縮成 12 維,再傳遞給 worker,從而將通訊量減少到原來(lái)的 1/340

  • 該「壓縮」模型的參數(shù),由每個(gè) server 根據(jù)存在本地的圖片數(shù)據(jù)學(xué)習(xí)得到,并且在一輪迭代結(jié)束時(shí),各 server 上的「壓縮」模型需要同步。

每個(gè) server 上都有這樣一個(gè)這個(gè)可學(xué)習(xí)的「壓縮」模型,要能夠利用存放在本地的數(shù)據(jù)(這里就是 4096 長(zhǎng)的 image 原始 embedding)前代、回代、更新權(quán)重,并且各 server 的模型還需要同步,簡(jiǎn)直就是 worker 上模型的翻版。將 worker 的「訓(xùn)練模型」的功能復(fù)制到 server,這也就是 Advanced Model Server 相比于傳統(tǒng) Parameter Server 的改進(jìn)之處。

AMS 是本文最大的創(chuàng)新點(diǎn)。本來(lái)還想再費(fèi)些筆墨詳細(xì)描述,最后發(fā)現(xiàn)不過(guò)是對(duì)原論文 4.2 節(jié)的翻譯,白白浪費(fèi)篇幅罷了,請(qǐng)讀者移步原論文。其實(shí),當(dāng)你明白了 AMS 要解決什么樣的問(wèn)題,那么原論文中的解決方案,也就是一層窗戶紙罷了,簡(jiǎn)單來(lái)說(shuō),就是將 worker 上的模型前代、回代、更新、同步代碼移植到 server 端罷了。最后加上原論文中的圖 2,以做備忘。

一圖勝千言: 解讀阿里的Deep Image CTR Model

AMS 交互流程

總結(jié)

以上就是我對(duì) Deep Image CTR Model(DICM)兩個(gè)創(chuàng)新點(diǎn)的理解。根據(jù)原論文,無(wú)論是離線實(shí)驗(yàn)還是線上 AB 測(cè)試,DICM 的表現(xiàn)都比不考慮用戶視覺(jué)偏好的老模型要更加優(yōu)異。DICM 開(kāi)啟了在推薦系統(tǒng)中引入多媒體特征的新篇章。

小結(jié)一下 DICM 的成就與思路:

  • DICM,第一次將圖片信息引入到用戶側(cè)建模,通過(guò)用戶歷史上點(diǎn)擊過(guò)的圖片(user behavior images)建模用戶的視覺(jué)偏好,而且將傳統(tǒng)的 ID 類特征、物料的圖像信息、用戶的視覺(jué)偏好進(jìn)行充分交互,能夠發(fā)現(xiàn)更多的 pattern,也解決了只使用 ID 特征而帶來(lái)的冷啟動(dòng)問(wèn)題。

  • 但是,引入 user behavior images 后,由于 image 原始 embedding 太大,給分布式訓(xùn)練時(shí)的通信造成了巨大壓力。為此,阿里團(tuán)隊(duì)通過(guò)給每個(gè) server 增加一個(gè)可學(xué)習(xí)的「壓縮」模型,先壓縮 image embedding 再傳遞給 worker,大大降低了 worker/server 之間的通信量,使 DICM 的效率能夠滿足線上系統(tǒng)的要求。這種為 server 增加「模型訓(xùn)練」功能的 PS,被稱為 AMS。

最后,還應(yīng)該強(qiáng)調(diào),引發(fā) PS 升級(jí)到 AMS 的驅(qū)動(dòng)力,是「量變」而不是「質(zhì)變」。圖片之類的多媒體特征,既不是 AMS 的唯一用武之地,也不應(yīng)是 AMS 壟斷的專利。選擇哪種訓(xùn)練架構(gòu),需要我們根據(jù)業(yè)務(wù)、數(shù)據(jù)的特點(diǎn)做出判斷,切忌迷信「銀彈」。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

一圖勝千言: 解讀阿里的Deep Image CTR Model

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)