「轉」從電影推薦聊協同過濾演算法, 保證大夥都能懂

電影快訊 1173℃

工程架構方向的程序員,看到推薦/搜索/廣告等和演算法相關的技術,心中或多或少有一絲膽怯。但認真研究之後,發現其實沒有這麼難。

今天的1分鐘系列,給大家介紹下推薦系統中的「協同過濾」,絕無任何公式,保證大夥弄懂。

什麼是協同過濾(Collaborative Filtering)?

:通過找到興趣相投,或者有共同經驗的群體,來向用戶推薦感興趣的信息。

舉例,如何協同過濾,來對用戶A進行電影推薦?

:簡要步驟如下

找到用戶A(user_id_1)的興趣愛好

找到與用戶A(user_id_1)具有相同電影興趣愛好的用戶群體集合Set

找到該群體喜歡的電影集合Set

將這些電影Set推薦給用戶A(user_id_1)

具體實施步驟如何?

:簡要步驟如下

(1)畫一個大表格,

橫坐標

是所有的movie_id,

縱坐標

所有的user_id,

交叉

處代表這個用戶喜愛這部電影

「轉」從電影推薦聊協同過濾演算法, 保證大夥都能懂 - 陸劇吧

如上表:

橫坐標,假設有10w部電影,所以橫坐標有10w個movie_id,數據來源自

資料庫

縱坐標,假設有100w個用戶,所以縱坐標有100w個user_id,數據也來自

資料庫

交叉處,「1」代表用戶喜愛這部電影,數據來自

日誌

畫外音:什麼是「喜歡」,需要人為定義,例如瀏覽過,查找過,點贊過,反正日誌里有這些數據

(2)找到用戶A(user_id_1)的興趣愛好

「轉」從電影推薦聊協同過濾演算法, 保證大夥都能懂 - 陸劇吧

如上表,可以看到,用戶A喜歡電影{m1, m2, m3}

(3)找到與用戶A(user_id_1)具有相同電影興趣愛好的用戶群體集合Set

「轉」從電影推薦聊協同過濾演算法, 保證大夥都能懂 - 陸劇吧

如上表,可以看到,喜歡{m1, m2, m3}的用戶,除了u1,還有{u2, u3}

(4)找到該群體喜歡的電影集合Set

如上表,具備相同喜好的用戶群里{u2, u3},還喜好的電影集合是{m4, m5}

畫外音:「協同」就體現在這裡。

(5)未來用戶A(use_id_1)來訪問網站時,要推薦電影{m4, m5}給ta。

協同過濾大致原理如上,希望大家有收穫。

標籤: 電影快訊