字节跳动Deep Retrieval召回模型笔记
今天講講字節(jié)的一個召回的文章:《Deep Retrieval: An End-to-End Learnable Structure Model for Large-Scale Recommendations》(公眾號后臺回復(fù)【dr】可下載)
召回因為候選集個數(shù)多,一般用MIPS的思路做,這樣的問題在于:
1、向量最大內(nèi)積模型表達(dá) 能力有限,缺少特征交互;
2、ANN的時候會通過聚類減小候選集(IVFAQ),但是這個聚類建立索引的過程,跟召回模型的訓(xùn)練是分開的,效果肯定不好;可能存在召回模型學(xué)好了,但是檢索不出來的情況。
召回的時間復(fù)雜度:T*N <= Bound,目前的思路是在inference階段減小候選集N(如TDM,beam search),這樣就需要確定一個item的空間劃分結(jié)構(gòu),這個結(jié)構(gòu)是和模型訓(xùn)練階段做joint learning的。因為空間結(jié)構(gòu)是離散的,所以joint learning其實是一種EM算法,將空間結(jié)構(gòu)當(dāng)做是latent variable。細(xì)看,其實TDM也是這種范式,M step訓(xùn)練item embedding,E step通過聚類得到空間結(jié)構(gòu)。
回到字節(jié)這篇paper DR上來
DR在item空間結(jié)構(gòu)劃分上,字節(jié)的DR用了一種矩陣結(jié)構(gòu),矩陣?yán)锩娴穆窂綄?yīng)item。
結(jié)構(gòu)
使用一個D x K維的矩陣來作為索引結(jié)構(gòu)。模型預(yù)測需要走D步,每一步有K種選擇。走到最后會有K^D可能的路徑(也可以叫做編碼),每一條路徑可以代表一個包含多個item的集合,每個item反過來也可以同時在多條路徑的集合里面。路徑可以看做是一個聚類結(jié)果。
不同的路徑之間可能有交叉(有交叉的應(yīng)該比較類似)
Objective
1、Structure Objective
每一層是一個MLP,輸出K個概率,表示包含這個節(jié)點的概率,假設(shè)每個item對應(yīng)的路徑π固定。
1、emb(x)輸入第一層MLP,生成K維的概率;
2、將路徑上所有的embedding 全部concatenate起來,扔進(jìn)去第d層的MLP內(nèi);
最后的概率是路徑上所有概率的乘積:
如果每個節(jié)點表示一個類別,多個類別乘起來,不過這不是獨立的,所以怪怪的。
損失函數(shù)是log likehood,這里用(xi, yi)表示user,item,用π表示item->K^D條路徑的映射。Π(yi)表示item yi對應(yīng)的path
2、Multi-path structure Objective
每個節(jié)點屬于多個路徑,而不是單個,這是因為很多item都會被歸到多個類里面去。比如巧克力和cake,既是food也是gift。而在TDM中,每個葉子節(jié)點只能表示一個item,一個item也只能包含在一個內(nèi)部節(jié)點中。
DR將一個item對應(yīng)J個path去。這個看到后面就很清楚了,其實一個item在EM算法的框架里面是可以對應(yīng)K^D的路徑的,但是每條路徑對應(yīng)的概率不同,現(xiàn)在是截斷,取top J條。這里的π也表示item->path的路徑,只不過現(xiàn)在有J個映射
Learning
這里面item對應(yīng)的路徑是離散的,無法通過梯度下降去優(yōu)化。Item->path的映射可以與聚類有點類似。所以用EM算法 train
下面是一個整體流程:
其中:
表示item在這個路徑上所有概率的加權(quán)(item對應(yīng)所有user加權(quán))
每個item v, 通過beam search,在每一層選出J個node,最后得到J個路徑。遍歷所有item后就得到了item->path的map π
這里,將multi-path objective變換為遍歷所有的item v,里面是item v對應(yīng)的所有user->item pair
為了保證數(shù)值穩(wěn)定性,這里用凸函數(shù)求了一個上界
其中
表示item v對應(yīng)的user->item總數(shù)
正則化
DR這里的EM step貌似和我理解的是反的。我理解E step是得到隱含變量的概率(也就是item對應(yīng)的top J path的概率);而M step是優(yōu)化參數(shù)。字節(jié)的DR在E step是優(yōu)化參數(shù),M step是得到隱含變量的概率。在E step,優(yōu)化的structure model可能出現(xiàn)overfit,導(dǎo)致某個path的概率很大;所以在M step,所有的item都到這個path去,導(dǎo)致無法聚類。所以在M step引入了path對應(yīng)的item總數(shù)作為正則。
討論
其實有幾點的還是比較迷惑的,作者最后也說了
1、structure model的probability只是用了user側(cè)的特征,沒有用item的特征;
2、只是用了positive example來做;
還有一點是這個模型沒法用item側(cè)的特征,類似于YouTubeDNN,屬于單側(cè)建模
總結(jié)
以上是生活随笔為你收集整理的字节跳动Deep Retrieval召回模型笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring同类调用事务不生效-原因及三
- 下一篇: AutoML 在表数据中的研究与应用