1. 程式人生 > >01_從電影推薦開始,聊協同過濾

01_從電影推薦開始,聊協同過濾

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

 

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

 

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

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

 

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

:簡要步驟如下

  • 找到使用者A(user_id_1)的興趣愛好

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

    Set<user_id>

  • 找到該群體喜歡的電影集合Set<movie_id>

  • 將這些電影Set<Movie_id>推薦給使用者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<user_id>

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

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

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

畫外音:“協同”就體現在這裡。

 

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

 

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

推薦文章:

《1分鐘瞭解“區塊鏈”的本質》

《1分鐘瞭解“挖礦”的本質》


原文地址:https://blog.csdn.net/z50L2O08e2u4afToR9A/article/details/79565720

原創: 58沈劍  架構師之路