1. 程式人生 > >【推薦系統演算法】DPMF(Dependent Probabilistic Matrix Factorization).上篇

【推薦系統演算法】DPMF(Dependent Probabilistic Matrix Factorization).上篇

Adams, Ryan Prescott, George E. Dahl, and Iain Murray. “Incorporating
side information in probabilistic matrix factorization with gaussian
processes.” arXiv preprint arXiv:1003.4944 (2010).

對“PMF”這個概念比較陌生的同學請先閱讀這篇基礎PMF演算法
對“利用MCMC方法積掉後驗概率”這句話感到費解的同學可以參看這篇貝葉斯PMF演算法

在PMF中,使用一個關係矩陣Z來描述使用者對電影的評分。但除了這個基本資訊之外,還有一些輔助資訊

:使用者的身份、在網頁上的操作、電影的票房、打分發生的時間等。
再以籃球比賽為例,Z矩陣儲存球隊間競賽得分。而球隊球員買賣、傷病情況、主客場、比賽時間都是輔助資訊。
這篇文章在PMF的基礎上,引入了輔助資訊,其方法稱為DPMF。作者George Dahl是Hinton的學生。原始碼和資料都可以下載。本文使用籃球比賽舉例。

模型

關係矩陣Z

Z描述隊伍間兩兩比賽的結果:Zmn為m,n兩隊比賽時m隊的得分,Znm為n隊的得分。
x表示輔助資訊,其維度為D。基礎PMF中的關係矩陣Z是一個隨機變數,這裡的Z(x)變成了關於x隨機過程
在一個觀測中,Z(x)每個位置上的x值互不相同。

例子
x可能包括比賽的地點和時間。主場/客場會影響發揮,相近似的比賽場次會有相近的結果。但即使知道了時間和地點,比賽仍然存在不確定性。某一特定時刻的Z(x0)是一個隨機變數。

和基礎PMF類似,Z的每一個元素是一個高斯隨機變數

Zm,n(x)N(Ym,n(x),σ2)=N(Um(xm)VTn(xn),σ2)

U的第m行以及V的第n行,對應Z中的一個元素mn,故U的每一行的x取值相同,記為xm,同理V的每一行的輔助資訊記為xn。例如:只討論一個輔助資訊(時間),則xm,xn為標量。(後續為簡潔起見,有時省略了x的腳標)

其中均值Y(x)表示系統內部引數,方差σ。隨機過程U

(x),V(x)尺寸為M×K,N×K,為低秩的系統內部引數,是要估計的。

為了在同一場比賽的兩隊得分間引入相關性(己方得分高注重進攻防守弱對方得分高),用二元高斯來描述對稱位置的元素。σ,ρ為待估計變數。

[Zm,n(x)Zn,m(x)]N(Ym,n(x)Yn,m(x),[σ2ρσ2ρσ2σ2])

整個關係矩陣的概率為各元素概率乘積。

p(Z(x))=m,np(Zm,n(x))

特徵矩陣U,V

U,V的每一行表示各個隊伍的得分/失分情況(進攻/防守能力);U,V的每一列代表不同內部因素。隊伍m的進攻能力,以及隊伍n的防守能力,共同決定兩隊比賽時,隊伍m的得分:

Zm,n(x)=Um(x)TVn(x)

這裡寫圖片描述
各個隊伍的情況(U(x),V(x)各行)相互獨立,但一支隊伍的各種因素(Um(x)K)關於x有相關性。例如:主客場會影響前鋒的表現,也會影響中鋒的表現。U,V的各列之間存在聯絡。
用獨立隨機過程的線性組合來表達這種隊伍內部各因素的相關性

Um(x)=LUfUm(xm)+

相關推薦

推薦系統演算法DPMF(Dependent Probabilistic Matrix Factorization).

Adams, Ryan Prescott, George E. Dahl, and Iain Murray. “Incorporating side information in probabilistic matrix factorization

推薦系統演算法DPMF(Dependent Probabilistic Matrix Factorization).中篇

Adams, Ryan Prescott, George E. Dahl, and Iain Murray. “Incorporating side information in probabilistic matrix factorization wit

推薦系統實戰:C++實現基於用戶的協同過濾(UserCollaborativeFilter)

color style popu ted std 相似度 abi ear result 好早的時候就打算寫這篇文章,可是還是參加阿裏大數據競賽的第一季三月份的時候實驗就完畢了。硬生生是拖到了十一假期。自己也是醉了。。。找工作不是非常順利,希望寫點東西回想一下知識。然後再

讀書筆記推薦系統實踐

第一章 好的推薦系統 什麼是推薦系統? 在資訊過載的時代,無論是資訊生產者還是資訊消費者都很難獲得有用的資訊。前者,需要把自己好的東西推廣出去,後者需要找到自己需,要但自己所不知道的東西。 為了解決資訊過載的問題,人類已經提出了很多解決方案,其中具有代表性有分類目錄和搜尋引擎。分別催生了雅虎和

備忘基於Hadoop,Spark大資料技術的推薦系統演算法實戰教程

課程簡介:                 2017年最新大資料推薦系統演算法實戰視訊教程,共18.1G容量。附講義、程式碼與練習資料,配套齊全,高清不加密。                 課程介紹:                  網際網路行業是大資料應用最前沿的陣地,目前主流的大資料技術,包括 ha

推薦系統詳解基於內容的推薦演算法

作者:章華燕編輯:田 旭前言在第一篇文章《推薦演算法綜述》中我們說到,真正的推薦系統往往是多個推

推薦系統--推薦系統介紹和基本架構流程

方案 排序 技術分享 企業 生成 線上 系統 src 測試數據 一、前述 推薦系統是企業中常用的技術,所以系統的掌握推薦系統的知識是很有必要的。本專欄主要講述手機APP下載的項目。 常用的推薦方法有兩個,分別是基於物品的推薦和基於用戶的推薦。 基於用戶的推薦原理是:跟你喜好

推薦系統評估指標總結

準確率指標: 該型別的指標大部分是推薦演算法優化的目標,衡量著推薦演算法的優劣。 準確率。推薦給使用者的商品中,屬於測試集的比例,數學公式$P(L_{u})=\frac{L_{u}\bigcap B_{u}}{L_{u}}$ 。整個測試集的準確率為 $P_{L}=\frac{1}{n}\sum_{u\

推薦系統推薦系統常用資料集

最近在做融合評論資訊的推薦系統,找到了許多資料集,就在這裡總結一下吧。 Retailrocket 商品評論和推薦資料 The dataset consists of three files: a f

Machine Learning第九講推薦系統-- (二)協同過濾

一、Collaborative Filtering(協同過濾) 協同過濾能夠自行學習所需要使用的特徵。 來看下面的例子: 在之前講的基於內容的推薦系統中,我們需要事先建立特徵並知道特徵值,這是比較困難的。 假設我們某一使用者的喜好,即假如Alice、Bob喜歡romance的電影,carol

Machine Learning第九講推薦系統--(一)基於內容的推薦系統

符號介紹: 對於每一個使用者j,假設我們已經通過學習找到引數,則使用者j對電影i的評分預測值為:。   對於上面的例子:                   

推薦系統搜狐個性化視訊推薦架構設計和實踐

為什麼要做推薦系統?視訊的覆蓋率問題,好的視訊無法難以被人發現,隨著使用者的量的增加,大部分使用

推薦系統2017年,你還在用使用者畫像和協同過濾做推薦系統嗎?

本文是大資料雜談 7 月 13 日社群公開課分享整理,也是第四正規化主題月的第二堂公開課內容。 今天想和大家分享,如何使用大規模機器學習解決真實的業務問題。我們今天會以機器學習中的一個典型場景為例來講解,即基於大規模機器學習模型的推薦系統。 推薦系統的本質是什麼? 比如說我們看到手機淘寶首頁,往下一

推薦系統Factorization Machine

Factorization Machine(FM)1是現代推薦系統的基礎演算法之一。本文介紹FM的模型思想、計算與優化方法。 FM模型 問題 輸入:n維資料x。 預測:標量y 舉例 - 迴歸:x的元素和y都為實數 - 二類分類

推薦系統推薦系統重要會議和期刊

ACM SIGKDD(Special Interest Group on KnowledgeDiscovery and Data Mining)國際會議是由ACM的資料探勘及知識發現專委會主辦的資料探勘領域的頂級年會。它涵蓋了特邀主題演講(keynote presentations)、論文口頭報告(o

推薦系統融合 MF 和 RNN 的電影推薦系統

來源:楊敏   PaperWeekly 全標題:Leveraging Long and Shor

推薦系統基於內容的推薦系統和基於知識的推薦系統

1、基於內容的推薦系統 (1)基於內容的推薦演算法概述 基於內容的推薦演算法(Content-based Recommendations, CB)也是一種工業界應用比較廣的一種推薦演算法。由於協同過濾推薦演算法中僅僅基於使用者對於商品的評分進行推薦,所以有可

推薦系統協同過濾

一、協同過濾:找到與某使用者有相同偏好的其它使用者,具體步驟: 1 收集使用者偏好(比如電影推薦時,某使用者對某電影的的打分,評論、轉發等) 2 找到相似的使用者或者物品 3 計算推薦 基於使用者的協同過濾:計算使用者之間的相似度 使用者A與使用者C很相似,

操作系統原理進程的執行

個人理解 程序 子進程 自身 family 常常 驅動程序 什麽 新的 處理器的分配對象大多是進程。進程是程序的一次執行,進程的實體是由程序段、數據段和進程控制塊組成,程序沒有進程就無法執行。可是進程究竟是怎麽執行的? PS:下面的栗子,來源於個人對進程

深入理解計算機系統系列計算機系統漫遊

內置 時間 其他 部分 以及 brush 上下 抽取 不同 操作系統原理是計算機行業基本功,想要成為一名計算機領域的專業人士,必不可少要打好基礎。最近打算重點讀一讀《深入理解計算機系統》這本書,回顧和提升自己對計算機和操作系統的理解。這是第一篇:【計算機系統漫遊】。【計算機