微信视频号推荐算法上分技巧
躺平了一段時(shí)間之后,排行榜已經(jīng)發(fā)生了翻天覆地的變化,emmm....不由的佩服年輕人的精力,作為老年選手,只能使用大局觀了(此處內(nèi)涵一下我大酒神,手動(dòng)狗頭)。好久沒(méi)寫文章了,本文拿出 煉丹筆記 里的一波上分技巧分享一下。
之前寫過(guò)的微信視頻推薦算法大賽的兩篇文章:
- 乘風(fēng)破浪的微信視頻號(hào)推薦算法
- 當(dāng)推薦系統(tǒng)遇上多模態(tài)Embedding
在詞里面,一個(gè)詞可能會(huì)有多個(gè)不同的意思,這個(gè)時(shí)候我們會(huì)使用Multi-sense的embedding來(lái)處理此類情況,同樣的,CTR/CVR任務(wù)隨著上下文的不同也會(huì)有不同的意思,Operation-Aware的embedding可以幫助我們?cè)诓煌纳舷挛闹袑W(xué)習(xí)到不同的特征表示。
One-hot embedding是最早的embedding,它可以很好地表示類別信息,有就在特定位置標(biāo)記為1,沒(méi)有就是0,但是one-hot embedding卻存在非常大的一個(gè)問(wèn)題,在做關(guān)聯(lián)操作的時(shí)候,我們會(huì)得到非常多的“不合理”的0。
比如有三種顏色:紅|粉紅|藍(lán);有兩種性別:男|女,用one-hot表示二者的關(guān)系,假設(shè)滿足男和紅是1,那么其他的組合全部都會(huì)是0,很明顯,這是不合理的,因?yàn)槟泻头奂t以及男和藍(lán)的關(guān)系肯定是不一樣的,這類比到搜索推薦中也是一樣,我們用one-hot表示用戶和某個(gè)視頻的關(guān)系,存在關(guān)聯(lián)就是1,沒(méi)有就是0。
現(xiàn)在來(lái)了一個(gè)視頻,歷史上用戶沒(méi)有和該視頻有過(guò)明顯的關(guān)聯(lián),那么我們的用戶和該視頻的關(guān)聯(lián)性就會(huì)變?yōu)?,很明顯這是有問(wèn)題的。所有one-hot的形式是不足夠的。
Normal embedding就是我們常說(shuō)的embedding操作,我們將每個(gè)類別變量映射到一個(gè)低維度的dense向量上面,得到一個(gè)新的向量,后面再用該向量去做對(duì)應(yīng)的操作。這么做相較于one-hot embedding的優(yōu)勢(shì)就較為明顯了,同樣的現(xiàn)在來(lái)了一個(gè)商品,歷史上該用戶沒(méi)有和該商品有過(guò)明顯的關(guān)聯(lián),但我們的用戶和該商品的關(guān)聯(lián)性在這個(gè)時(shí)候一般也不會(huì)是0。
Operation-aware embedding 故名思議就是和Operation相關(guān)的embedding,一個(gè)operation對(duì)應(yīng)一個(gè)embedding(注:相同的操作在不同的特征上也被認(rèn)為是不同的操作),我們發(fā)現(xiàn)原先我們的類別特征每次轉(zhuǎn)化為一個(gè)embedding向量,想再是L個(gè)embedding向量,
如果直接將兩個(gè)特征的關(guān)系拼接起來(lái)會(huì)得到非常稀疏的表示,并且會(huì)因?yàn)橛?xùn)練不充分導(dǎo)致效果不佳,FM等模型用積(內(nèi)積/外積)的形式來(lái)表示兩個(gè)潛在向量之間的關(guān)系。同時(shí)大量的實(shí)驗(yàn)也驗(yàn)證來(lái)這一點(diǎn)帶來(lái)的好處。
- LR
- Poly2
- FM
- FFM
- MLP
- WDL(DLRS16)
- DeepFM(IJCAI17)
- NFM(IJCAI17)
- AFM(IJCAI17)
- xDeepFM(KDD19)
- TFNET(SIGIR20)
- ONN/NFFM(Arxiv19)
- AoAFFM(AAAI20)
- AutoFIS(KDD20)
上面所有的模型可以大致分為四個(gè)部分,特征embedding,特征低階高階顯示交叉,特征隱式交叉,特征篩選。具體文章可以看 煉丹筆記 之前的文章《CTR神經(jīng)網(wǎng)絡(luò)特征交叉匯總》。
ONN和xDeepFM是目前在數(shù)據(jù)競(jìng)賽中經(jīng)常用到的模型(據(jù)本人所知,2020年之前的CTR競(jìng)賽最多的處理categorical的特征還是這兩類模型),19年的騰訊賽冠軍也是用的NFFM模型,二者的對(duì)比如下(18年的騰訊數(shù)據(jù)),整體來(lái)看,NFFM的效果要略好于xDeepFM,但二者融合效果還是極棒的!
目前神經(jīng)網(wǎng)絡(luò)的特征交叉研究的方向主要是:
①.深化二階特征的交叉(內(nèi)積,element-wise,加入attention系數(shù),加入張量細(xì)化);
②.探索顯示的高階交叉;
③.探討噪音&冗余特征的處理;
④.探索embedding的合理性;
在短視頻推薦等問(wèn)題中, 用戶的滿意程度很難衡量,我們需要從用戶的點(diǎn)擊,是否看完視頻, 分享,喜歡,評(píng)論等角度來(lái)刻畫,所以多任務(wù)學(xué)習(xí)在推薦領(lǐng)域已經(jīng)成為主流的方法。但是在使用MTL建模時(shí),在我們調(diào)整模型的時(shí)候經(jīng)常會(huì)碰到下面的現(xiàn)象:
- 蹺蹺板現(xiàn)象:某一個(gè)任務(wù)的指標(biāo)上升,但是另外一個(gè)任務(wù)的指標(biāo)會(huì)下降;
那么是否可以通過(guò)利用不同任務(wù)的信息共享做到多個(gè)任務(wù)的指標(biāo)同時(shí)上升呢?
做深度多任務(wù)學(xué)習(xí)不可避免的都會(huì)碰到下面的幾個(gè)問(wèn)題:
- 不同任務(wù)的loss設(shè)計(jì)問(wèn)題(輔助loss設(shè)計(jì));
- 不同任務(wù)之間特征層的共享問(wèn)題(如何避免負(fù)遷移);
- 不同任務(wù)之間的loss權(quán)重設(shè)計(jì)(有些任務(wù)是MSE,有些是二分類)等;
- 模型優(yōu)化,不同任務(wù)如何優(yōu)化;(不同任務(wù)不同梯度設(shè)計(jì)等)
- 什么樣的任務(wù)使用MTL任務(wù)是最好的, 能帶來(lái)較大的幫助?(理論暫無(wú))
- 其他
如何做到MTL任務(wù)能幫助我們多個(gè)任務(wù)提升?在 煉丹筆記 文章《多任務(wù)學(xué)習(xí)如何做到你好我也好?》中介紹了在多任務(wù)loss固定的情況下很好地緩解了這些問(wèn)題,并且給所有的任務(wù)帶來(lái)了不錯(cuò)的提升。
做數(shù)據(jù)挖掘相關(guān)的朋友,大多數(shù)都聽(tīng)說(shuō)過(guò)特征工程這個(gè)藝術(shù)的詞匯,卻鮮有人知道標(biāo)簽工程這個(gè)偉大的詞匯,誒,為什么很少有人知道呢?因?yàn)檫@個(gè)是我們自己造出來(lái)的,輕噴......但是這個(gè)詞卻真的非常契合該章節(jié)的核心思路,大家都知道標(biāo)簽臟或者模糊的問(wèn)題,這個(gè)是所有數(shù)據(jù)里面不可避免的,那么如何解決或者緩解此類的問(wèn)題呢?讓標(biāo)簽更加置信....
無(wú)論是顯性反饋還是隱性反饋都能反映用戶對(duì)商品的意見(jiàn),這對(duì)于學(xué)習(xí)推薦中的用戶偏好至關(guān)重要。然而,目前大多數(shù)推薦算法只關(guān)注隱式的正反饋(如follow),而忽略了其他信息豐富的用戶行為。然而聯(lián)合考慮顯式/隱式和正/負(fù)反饋,才可以了解用戶的無(wú)偏偏好。具體細(xì)節(jié)可以在《顫抖吧,標(biāo)簽工程》找到。
在推薦系統(tǒng)中,顯式和隱式的反饋都是有價(jià)值的,許多工作使用特征mapping以及遷移學(xué)習(xí)的方式來(lái)構(gòu)建顯示和隱式反饋的關(guān)系,目前大多數(shù)算法使用多任務(wù)學(xué)習(xí)方式將顯式和隱式反饋結(jié)合來(lái)聯(lián)合處理ranking和rating的任務(wù)。
微信視頻號(hào)推薦算法上分神技!總結(jié)
以上是生活随笔為你收集整理的微信视频号推荐算法上分技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MLP is Best?
- 下一篇: 电商搜索推荐业务词汇表