推荐系统中的长尾物品(Tail Items)推荐问题
長尾物品(Tail Items)在推薦系統中是非常常見的,長尾的存在導致了樣本的不均衡,對于熱門頭部物品(Head Items)的樣本量多,模型學習這部分的效果越好,而長尾物品的樣本量少,導致模型對該部分Item的理解不夠充分,效果自然也就較差。
那么,針對長尾物品的推薦,有哪些較好的解決方法呢?本文從幾個角度來聊一下這個問題。長尾問題,可以看成是推薦系統傾向于推薦熱門商品,而忽略了非熱門物品,即推薦系統如何解決糾偏問題?
在實踐中,做推薦系統的很多朋友思考的問題是如何對數據進行挖掘?大多數論文致力于開發機器學習模型來更好地擬合用戶行為數據。然而,用戶行為數據是觀察性的,而不是實驗性的。這里面帶來了非常多的偏差,典型的有:選擇偏差、位置偏差、曝光偏差和流行度偏差等。如果不考慮固有的偏差,盲目地對數據進行擬合,會導致很多嚴重的問題,如線下評價與在線指標的不一致,損害用戶對推薦服務的滿意度和信任度等。下面我們聊一下與長尾問題相關的兩個偏差。
曝光偏差的發生是因為用戶只接觸到特定項目的一部分,因此未觀察到的交互并不總是代表消極偏好。特殊地,用戶和商品之間未被觀察到的交互可以歸因于兩大原因:
1)商品與用戶興趣不匹配;
2)用戶不知道該商品。
因此,在解釋未觀察到的相互作用時會產生歧義。無法區分真正的消極互動(如暴露但不感興趣)和潛在的積極互動(如未暴露)將導致嚴重的Bias。
解決方法:
目前處理該問題的策略主要還是使用inverse propersity score。為了解決這個問題,類似于外顯反饋數據中的選擇偏差處理,Yang等人建議用隱式反饋數據傾向的倒數來加權每個觀測值。intuition是把經常觀察到的交互降權,而對少的樣本進行升權。
為了解決曝光偏差的問題,傳統的策略就是將所有被觀測的交互作為負例并且明確它們的交互。confidence weight可以被分為三類:
1.Heuristic:典型的例子是加權的矩陣分解以及動態MF,未觀測到的交互被賦予較低的權重。還有很多工作則基于用戶的活躍度指定置信度等,但是賦予準確的置信權重是非常有挑戰的,所以這塊依然處理的不是非常好。
2.Sampling:另一種解決曝光bias的方式就是采樣,經常采用的采樣策略有均勻的負采樣,對于流行的負樣本過采樣,但是這些策略卻較難捕捉到真實的負樣本。
3.Exposure-based model:另外一個策略是開發基于曝光的模型,這樣可以知道一個商品被曝光到某個用戶的可能性等。
熱門商品的推薦頻率甚至超過了它們的受歡迎程度。長尾現象在推薦數據中很常見:在大多數情況下,一小部分受歡迎的商品占了大多數用戶交互的比例。當對這些長尾數據進行訓練時,該模型通常會給熱門項目的評分高于其理想值,而只是簡單地將不受歡迎的商品預測為負值。因此,推薦熱門商品的頻率甚至比數據集中顯示的原始受歡迎程度還要高。
忽略流行度經常會帶來非常多的問題:
(1) 降低個性化的程度影響,影響用戶的體驗;
(2) 降低了推薦系統的公平性, 流行的商品卻不一定是高質量的, 對流行商品的推薦會降低其它商品的曝光,這是不公平的;
(3) Popular Bias會增加流行商品的曝光率, 使得流行的商品越加流行,使模型訓練更加不平衡;
另外一個不平衡的問題的原因是由于推薦結果的不公平帶來的?;谥T如種族、性別、年齡、教育程度或財富等屬性,不同的用戶群體通常在數據中不平等地表示。在對這些不平衡數據進行訓練時,模型很可能學習這些表示性過高的群體,在排名結果中對其進行強化,并可能導致系統性歧視,降低弱勢群體的可見度(例如,代表少數群體不足、種族或性別陳規定型觀念)。
解決方法:
解決流行度偏差的方案有四類:
1.正則
合適的正則可以將模型推向平衡的推薦列表。
CTR預估場景下,構造的模型越復雜參數越多,越容易過擬合。實際場景中,存在著大量的長尾數據,這些數據的存在一方面在訓練過程中增加了復雜度,另一方面在結果上產生了過擬合。直接去掉這些長尾數據是一種簡單的處理方式,但也丟掉了很多信息。因此,DIN文章中給出了自適應正則化調整的方式(Adaptive正則化方法),對高頻減小正則,對低頻增大正則。
2. 對抗訓練
基本思路在推薦G以及引入的adversary D進行min-max博弈,這樣D可以給出提升推薦錫惠的信號。通過G和D之間的對抗學習,D學習流行項和利基項之間的隱式關聯,G學習捕捉更多與用戶歷史相關的niche商品,從而為用戶推薦更多長尾商品。
3. Causal graph
因果圖是反事實推理的有力工具。Zheng等人利用因果推理解決流行偏差。他們假設用戶對商品的點擊行為取決于興趣和流行程度,并構建了一個特定的因果圖。為了解決用戶興趣和流行偏差的問題,作者考慮了兩種嵌入方法:興趣嵌入以捕獲用戶對商品的真實興趣,以及流行度嵌入來捕獲由流行度引起的偽興趣。在多任務學習的框架下,可以利用特定原因的數據對這些嵌入進行訓練。最后,興趣嵌入將被用于最終推薦,在這里,受歡迎度偏差已經被消除。
4. 其它方法
通過引入其它side information來降低流行度的偏差, propensity score也可以被用來做popularity的bias。通過降低流行項對模型訓練的影響,可以減輕流行偏差。
由于大多數現有推薦系統中的的長尾模型只關注尾部,而沒有考慮與頭部們的聯系—頭部包含豐富的用戶反饋信息和與尾部相關的可轉移上下文信息。為了改進長尾問題,谷歌進行了將知識從頭部轉移到尾部的研究,提出了一個新的對偶遷移學習框架,它可以從模型層和物品層協同學習知識遷移,利用了頭部中豐富的用戶反饋以及頭尾部之間的語義聯系。
(1)橙色部分學習通用的元遷移器;
(2)綠色部分學習Item之間的語義關系;
模型探究使用少量訓練樣本學習的模型與相同物品使用足夠訓練樣本學習的模型之間的聯系。
Base-Learner: 通過雙塔模型得到的user embedding和item embedding,然后使用內積的方式得出預測的Score。
Meta-Learner:通過基學習器得到few-shot模型和many-shot模型之后,利用元學習器映射兩個模型的參數,從而捕捉元級知識。
在KDD Cup2020中,美團技術團隊給出了基于時間加權和圖的解決方案,大概思路如下:
針對選擇性偏差和流行度偏差兩方面挑戰,學習用戶的每個歷史點擊商品和候選商品的關系,可以理解為u2i2i的建模。這種建模方法更有助于學習多種i2i關系,并且可以容易地將i2i圖中的一跳關系拓展到多跳關系,多種i2i關系可以探索更多無偏數據來增大商品候選集和訓練集,達到了緩解選擇性偏差的目的。
同時,考慮到流行商品引起的流行度偏差,我們在構圖過程中對邊權引入流行度懲罰,使得多跳游走時更有機會探索到低流行度的商品,同時在建模過程以及后處理過程中我們也引入了流行度懲罰,緩解了流行度偏差。
點擊共現邊通過用戶的歷史商品點擊序列所構建,邊的權重通過以下的公式得到,其在兩個商品間的用戶歷史點擊共現頻數的基礎上,考慮了每次點擊共現的時間間隔因子,并加入了用戶活躍度懲罰以及商品流行度懲罰。
時間間隔因子考慮到了兩個商品間的共現時間越短則這兩個商品有更大的相似度;用戶活躍度懲罰考慮了活躍用戶與不活躍用戶的公平性,通過用戶歷史商品點擊次數來懲罰活躍用戶;商品流行度懲罰考慮了商品的歷史點擊頻數,對流行商品進行懲罰,緩解了流行度偏差。
推薦系統中的長尾物品(Tail Items)推薦問題總結
以上是生活随笔為你收集整理的推荐系统中的长尾物品(Tail Items)推荐问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统中的Bias/Debias大全
- 下一篇: 推荐系统中多值特征的八大处理技巧