
一個簡單的基于內容的推薦算法_數據分析師
最近閑下來又開始繼續折騰推薦系統了,聲明一下,本文只是介紹一下最基礎的基于內容的推薦系統(Content-based recommender system)的工作原理,其實基于內容的推薦系統也分三六九等Orz,這里只是簡單的較少一下最原始的、最基本的工作流程。
基于內容的推薦算法思路很簡單,它的原理大概分為3步:
1、為每個物品(Item)構建一個物品的屬性資料(Item Profile)
2、為每個用戶(User)構建一個用戶的喜好資料(User Profile)
3、計算用戶喜好資料與物品屬性資料的相似度,相似度高意味著用戶可能喜歡這個物品,相似度低往往意味著用戶不喜歡這個物品。
選擇一個想要推薦的用戶“U”,針對用戶U遍歷一遍物品集合,計算出每個物品與用戶U的相似度,選出相似度最高的k個物品,將他們推薦給用戶U——大功告成!
下面將詳細介紹一下Item Profiles和User Profiles。
1、Item Profiles
說到基于內容的推薦系統,就不得不提到“Item Profiles”,它是整個系統中最關鍵的內容之一,這里的“Item”是指被推薦的物品,而“Item Profiles”是指被推薦物品的詳細屬性。
什么是“Item”?:舉例來講對,于一個電影推薦系統來講,它的目標就是向用戶推薦他們可能喜歡的電影,這其中:電影就相當于“Item”;
什么是“Item Profiles”?演員名單、導演名單、影片類型、時長、上映日期、票房等等,這些電影的屬性就是所謂“Item Profiles”了。
2、Representing Item Profiles
還是拿電影推薦系統來舉例吧,為了簡單起見,我們假設“Item Profiles”中只包含演員名單。這樣一來,《黑客帝國》的Item Profiles就可以這樣表示了:{基努·里維斯、勞倫斯·菲什伯恩、凱莉·安·摩絲、雨果·維}(為了方便,我們假設《黑客帝國》中只有這4位演員)。然而這種自然描述的Item Profiles不能直接用在代碼里啊,我們需要的是干貨!所以還要把自然描述的Item Profiles映射成程序能夠讀懂的數據結構,所以需要進行一個映射——將自然語言描述的Item Profiles轉換成0,1矩陣,方法是這樣的:
2.1、首先構造一個1xn維的矩陣,n表示全球主要的影星數量。初始化這個1xn維的矩陣,將所有元素設置為0,這樣我們就會得到一個類似這樣子的行向量:[0,0,0,0,0,0,……………………….,0] ,其中一共有n個0。
2.2、做一個假設:我們假設這個行向量的第0個元素代表成龍、第1個元素代表基努·里維斯、第2個元素代表勞倫斯·菲什伯恩、第3個元素代表湯姆克魯斯、第4、5個元素分別代表凱莉·安·摩絲和雨果·維、剩下的代表誰無所謂了,由他去吧!
2.3、將自然語言描述的Item Profiles映射到這個1xn維的矩陣中,映射的方法很直觀,如果影片M中有演員A1,A2和A3,那么M的行向量中,A1、A2、A3對應的元素分別置為1,表示影片M中出現的演員有A1、A2、A3。
舉例來講,按照第2步中的假設的話,那么影片《黑客帝國》的0,1矩陣就是[0,1,1,0,1,1,0,0,0,0,0,0……………,0]。不難看出,由于矩陣的第0個元素代表成龍,而成龍并不是《黑客帝國》中的演員,所以矩陣中第0個元素是0,表示成龍不是《黑客帝國》中的演員;同樣的,由于矩陣的第1個元素代表基努·里維斯,而基努·里維斯是《黑客帝國》中的演員,所以矩陣中第1個元素是1,表示基努·里維斯是《黑客帝國》中的演員。同理,矩陣中第2,4,5個元素是1,分別表示勞倫斯·菲什伯恩、凱莉·安·摩絲、雨果·維是《黑客帝國》中的演員。剩下的元素就都是0了。
3、User Profiles
到目前為止,我們已經為Item進行建模了,模型就是“Item Profiles”,也就是那個1xn維的0,1矩陣。但是這還不夠,我們還需要為用戶進行建模,所謂的對用戶建模,就是構造“User Profiles”,而這個“User Profiles”就相當于用戶的偏好。在電影推薦系統這個例子中,用戶U的偏好可以表示為對各個演員的喜好程度,舉例來講:
假設我們有一個評分矩陣,其中包含2個用戶和3個電影:
矩陣的含義是:
用戶Alice對《尖峰時刻》 《紅番區》 《黑客帝國》的評分分別為4、5、3分(滿分5分)
用戶Bob對 《尖峰時刻》 《紅番區》 《黑客帝國》的評分分別為1、1、4分(滿分5分,空白的表格表示Bob尚未對該電影打分)
經過分析,可以發現Alice相對來講更喜歡《尖峰時刻》和《紅番區》,而成龍是這兩部電影的共同點,由此我們很自然的猜想到:Alice可能喜歡成龍的電影!利用這一個消息,就可以開始為Alice構建她的“User Profiles”了,方法如下:
3.1、算出Alice所有打分的平均分,在這個例子中Alice的平均分Avg =(4+5+3)/2 = 4
3.2、利用公式:算出Alice對成龍的喜好程度。其中Xi是所有涉及到成龍的、而且是Alice評過分的電影,Avg就是3.1中算出來的平均分,n就是所有涉及到成龍的、而且是Alice評過分的電影的數量。在這個例子中公式應該等于((4 – 4) + (5 – 4)) / 2 = 0.5,也就是說,Alice對成龍的喜好程度可以用0.5這個數值來反應。
3.3、類似于Item Profiles,User Profiles也用到了一個1xn維的矩陣,與Item Profiles的矩陣不同的是,User Profiles中矩陣的元素不再是0,1,而是由3.2計算得來的對每個演員的喜好程度,所以最終Alice的矩陣可以表示為[0.5,x,y,z,………..xx,oo],回想一下,在2.2中我們已經做出了假設:矩陣的第0個元素代表成龍,所以這里的第0個元素是0.5,表示Alice對成龍的喜好程度是0.5。同理,可以算出Alice對其他演員的喜好程度。
4、計算推薦依據
利用余弦相似度的公式來計算給定的User “U”和給定的Item “I”之間的距離。余弦相似度的值越大說明U越有可能喜歡I。
余弦相似度的具體計算方法如下:
在電影推薦系統的例子中:
Ua表示,用戶U對演員a的喜好值(即User Profiles矩陣中,演員a對應的值)
Ia表示,電影I是否包含演員a(即Item Profiles矩陣中,演員a對應的值)
5、開始推薦!
我們可以按照4中介紹的方法來遍歷整個影片庫,計算Alice與每個電影的相似度,選擇相似度最高的前k個電影。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
2025 年,數據如同數字時代的 DNA,編碼著人類社會的未來圖景,驅動著商業時代的運轉。從全球互聯網用戶每天產生的2.5億TB數據, ...
2025-05-27CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25