一、場景介紹
首先來介紹一下本文涉及的場景— 「有好貨」場景。它的位置是在淘寶首頁的四宮格,分為一跳精選頁和二跳承接頁。承接頁主要有兩種形式,一種是圖文的承接頁,另一種是短視頻的承接頁。這個場景的目標主要是為使用者提供滿意的好貨,帶動 GMV 的成長,從而進一步撬動達人的供給。
二、流行度偏差是什麼,為什麼
#接下來進入本文的重點,流行偏差。流行度偏差是什麼?為什麼會產生流行度偏差?
1、流行度偏差是什麼
#流行度偏差有很多別名,例如馬太效應、資訊繭房,直觀來講它是高爆品的狂歡,越熱門的商品,越容易曝光。這會導致優質的長尾商品或達人創作的新商品沒有曝光的機會。其危害主要有兩點,第一點是使用者的個人化不足,第二點是達人創作的新商品得不到足夠的曝光,使得達人參與感降低,因此我們希望緩解流行度偏差。
從上圖右邊的藍色長條圖可以看出,曝光top10% 的商品在某一天中佔據了63% 的曝光,這證明在有好貨的場景下馬太效應是非常嚴重的。
2、為什麼會產生流行偏差
接下來我們去歸因為什麼會產生流行偏差。首先,需要闡明我們為什麼會在召回截斷做緩解流行度偏差的工作。排序模型擬合的是商品的 CTR,它的訓練樣本包含正樣本和負樣本,CTR 越高的商品越容易獲得曝光。但在召回階段,我們通常會採用雙塔模型,它的負樣本通常會透過兩種方式產生,第一種是全域隨機負採樣,第二種是batch 內負採樣,batch 內負採樣是將同一個batch 取正樣本的其它曝光日誌當作負樣本,所以它在一定程度上可以緩解馬太效應。但是,透過實驗我們發現,全域負採樣實際的線上效率型效果會更好。不過,推薦系統中的全域隨機負採樣可能導致流行度偏差,因為它只為模型提供了正回饋。這種偏差可能歸因於流行度分佈差異和先驗知識幹擾,即使用者傾向於點擊更受歡迎的物品。因此,模型可能會優先推薦熱門物品,而不考慮它們的相關性。
我們也分析了流行度分佈差異,如上圖右邊綠線所示,透過將商品依照曝光頻率分組並計算每組的正樣本平均分,發現即使所有樣本都是正樣本,平均分數也隨曝光頻率的下降而下降。建議系統模型訓練時存在流行度分佈差異與長尾分佈差異。模型會傾向於把流行度資訊注入到商品的 ID 特徵中,導致流行度分佈差異。高爆品所獲得的訓練次數遠大於長尾商品,使得模型過度擬合於高爆品,長尾商品難以得到充足訓練和合理向量表示。如上圖右邊的 TSN 圖所示,藍點表示高曝商品的商品向量,而紅點表示長尾商品的商品向量,顯示出分佈上的顯著差異。而且如上圖右邊的紅線所示,hit ratio 也會隨著曝光數的降低而降低。所以,我們把流行度偏差的產生歸因於流行度分佈差異和長尾分佈差異。
三、流行度偏差目前解決方案
#目前業界的解決者案主要包括兩種,分別為逆傾向評分(IPS)和因果推論。
1、逆傾向評分(IPS)
#通俗來講就是將主任務損失函數中高曝光機率商品的權重調低以避免過度關注高曝光機率商品,從而可以更平均地關注整個正樣本分佈。但是,這種方法需要事先預測曝光機率,這種預測是不穩定的,容易失效或波動較大。
2、因果推論
#我們需要建立一個因果圖,i 代表商品特徵,u 代表用戶特徵,c 代表點擊機率,這張圖就表示給模型輸入使用者特徵和商品特徵,預測點擊率。如果我們把流行度偏差也考慮到這個模型中,用 z 來代表,它不僅會影響點擊率,還會影響商品的特徵表示 i,因果推斷的方法是嘗試去阻斷 z 對 i 的影響。
比較簡單的方法是利用商品的一些統計特徵單獨得到一個bias 塔,此時模型會輸出兩個分,一個是真實的點擊率,另一個是商品的流行度分,在線上預測的時候會將商品的流行度分去掉,實現流行度偏差的解耦。
第二種方法是將使用者點擊歸因為兩類,一類是從眾興趣,一類是真實興趣,分別建構樣本聯合訓練。相當於得到兩個模型,一個模型去得到使用者從眾的興趣分,一個模型去得到使用者真實的興趣分。因果推論其實也存在問題,它解決了流行度分佈差異,但無法解決長尾商品缺乏訓練資料的問題。目前的解決方案傾向於消除流行度偏見,但這對於需要「馬太效應」來生存的建議系統可能並不總是有益的。所以,我們建議不要完全去除推薦系統中的流行度偏差,因為流行的項目通常更優質,用戶也有從眾心理和真實興趣兩種心理,完全去除流行度偏差會影響用戶從眾興趣的滿足。應合理利用流行度偏差,不加劇偏差。
四、CD2AN 基本架構
我們這次探索的工作就是如何合理地利用流行度偏差,要想合理地利用流行度偏差,需要解決一個困難:「如何提取無偏且學習充分的商品表示?」針對流行度分佈差異,我們需要從商品ID 解耦出真實內容向量和流行度向量。針對長尾分佈差異,我們借鑒了域適應的範式將整體分佈對齊,並借鑒了對比學習的範式將實例分佈對齊。
先來介紹 base 模型的基本架構,base 模型其實就是一個經典的雙塔模型。接下來詳細介紹下我們是如何解決前面提到的兩個問題的(流行度分佈差異和長尾分佈差異)。
1、特徵解耦模組緩解流行度分佈差異
特徵解耦模組是本文針對推薦系統中的流行度偏差問題所提出的解決方案。此模組透過將物品向量表示中的流行度資訊與屬性資訊分開來,從而減輕流行度對物品向量表示的影響。具體地,該模組包括流行度編碼器和屬性編碼器,透過多層感知器的組合學習得到每個物品的屬性和流行度向量表示。這個模組的輸入是物品的屬性特徵,例如物品 ID、物品類目、品牌等,如上圖模型結構中的右邊部分所示。這裡會有兩個約束,包括正交正則化和流行度相似度正則化,旨在將流行度資訊與物品屬性資訊分開。其中,透過流行度相似度正則化,模組被鼓勵將嵌入物品屬性的流行度資訊與真實流行度資訊對齊,而透過正交正則化,模組被鼓勵在編碼中保留不同的訊息,從而實現分離流行度資訊和物品屬性資訊的目標。
我們還需要一個學習真實流行度的模組,如上圖模型結構中的左邊部分所示,它的輸入主要就是商品的統計特徵,然後經過一個MLP 得到真實的流行度表示。
2、正規化緩解分佈差異
接下來,我們想要解決長尾分佈差異的問題。
我們借鑒了遷移學習的思想,實現熱門商品和長尾商品的分佈對齊。我們在原始的雙塔模型中,引入了一個未曝光商品,使用了MMD 的損失函數(如上圖左上所示),這個損失函數希望熱門商品域和長尾商品域的簇中心盡可能靠近,如上圖右上示意圖所示。由於這種域對齊是無監督的,可能會產生負遷移,我們做瞭如下優化:曝光樣本在域對齊損失上的梯度被停止,防止影響到任務損失;對於未曝光樣本,引入精排分進行知識蒸餾。
我們也藉鑒了實例對齊的思想,希望可以學習得到更好的商品向量表示,主要思想就是有效共現次數越多的商品,向量表示越相似。這裡的難點是如何去構造 pair。在使用者有過往行為的商品序列中,天然存在這樣的 pair。以一個使用者舉例,一個樣本包含了一個使用者的行為序列和目標商品,那麼目標商品和使用者行為序列中的每個商品就能構成共現的 pair。我們在經典的對比學習的損失函數的基礎上也考慮了使用者的興趣多樣性和商品頻率,具體的損失函數公式可見上圖中左下部分。
我們可以看一個直觀的示意圖,如上圖中右下所示,灰色的點是目標商品,橙色的點是用戶的行為序列,藍色的點是我們隨機負採樣得到的負樣本。我們希望藉用對比學習的方法去約束使用者行為序列中每個商品都和目標商品靠近。
3、有偏無偏聯合訓練
以上模組有效地得到了商品的無偏內容表示和解耦的流行度表示,我們應該怎樣去應用呢?我們利用了無偏模型和有偏模型聯合訓練的方式,無偏商品向量可以基於解耦模組及正則化提取,為了能夠利用流行度信息,我們還引入了流行度特徵,有偏模型只會繼承流行度偏差,不會加劇偏差。線上服務部分,如上圖右邊所示,我們將無偏的商品表示和有偏的商品表示透過參數α 融合起來得到線上的商品表示,這樣即可透過使用者向量來召回商品,這個α 是調節召回關注流行度資訊的程度。
#4、離線及線上實驗
#上圖中展示了這個模型離線及線上的效果。在離線實驗中,我們引入了 C-Ratio 的指標,來衡量召回結果中有多少商品是高曝光商品。透過離線實驗我們可以看出各個模組都有一定程度的貢獻。無偏模型在線上效率指標方面並沒有收益,說明流行度資訊是有用的,我們還是需要使用有偏模型去利用流行度資訊。
最後,我們對模型結果做了視覺化的展示。我們發現新的模型結構的確可以將高爆商品和長尾商品的分佈記性對齊,解耦出來的流行度表示向量和商品無偏的內容表示幾乎是沒有交集的,並且同類目的商品能有更緊密的聯繫,透過對α 的調整,可以讓模型有方向地去擬合使用者的從眾興趣和真實興趣。
今天的分享論文標題是《Co-training Disentangled Domain Adaptation Network for Leveraging Popularity Bias in Recommenders》。
五、問答環節
Q1:未曝光樣本是怎麼加入到樣本中的?A1:離線產生的,針對一條樣本,我們可以拿到目標正樣本及對應的類別目,然後離線地隨機採樣若干個和目標正樣本相同類目的商品,掛載到訓練樣本中。
Q2:引入同類的未曝光樣本,會不會增加學習難度?A2:引入的未曝光樣本是沒有標籤的,是透過無監督的方式來進行分佈對齊,可能會存在負遷移的情況,我們用了兩個技巧來解決這個問題:曝光樣本在域對齊損失上的梯度被停止,防止影響到任務損失;對於未曝光樣本,可以引入精排分進行知識蒸餾。
Q3:未曝光樣本取得精排分成本會不會很高?
###A3:離線對樣本用精排模型打一遍分,作為特徵來使用,表現還好。 ###############Q4:未曝光樣本是進精排未曝光的樣本嗎? ###############A4:不是,這樣大機率還是高爆品,我們使用的是全域同類目下隨機取樣的結果。 ##########以上是精準推薦的秘術:阿里解耦域適應無偏召回模型詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

如何使用Go语言和Redis实现推荐系统推荐系统是现代互联网平台中重要的一环,它帮助用户发现和获取感兴趣的信息。而Go语言和Redis是两个非常流行的工具,它们在实现推荐系统的过程中能够发挥重要作用。本文将介绍如何使用Go语言和Redis来实现一个简单的推荐系统,并提供具体的代码示例。Redis是一个开源的内存数据库,它提供了键值对的存储接口,并支持多种数据

随着互联网技术的不断发展和普及,推荐系统作为一种重要的信息过滤技术,越来越受到广泛的应用和关注。在实现推荐系统算法方面,Java作为一种快速、可靠的编程语言,已被广泛应用。本文将介绍利用Java实现的推荐系统算法和应用,并着重介绍三种常见的推荐系统算法:基于用户的协同过滤算法、基于物品的协同过滤算法和基于内容的推荐算法。基于用户的协同过滤算法基于用户的协同过

随着互联网应用的普及,微服务架构已成为目前比较流行的一种架构方式。其中,微服务架构的关键就是将应用拆分为不同的服务,通过RPC方式进行通信,实现松散耦合的服务架构。在本文中,我们将结合实际案例,介绍如何使用go-micro构建一款微服务推荐系统。一、什么是微服务推荐系统微服务推荐系统是一种基于微服务架构的推荐系统,它将推荐系统中的不同模块(如特征工程、分类

一、场景介绍首先来介绍一下本文涉及的场景——“有好货”场景。它的位置是在淘宝首页的四宫格,分为一跳精选页和二跳承接页。承接页主要有两种形式,一种是图文的承接页,另一种是短视频的承接页。这个场景的目标主要是为用户提供满意的好货,带动GMV的增长,从而进一步撬动达人的供给。二、流行度偏差是什么,为什么接下来进入本文的重点,流行度偏差。流行度偏差是什么?为什么会产生流行度偏差?1、流行度偏差是什么流行度偏差有很多别名,比如马太效应、信息茧房,直观来讲它是高爆品的狂欢,越热门的商品,越容易曝光。这会导致

随着云计算技术的不断发展和普及,云上搜索和推荐系统也越来越得到了人们的青睐。而针对这一需求,Go语言也提供了很好的解决方案。在Go语言中,我们可以利用其高速的并发处理能力和丰富的标准库实现一个高效的云上搜索和推荐系统。下面将介绍Go语言如何实现这样的系统。一、云上搜索首先,我们需要对搜索的姿势和原理进行了解。搜索姿势指的是搜索引擎根据用户输入的关键字匹配页面

一、问题背景:冷启动建模的必要性和重要性作为一个内容平台,云音乐每天都会有大量的新内容上线。虽然相较于短视频等其他平台,云音乐平台的新内容数量相对较少,但实际数量可能远远超出大家的想象。同时,音乐内容与短视频、新闻、商品推荐又有着显著的不同。音乐的生命周期跨度极长,通常会以年为单位。有些歌曲可能在沉寂几个月、几年之后爆发,经典歌曲甚至可能经过十几年仍然有着极强的生命力。因此,对于音乐平台的推荐系统来说,发掘冷门、长尾的优质内容,并把它们推荐给合适的用户,相比其他类目的推荐显得更加重要冷门、长尾的

随着互联网的迅速发展,推荐系统变得越来越重要。推荐系统是一种用于预测用户感兴趣的物品的算法。在互联网应用程序中,推荐系统可以提供个性化建议和推荐,从而提高用户满意度和转化率。PHP是一种被广泛应用于Web开发的编程语言。本文将探讨PHP中的推荐系统和协同过滤技术。推荐系统的原理推荐系统依赖于机器学习算法和数据分析,它通过对用户历史行为进行分析,预测

作者 | 汪昊审校 | 孙淑娟推荐系统是目前互联网行业最火爆的技术之一。在过去的十年中,互联网行业诞生了数以百万计的推荐系统模型迭代版本。尽管针对不同场景进行优化的推荐系统模型非常之多,但是经典的模型非常少。矩阵分解是推荐系统领域勃兴早期,在 Netflix 大赛中展露头角的推荐系统算法,也是过去十年中最为成功的推荐系统算法。尽管到 2023 年的今天,推荐系统领域早已是深度学习的天下,矩阵分解仍然广泛应用于各大公司研发过程中,并且仍然有许多科研人员在从事相关算法的研究工作。矩阵分解算法最为经典


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境