本文介紹的論文是:《Personalized Re-ranking for Recommendation》
下載地址:https://arxiv.org/abs/1904.06813
排序是推薦系統(tǒng)中比較重要的一環(huán)色鸳,一般通過point-wise的方式對每一個物品計算一個得分道川,然后進行排序。但這樣做只考慮了單個物品與用戶之間的相關性,而忽略了物品之間的相互影響茵休。因此本文在排序階段后設計了一個重排序(Re-ranking)的模塊耸彪,在考慮物品相關性的情況下對排序結果進行重排,一起來看一下倚评。
1丘逸、背景
排序階段是推薦系統(tǒng)中比較重要的一環(huán)单鹿,排序的質量直接影響了用戶的體驗以及平臺的收益。排序算法整體可分為point-wise深纲、pair-wise和list-wise羞反。出于性能上的考慮,一般采用point-wise的方法囤萤,即對每一個候選物品給出一個評分,基于評分進行排序是趴。這樣的做法僅僅考慮了用戶和物品之間的關系涛舍,而沒有考慮排序列表中物品之間的關系。而pair-wise和list-wise的方法盡管將物品對或者物品列表作為整體輸入唆途,但也僅僅是盡可能優(yōu)化損失函數(shù)富雅,而并沒有從特征空間上顯式建模物品間的相互影響掸驱。(文中的這句話沒有太明白)
一些文章通過建模物品之間的相互影響來對排序階段給出的排序結果進行微調,這種做法叫做重排序(Re-ranking)没佑。主流的方法是基于RNN的重排序毕贼。但是RNN對于建模物品之間的影響有一定的缺陷,如果兩個物品相隔較遠蛤奢,它們的相關性并不能很好的刻畫鬼癣。
因此本文提出了一種基于Transformer的重排序結構,相較于RNN啤贩,其優(yōu)勢主要體現(xiàn)在兩個方面:
1)兩個物品的距離不會影響其相關性的計算
2)Transformer是并行計算待秃,編碼效率相較于RNN更為高效(RNN一個時刻只能輸入一個物品,相當于是串行計算痹屹,而Transformer可以同時輸入所有物品章郁,是并行計算)
除了使用Transformer之外,本文還有一個值得借鑒的地方就是將用戶特征加入了Transformer中志衍,使得重排序更加個性化暖庄。接下來就一起看一下阿里是如何進行個性化重排序的。
2楼肪、模型介紹
2.1 整體介紹
重排序的整體框架如下圖所示:
主要分為三個部分培廓,輸入層、編碼層和輸出層淹辞。文中用到的一些符號定義如下:
2.2 輸入層
首先医舆,經(jīng)過排序階段,我們得到了固定長度的列表S=[i1,i2,...,in]象缀,每個物品對應一個特征向量xi蔬将,長度為dfeature,此時輸入計作E央星。除此之外霞怀,輸入層還包含兩個部分。
個性化向量Personalized Vector (PV):用戶和每一個物品之間都會計算一個個性化向量pvi作為輸入莉给,個性化向量通過如下的預訓練模型得到:
該模型是一個二分類模型毙石,取最后一個layer的輸出作為個性化向量pvi。
加入個性化向量之后颓遏,輸入矩陣E'為:
位置編碼信息Position Embedding (PE):與Transformer中固定的編碼信息不同徐矩,這里的位置編碼信息是可以學習,位置編碼矩陣和E'大小相同叁幢,計作PE滤灯,此時模型的輸入E''為:
在得到E''之后,經(jīng)過一個單層的前向網(wǎng)絡來進行一定的轉換:
上圖中等式右邊的E應該是E''吧,感覺打錯了鳞骤。
2.3 編碼層
編碼層是Transformer結構:
有關Transformer窒百,我們之前有篇文章詳細介紹過,這里就不再贅述豫尽,大家可以參考:http://www.reibang.com/p/2b0a5541a17c
2.4 輸出層
假設第Nx個Transformer encoder block的輸出為F(Nx)篙梢,通過一層全連接神經(jīng)網(wǎng)絡和softmax層得到每個物品的重排序得分score(i)。
并基于交叉熵損失函數(shù)來進行模型參數(shù)的更新:
3美旧、實驗結果
文中使用Precision@k和MAP@k 作為評價指標渤滞,兩個指標的計算方式如下:
有關推薦系統(tǒng)的評價指標,可以看本系列的第十六篇文章:http://www.reibang.com/p/665f9f168eff
3.1 線下實驗結果
首先陈症,在Yhaoo Letor數(shù)據(jù)集上使用兩個模型得到的最初推薦結果蔼水,分別使用不同的模型進行重排序,實驗結果如下:
接下來录肯,分析了不同的模型結構所對應的實驗結果:
最后趴腋,使用真實的電商數(shù)據(jù)集進行試驗,結果如下:
3.2 線上A/B實驗結果
線上使用了三個模型進行A/B實驗论咏,實驗的評價指標包括PV优炬、IPV、CTR和GMV厅贪。PV指24小時內店鋪內所有頁面的瀏覽總量蠢护,可累加。IPV指點擊進入寶貝詳情頁的次數(shù)养涮。如果用戶看的越多葵硕、點擊次數(shù)越多,也可以一定程度上表示模型排序結果更好贯吓。
線上實驗結果如下:
4懈凹、總結
這篇文章主要介紹通過Transformer對排序結果進行重排序。個人感覺比較創(chuàng)新的點在于如何將Transformer和用戶特征進行結合悄谐,并提出了一種預訓練的模型來得到用戶的個性化向量介评。
但文中并沒有給出直接將這個模型應用于排序階段的效果如何,這一點也是我個人比較好奇的地方爬舰,感覺這個模型直接用在排序階段也可以得到比較好的結果们陆,哈哈。
本文介紹就到這列情屹,可能我的理解還有不到位的地方坪仇,歡迎大家一起討論對這篇文章的理解~