技術細分|推薦系統——推薦系統中的數據去偏方法

本篇的主要脈絡同樣依據中科大何向南教授、合工大汪萌教授聯合在 TKDE 上的一篇綜述文章展開:Bias and Debias in Recommender System: A Survey and Future Directions

下面按照前導文章中介紹的數據偏差 Selection Bias、Conformity Bias、Exposure Bias、Position Bias,分別介紹相應的去偏方法。Popularity Bias、Unfairness 以及如何減緩閉環累積誤差的方法,暫時不會在本文中涉及。

一、基礎概念

1. Propensity Score

Propensity Score 的詳細介紹建議查看下文,,注意掌握幾個變量定義:干預變量 T,結果變量 Y,混淆變量 X,觀測變量 U

集智科學家:如何在觀測數據下進行因果效應評估78 贊同 · 1 評論文章?編輯

    • 定義:在干預變量之外的其他特征變量為一定值的條件下,個體被處理的概率
    • 傾向指數概括了群體的特征變量,如果兩個群體的傾向指數相同,那他們的干預變量就是與其他特征變量相獨立的。對于藥物實驗來說,如果能保證兩群人的他吃藥的概率完全一樣,那么可以說這兩群人其他特征分布也是一樣
    • 傾向指數在實際應用中觀測不到,但可以使用有監督學習的方法進行估計,一般是回歸

在推薦中來說“被處理”可以理解為“被觀測到”,如何計算某個 item 被某個 user 觀測到的概率?容易想到的思路是在保持其他條件相同再計算概率,例如排序隊列位置不同時重復同個 user 在同個 item 上的觀測概率,但這種理想情況一般會傷害用戶體驗。

如何計算 Propensity Score 是一個獨立問題,可以 naive 的統計方法(統計歷史上同位置的平均點擊率)、隱變量學習(例如 click models 中預估 position bias 的方法,可以參考我之前的文章? 成指導:深入點擊模型(二)PBM, UBM 與 EM 算法),或者 [SIGIR 2018] Unbiased Learning to Rank with Unbiased Propensity Estimation 中介紹的通過對偶學習 Ranking Model 和 Propensity Model 來求解 Propensity Score 思路,也可以用于參考。

2. 點擊模型(click models)

介紹點擊模型之前,需要區分 click models 區別于 FM/FFM/Wide&Deep/DeepFM 等一系列近年大火的 CTR 模型,點擊模型關注更多的是可解釋性,通過人為知識提出先驗假設,再通過概率圖模型獨立建模各因素,更多時候依賴于 EM 算法求解。因此各種 bias 其實都可以作為其中一個因素存在于概率圖,然后被求解出來。點擊模型被廣泛使用于解決 exposure bias/ position bias 中,之前我有兩篇文章深入介紹過點擊模型,這里就不重復寫了:

  1. 成指導:深入點擊模型(一)RCM, CTR, CM 與 極大似然估計
  2. 成指導:深入點擊模型(二)PBM, UBM 與 EM 算法

二、數據偏差

數據偏差的處理方法有一些共通思路,這里先把共通思路介紹一下,再分開介紹各種 Bias 的獨特處理方法。一般需要去偏的步驟有 2 個,分別是在評估中去偏、訓練中去偏。

1. 評估去偏

評估推薦系統在評分預測、推薦準確率上的常見 user-item 評估度量指標吧δ_{u,i}可以是 AUC、MAE、MSE、DCG@K、Precision@K,對多個評分樣本的評估度量?H(R^)?,一般是單個樣本度量的加權平均。這里“多個樣本”常規做法是指觀測到的樣本而不是真實的全量樣本,此時會出現 selection bias 造成的評估指標上的偏差,修正后的評估度量為?

常用工具有 Propensity Score(傾向分數) 。做法是在單個樣本的評估指標中加入?IPS(逆傾向得分,即傾向指數的倒數),傾向性?P_{u,i}定義為觀測某個 user-item 評分值的邊際概率?P(O_{u,i}=1)?,因此修正評估度量

2. 訓練去偏

  1. 數據代入法。數據偏差的本質是缺少無偏數據,那么通過協同過濾、社交關系加強等方式,補充盡可能相似的數據源,并且根據相似程度決定數據源的貢獻程度
  2. 傾向分數。這個比較好理解,利用 IPS(逆傾向分數)修正每組樣本的 loss 貢獻值,如? ,其中Reg(θ)?是參數的正則化限制
  3. Meta Learning。Meta Learning 的 motivation 就是如果模型可以先在數據較多的數據集上學到這些有關“該如何學習新的知識”的先驗知識,由此讓模型先學會“如何快速學習一個新的知識”,再去數據較少的數據集上學習就變得很容易了。這么看 Meta Learning 完美契合 selection bias 的解決方案,但因為這是個獨立學科方向,建議參考以下回答單獨理解:

什么是meta-learning?599 關注 · 17 回答問題?編輯

三、選擇偏差

1. 評估去偏

  • ATOP
ATOP 是另一種度量推薦系統效果的無偏指標。ATOP 方法同時建立在 2 個假設之上:(1)高相關性評分在觀測數據上是隨機缺失的;(2)其他評級值允許任意丟失數據機制只要丟失的概率高于相關的評分值。這兩個假設實際上較難同時符合,因此 ATOP 的應用也較少
為用戶 u 已觀測到的相關性 item 的個數, ?為在 TopK item 中的個數,作者證明 ATOP 是對平均召回率的無偏估計,并與用戶的平均精度成正比

2. 訓練去偏

Doubly Robust 模型。這個方法需要根據已有數據,再學習一個預測的模型反事實評估某個個體在干預變量變化后,結果變量的期望值。經過證明,只要傾向指數的估計模型和反事實預測模型中有一個是對的,計算出的平均因果效應就是無偏的;但如果兩個模型估計都是錯誤的,那產生的誤差可能會非常大(看起來也并非多么 robust)。

四、一致性偏差

conformity bias 大多數情況下是由于人們的“從眾心理”導致的,比較簡單的處理方法就是將投票人數(樣本數量)、投票分布、得分平均值,都作為建模的輸入信號,用一個擬合器去擬合去偏后的修正得分值。本質上就是希望把“社會因素“作為考慮的一部分。

五、曝光偏差

1. 訓練去偏

  • 傾向分數
類似 selection debias 小節,使用逆傾向分數計算即可。當計算度量指標的時除以傾向分數。這里提一篇文章 [WSDM 2020] Unbiased Recommender Learning from Missing-Not-At-Random Implicit Feedback,先假設: 即物品必須曝光給用戶且相關才會發生點擊。之后定義了一個理想化的 loss 函數對 label=0/1 的樣本求損失和,每個樣本會被相關性等級度量:?
經過去偏操作之后,能夠得到修正后的損失函數無偏預估值形式:
  • 采樣
雖然曝光的內容有偏,但是一般學習中使用到的正負樣本都是采樣得到的,那么這里就有一個階段需要獨立處理:采樣。而在一般的信息檢索問題中,負例一般是遠遠大于正例,所以對冗余的負例選擇性采樣是一個需要探索的問題。可以使用最簡單的隨機采樣,或者對于比較流行的負例內容做重復采樣(流行數據一般經過充分曝光,負例程度比較確信)。更復雜的思路里,會把樣本的 side information 或者圖關系作為預測采樣率的工具,按照采樣率工作。
這里多說一點,實際工作中,我們嘗試對于未曝光的樣本,適當采樣作為”偽負樣本“(因為不確定未曝光是正是負,但因為推薦問題中正例占比很低)可以增加模型的泛化能力。

六、位置偏差

Position bias 廣泛存在于搜索系統中(大家自己想想是不是經常性點擊百度/谷歌搜索結果的第一位返回結果),推薦系統中也同樣存在。而經典去偏方法就是使用點擊模型(包括 click models 的各種書籍或經典論文中,一般也都是拿 position bias 作為分析示例)。同理,逆傾向分數同樣適用。點擊模型、傾向分數的解釋,請參考本文的文章開頭。

在神經網絡 CTR 模型中,華為發表的[RecSys 2019] PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems,以及 Youtube 發表的 [RecSys 2019] Recommending What Video to Watch Next: A Multitask Ranking System,嘗試過將 position bias 作為多塔建模的單獨一塔或作為獨立一塔的主要輸入,并且顯式地通過 logits 相乘來反應即物品必須曝光給用戶且相關才會發生點擊,而是否曝光僅與物品所處位置?決定。


至此,常見數據偏差的去偏思路與方法已經介紹完成了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163352.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PDF添加文字或者圖片

引入依賴 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version> </dependency> <dependency><groupId>org.apache.pdfbox</groupId><artifactI…

找JPG格式圖片的地址(持續更新中)

問題描述&#xff1a;找JPG格式圖片的地址 解決辦法&#xff1a; 第一個 谷歌的images 第二個&#xff0c;搜狗圖片和百度圖片 不過下載是WEBP格式&#xff0c;可以使用一個在線WEBP格式轉JPG格式的在線網站即可。 轉換的網址為&#xff1a; https://ezgif.com/webp-to-j…

【學歷是敲門磚】如果你想有個好的起點,不妨沖一沖計算機考研,這本書將會助你一臂之力

目錄 計算機考研難點 《計算機考研精煉1000題》揭秘問答 1. 為什么是1000題&#xff1f; 2. 有什么優勢&#xff1f; 3. 編寫團隊水平如何&#xff1f; 4. 題目及解析品質如何&#xff1f;可以試讀嗎&#xff1f; 購買鏈接 高質量的學習提升圈子 京東熱賣下單鏈接&…

可視化NGINX管理平臺Nginx Proxy Manager

# for CentOSyum install docker-compose -y# for Ubuntuapt-get install docker-compose -y 如果提示&#xff1a; 沒有可用軟件包 docker-compose&#xff0c; 錯誤&#xff1a;無須任何處理 通過 pip 安裝 docker-compose # 添加企業版附加包 yum -y install epel-rel…

java--static的注意事項

1.使用類方法、實例方法時的幾點注意事項 ①類方法中可以直接訪問類的成員&#xff0c;不可以直接訪問實例成員。 ②實例方法中既可以直接訪問類成員&#xff0c;也可以直接訪問實例成員。 ③實例方法中可以出現this關鍵字&#xff0c;類方法中不可以出現this關鍵字的。

利用工業網關進行設備數采的方法-天拓四方分享

在工業物聯網&#xff08;IIoT&#xff09;中&#xff0c;設備數采是一種關鍵技術&#xff0c;它通過收集、分析和傳輸設備運行過程中的各種數據&#xff0c;為工業制造提供重要的信息和洞察。隨著工業4.0和智能制造的快速發展&#xff0c;工業數據采集和處理已經成為工業物聯網…

甲方使用外包真的能節約成本嗎?

語&#xff1a;外包作為一種常見的業務模式&#xff0c;被廣泛應用于各行各業。然而&#xff0c;甲方在選擇外包時&#xff0c;是否真的能夠實現成本節約呢&#xff1f;本文將從多個角度進行探討。 正文&#xff1a; 降低人力成本&#xff1a;外包通常是將某些業務環節或項目交…

2022年全國英烈紀念設施數據,各區縣均有!

中國是一個擁有悠久歷史和燦爛文化的國家&#xff0c;其英烈紀念設施承載著中國人民對為國家獨立、民族解放和民主進步而英勇斗爭的先烈們的崇敬和緬懷之情。 這些設施不僅是中國革命歷史和先烈精神的重要載體&#xff0c;也是傳承紅色文化、弘揚革命精神的重要場所。 今天分享…

【RtpRtcp】3: webrtc m79:video 相關創建及切片、發送

m79 的 客戶端代碼流程。 對于視頻幀: CreateRtpStreamSenders 管理一組RtpStreamSender ,每一個RtpStreamSender 都進行rtp包的發送: 具體發送是RTPSenderVideo 處理,RTPSenderVideo 對收到的h264 幀,進行幀分片rtp,然后一組包一起使用LogAndSendToNetwork 發送的。 Rtp…

js預解釋(預編譯)

js預解釋(預編譯):在Javascript真正被解析之前, js解析引擎會首先把整個文件進行預處理, 以消除一些歧義. 這個預處理的過程就被稱為預解釋 在瀏覽器環境中, js引擎會整合<script>標簽中的內容, 產生window對象, 這個window對象就是全局對象在node環境中, 會產生global對…

Linux中df命令使用

在Linux中&#xff0c;df命令用于顯示磁盤空間的使用情況。它的基本語法如下&#xff1a; df [選項] [文件或目錄]這個命令可以用來查看當前系統上各個磁盤分區的使用情況。如果沒有指定文件或目錄&#xff0c;則所有當前被掛載的文件系統的可用空間將被顯示。 df命令的一些常…

windows11下安裝Tensor RT,并在conda虛擬環境下使用

建議仔細讀一讀NVIDIA官方出的安裝教程&#xff0c;里面有windows、linux等安裝教程&#xff0c;非常詳細&#xff0c;這里再做一下簡要總結。 TensorRT主要有三種安裝模式、五種安裝方式 毫無疑問&#xff0c;在windows系統中&#xff0c;我們只能選擇zip安裝。 安裝tensorR…

安全牛《數據分類分級自動化建設指南》發布|美創入選代表廠商,分享智能化探索

近日&#xff0c;安全牛發布《數據分類分級自動化建設指南》研究報告&#xff0c;對數據分類分級的主要技術、實施要點、選型指導、發展趨勢等展開深入探討&#xff0c;為各行業數據分類分級自動化工作落地提供幫助與指引。 美創科技被列為代表推薦廠商&#xff0c;落地案例—農…

STM32-SPI協議詳解及CubeMX+HAL函數配置分析

1 SPI協議 SPI(Serial Peripheral interface)串行外圍設備接口是同步全雙工的通信總線,在芯片的管腳上只占用四根線。 1.1 物理層 SS/NSS/CS:從設備選擇信號線(片選信號線)。由主設備控制,選擇指定的從設備。 當主機要選擇從設備時,把該從設備的SS信號線設置為低電平…

輕松記錄收支明細,一鍵打印,財務無憂!

作為現代人&#xff0c;管理好個人財務是非常重要的。但是&#xff0c;如何記錄收支明細并打印出來呢&#xff1f;今天&#xff0c;我們向您推薦一款財務軟件&#xff0c;幫助您輕松解決這個問題。 首先第一步&#xff0c;我們要打開【晨曦記賬本】&#xff0c;并登錄賬號。 第…

2023.11.22 IDEA Spring Boot 項目熱部署

目錄 引言 操作步驟 1. 在 pom.xml 中添加熱部署框架支持 2. Setting 開啟項目自動編譯 3. 以后創建的新項目進行同步配置 4. 重復 配置 步驟2 的內容 5. 開啟運行中的熱部署 引言 Spring Boot 的熱部署是一種在項目正在運行的時候修改代碼&#xff0c;卻不需要重新啟動…

yolov7訓練數據集詳細流程bike-car-person

一、準備深度學習環境 下載yolov7代碼 下載完成解壓放在自己的主目錄 命名yolov7-4 二、 準備自己的數據集 1.進入主目錄 2.進入data目錄下把你的xml文件夾命名為Annotations&#xff0c;把你的存放圖片文件夾命名為images 3.分別新建ImageSets、imagtest&#xff08;里面…

幾款Java源碼掃描工具(FindBugs、PMD、SonarQube、Fortify、WebInspect)

說明 有幾個常用的Java源碼掃描工具可以幫助您進行源代碼分析和檢查。以下是其中一些工具&#xff1a; FindBugs&#xff1a;FindBugs是一個靜態分析工具&#xff0c;用于查找Java代碼中的潛在缺陷和錯誤。它可以檢測出空指針引用、資源未關閉、不良的代碼實踐等問題。FindBu…

unordered_map 與 unordered_set 的使用

unordered_map unordered_map 的介紹文檔 unordered_map 的介紹文檔&#xff1a;來自cpluscplus.com 的中文翻譯 unordered_map是存儲<key, value>鍵值對的關聯式容器&#xff0c;其允許通過keys快速的索引到與 其對應的value。在unordered_map中&#xff0c;鍵值通常用…

JAVA爬蟲2 - Jsoup解析、對接MySQL、多線程爬蟲、json庫使用

官網:https://jsoup.org/download Jsoup是一款基于Java的HTML解析器,它可以方便地從網頁中抓取和解析數據。它的主要作用是幫助開 發者處理HTML文檔,提取所需的數據或信息。下面介紹幾個常用的API: 選擇器(Selector)API:用于根據CSS選擇器語法選擇HTML元素。 屬性(Attribute…