向量召回 MIND多兴趣双塔模型
熟悉雙塔的人都知道,在用戶側(cè),模型最后往往都生成一個向量去檢索,這個向量不足以表達(dá)用戶的多興趣,《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall》這篇就提出了一個label-aware attention把用戶表達(dá)為多個興趣。
左圖展示了天貓給上億用戶個性化的推薦,右圖展示了商品豐富的品類,我們肯定不希望最近買了個iphone12,打開天貓,一整面的手機(jī)配件商品推薦,多興趣的目標(biāo),也是增加推薦的多樣性。天貓上億的用戶,每個人都要每天瀏覽上百的商品,這些商品不同的類目,就反應(yīng)了用戶不同的興趣。廢話不多說,下面直入論文主題。
問題定義
多興趣的目標(biāo),就是為每個用戶從上億規(guī)模的商品集合I中找到候選集,該候選集一般有幾千個商品,都和該用戶當(dāng)前的興趣相關(guān)。歷史數(shù)據(jù)就尤為重要了,當(dāng)前興趣和歷史行為強(qiáng)相關(guān)。每個樣本都能表達(dá)為一個三元組(Iu, Pu, Fi),Iu表示歷史上,和用戶交互過的商品。Pu就是用戶的基礎(chǔ)特征(年齡性別啥的),Fi就是商品的特征了(itemid, 類目id)。
這篇論文的模型,目標(biāo)就是把每個用戶歷史交互特征和基本特征映射成多個向量:
然后把商品映射成向量:
最后ANN召回Top N:
MIND模型
上圖就是整個MIND模型,看似很復(fù)雜,其實沒那么復(fù)雜,我們拆解下。
從這張圖我們看到,有N個與用戶交互過的item,每個item有3個特征,分別是ItemID、Category ID、Brand ID。embeding后進(jìn)入Pooling Layer。這里增加Category ID和Brand ID有利于冷啟動,當(dāng)新的item出現(xiàn),這些ID通過pooling層,還是有不錯的泛化性。
other features就是用戶特征了,直接embeding后concat在一起,不贅述。重要的當(dāng)屬多興趣提取層了,如下圖。
大家看到個熟悉的字眼,興趣膠囊。沒錯,又是膠囊網(wǎng)絡(luò)。先回歸一下動態(tài)路由算法。假若有兩層膠囊。
- 低level的m個膠囊:
- 高level的n個膠囊:
每個膠囊就是個向量,高level的膠囊是由低level的膠囊聚合而成,其實就是簡單的線性加權(quán),權(quán)重是模型自動學(xué)到的,計算權(quán)重的方式如下:
有了權(quán)重就可以線性加權(quán)了:
加權(quán)完后,就應(yīng)該有激活函數(shù)了,膠囊網(wǎng)絡(luò)中用的激活函數(shù)都是squash,因為膠囊向量的方向表示特征,長度表示概率。最后高level的膠囊計算如下:
在MIND中,高level向量就是興趣向量,低level向量就是交互的item過pooling后的向量。這里要注意的是,在傳統(tǒng)膠囊網(wǎng)絡(luò)bij第一次計算是要初始化為0的,但是在MIND中卻不行,因為該論文對膠囊網(wǎng)絡(luò)做了3大改造。
下面是動態(tài)路由算法的詳細(xì)過程:
所以該層就是通過動態(tài)路由算法將N個item生成的N個embedding映射成k個興趣embedding。
最后是Label-aware Attention層,該層做的事很簡單,把target item的embedding作為Q,興趣向量作為K和V,做attention操作,變成一個向量,如下:
p是我們可以調(diào)節(jié)的一個參數(shù),p是0,最終向量就是興趣向量的平均。如果p>1,那最終向量偏向于和target向量最接近的向量。p無窮大,就相當(dāng)于選擇和target向量最相關(guān)的興趣向量作為最終向量。論文實驗發(fā)現(xiàn),調(diào)大p,收斂較快。
訓(xùn)練&在線
有了最終興趣向量,和target向量,損失函數(shù)如下:
就是softmax計算概率,然后用logloss做梯度下降。在線服務(wù)的時候,每個興趣向量,都用來做召回,取最相關(guān)的top N個。需要注意的一點是,在用戶與item不斷交互的過程中,興趣向量是在不斷改變的。實驗就不詳細(xì)說了,想了解調(diào)參和算法比較的去看下原文。
結(jié)語
多興趣看似不是雙塔,其實本質(zhì)上還是雙塔,只是用戶側(cè)向量映射成了多個。召回場景下雙塔的使用是最頻繁的,十方也在嘗試些其他召回方式,如TDM,DR等,大家在工作學(xué)習(xí)中有什么實踐經(jīng)驗,歡迎留言或者進(jìn)群交流!
參考論文
1、Multi-Interest Network with Dynamic Routing for Recommendation at Tmall
更多干貨,請關(guān)注煉丹筆記小學(xué)生才做選擇題,"塔"們,我全要!多興趣召回!總結(jié)
以上是生活随笔為你收集整理的向量召回 MIND多兴趣双塔模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法模型该如何解释?
- 下一篇: 盘一盘推荐系统里值得一读的那些论文