兩階段超長周期用戶行為序列建模方法總結
今天這篇文章介紹的主題是推薦系統中,基于兩階段的超長周期用戶興趣建模系列工作。主要介紹業內比較有代表性的由快手發表的3篇工作,從2020年最開始的SIM首次提出的兩階段行為序列建模方法,到2022年KDD上發表的TWIN對兩階段一致性的優化,再到2024年CIM上提出的在TWIN基礎上引入層次聚類進一步釋放長周期建模能力。
1.背景
在推薦系統的排序模型中,用戶行為序列建模部分的迭代一直是最核心的收益來源。用戶行為序列建模迭代,又可以從空間和時間兩個維度進行優化。在空間上,通過引入不同類型的行為序列、完善行為序列表征、建立不同用戶行為序列關系提升信息豐富度;在時間上,通過引入更長周期的歷史序列完整刻畫用戶長周期興趣。
在時間上的優化,一個核心難點如何解決性能問題。隨著引入序列的增長,模型的計算時間會隨之增長,很難在線上應用。為了解決這個問題,快手提出了一系列基于兩階段的超長周期行為序列建模方法,其核心思路是將長周期行為序列拆分成兩個階段,第一階段使用計算復雜度較低的方法快速從全周期序列檢索出可能對預測有幫助的部分,縮短序列長度,第二階段再使用諸如attention等復雜模型進一步進行序列建模。
2.SIM:兩階段建模
行為序列建模的核心是從歷史序列中找到和目標item關系最密切的部分,作為模型的輸入。一般采用attention的方法,但是其在長周期序列引入中一方面計算復雜度高,一方面模型擬合也比較困難。SIM提出了一種兩階段的長周期建模方法,由General Search Unit和Exact Search Unit兩個部分組成。General Search Unit用于從長歷史行為序列中選出和當前候選商品最相關的幾個子序列,Exact Search Unit用于更精細的匹配,可以采用類似DIEN等的方法。
對于General Search Unit有hard search和soft search兩種。Hard search比較簡單,直接選擇和候選商品相同類目的歷史行為;Soft search采用向量檢索的方式計算歷史行為和候選商品的匹配分,其中商品向量采用一個輔助CTR任務來學習長期數據和候選廣告之間的相關性得到。
3.TWIN:提升兩階段一致性
上述兩階段建模的方法中,GSU階段和ESU階段存在不一致問題,即GSU篩選的打分和ESU篩選的打分并不是相同的計算邏輯,導致GSU篩選出的TopK不是全局最優解,可能在ESU中認為最優的結果在GSU中被過濾掉了。下圖也展示了這種不一致性。可以看出,GSU和ESU的差異還是比較大的,如果能解決二者的一致性問題,能帶來比較大的收益。
為了解決這個問題,TWIN在GSU部分進行了改造,讓GSU也進行輕量級的attention計算提升和ESU的一致性。在GSU部分,將特征分為內部特征和交叉特征。內部特征指的是item本身的特征,例如商品id、視頻作者等,這部分特征不隨著用戶交互變化,因此可以直接緩存起來,線上不用每次都計算。對于交叉特征部分,每一維特征都使用一個全連接層映射成1維。通過這種方式,將attention計算的時間復雜度從??(?? × (?? + ??) × ????????)降低到??(?? × ??),其中L為序列長度,H為內在特征維度,C為交叉特征維度,H一般占據特征的主要部分。
計算attention的公式如下,query和key使用內在特征,交叉特征維度為1,因此這里作為bias加入到attention score的計算中。
4.TWINV2:聚類釋放長周期潛力
用戶歷史序列雖然很長,但是存在很多重復的信息或者相似的信息,這些重復或近似的item反應了用戶相似的興趣。TWINV2在TWIN的基礎上,進一步通過聚類對歷史行為序列進行重組,縮短歷史序列,提升長周期建模潛力。
首先,將歷史看過的視頻根據其觀看長度 / 視頻長度的比例分成不同的組,每個組代表用戶的一種感興趣程度。每個組內,使用層次聚類+Kmeans聚類,對item進行聚類。每個聚類的特征由其類內item的特征組合而成。對于數值特征,使用這個類簇的均值計算該特征;對于ID特征,使用距離這個聚類中心最近的item的ID作為該聚類簇的特征。在得到歷史序列的聚類結果,以及每個聚類的表征之后,使用和Twin類似的ESU+GSU兩階段方法進行用戶興趣建模。
? ?
本文轉載自 ??圓圓的算法筆記??,作者: Fareise
