自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

1分鐘了解相似性推薦

開發(fā) 開發(fā)工具
之前聊的“協(xié)同過濾”和“基于內(nèi)容的推薦”,都必須分析用戶的歷史行為數(shù)據(jù)(例如電影點(diǎn)擊數(shù)據(jù),職位查看數(shù)據(jù)等),針對(duì)不同的用戶進(jìn)行個(gè)性化推薦。如果系統(tǒng)沒有用戶的歷史行為數(shù)據(jù)積累,如何實(shí)施推薦呢?

前幾天聊的“協(xié)同過濾(Collaborative Filtering)”和“基于內(nèi)容的推薦(Content-based Recommendation)”,都必須分析用戶的歷史行為數(shù)據(jù)(例如電影點(diǎn)擊數(shù)據(jù),職位查看數(shù)據(jù)等),針對(duì)不同的用戶進(jìn)行個(gè)性化推薦。如果系統(tǒng)沒有用戶的歷史行為數(shù)據(jù)積累,如何實(shí)施推薦呢?

[[223546]]

今天接著用通俗的語言說說推薦算法中的“相似性推薦”。

什么是“相似性推薦”?

答:對(duì)于新用戶A,沒有ta的歷史行為數(shù)據(jù),在ta點(diǎn)擊了item-X的場景下,可以將與item-X最相似的item集合推薦給新用戶A。

問題轉(zhuǎn)化為,如何用一種通用的方法,表達(dá)item之間的相似性。

仍以電影推薦為例,新用戶A進(jìn)入了《我不是潘金蓮》電影詳情頁,如何對(duì)A進(jìn)行電影推薦呢?

先看二維空間的點(diǎn)N,如何推薦與其最近的點(diǎn)?

答:可以用二維空間中,點(diǎn)與點(diǎn)之間的距離,表示點(diǎn)之間的遠(yuǎn)近。

對(duì)于全集中的任何一個(gè)點(diǎn)M(xi, yi),它與點(diǎn)N(x1, y1)的距離:

  1. distance = (x1-xi)^2 + (y1-yi)^2 

所以,只要計(jì)算全集中所有點(diǎn)與N的距離,就能計(jì)算出與它最近的3個(gè)點(diǎn)。

再看三維空間的點(diǎn)N,如何推薦與其最近的點(diǎn)?

答:可以用三維空間中,點(diǎn)與點(diǎn)之間的距離,表示點(diǎn)之間的遠(yuǎn)近。

對(duì)于全集中的任何一個(gè)點(diǎn)M(xi, yi, zi),它與點(diǎn)N(x1, y1, z1)的距離:

  1. distance = (x1-xi)^2 + (y1-yi)^2 + (z1-zi)^2 

所以,只要計(jì)算全集中所有點(diǎn)與N的距離,就能計(jì)算出與它最近的3個(gè)點(diǎn)。

循序漸進(jìn),對(duì)于一部電影《我不是潘金蓮》,假設(shè)它有10個(gè)屬性,則可以把它看做一個(gè)十維空間中的點(diǎn):

  1. 點(diǎn)N《我不是潘金蓮》 
  2. 導(dǎo)演:馮小剛 
  3. 女主:范冰冰 
  4. 男主:郭濤 
  5. 女配:張嘉譯 
  6. 男配:大鵬 
  7. 類型:劇情 
  8. 地區(qū):中國大陸 
  9. 語言:普通話 
  10. 日期:2016 
  11. 片長:140 

對(duì)于電影全集中的任何一部電影,都可以計(jì)算與點(diǎn)N《我不是潘金蓮》之間的距離。二維三維中的點(diǎn),可以用直線距離計(jì)算遠(yuǎn)近,10維空間{導(dǎo)演, 女主, 男主, 女配, 男配, 類型, 地區(qū), 語言, 日期, 片長}中的兩個(gè)點(diǎn)的距離,需要重新定義一個(gè)距離函數(shù),例如:

  1. distance = f1(導(dǎo)演) + f2(女主) + … +f10(片長) 

這個(gè)距離,通俗的解釋,就是每個(gè)維度貢獻(xiàn)分值的總和。

分值可以這么定義:

  1. f1(導(dǎo)演){ 
  2.          如果兩部電影導(dǎo)演相同,得1分; 
  3.          如果導(dǎo)演不同,得0分; 

例如,現(xiàn)在10維空間中,有另一個(gè)點(diǎn)M《芳華》

  1. 導(dǎo)演:馮小剛 
  2. 女主:苗苗 
  3. 男主:黃軒 
  4. 女配:NULL 
  5. 男配:NULL 
  6. 類型:劇情 
  7. 地區(qū):中國大陸 
  8. 語言:普通話 
  9. 日期:2017 
  10. 片長:140 

要計(jì)算點(diǎn)M《芳華》與點(diǎn)N《我不是潘金蓮》的距離,代入distance距離計(jì)算公式:

  1. distance = f1(導(dǎo)演) + f2(女主) + … +f10(片長) 
  2.          =1 + 0 + … + 1 
  3.          =5 

即:導(dǎo)演、類型、地區(qū)、語言、片長相同各得1分,其他維度不同得0分。

遍歷電影全集中的10w部電影,就能找到與點(diǎn)N《我不是潘金蓮》最相近的3部電影,當(dāng)用戶點(diǎn)擊《我不是潘金蓮》的詳情頁時(shí),直接推薦這3部最相近的電影即可。

相似性推薦,原理大致如上,要說明的是:

  • 由于沒有用戶歷史行為積累,不是個(gè)性化推薦,所以所有用戶的推薦結(jié)果都是相同的
  • 一般來說,距離公式確實(shí)是線性的
  • 一般來說,每個(gè)維度的權(quán)重不一樣
  • 這個(gè)線性公式,以及維度的權(quán)重,都可以通過機(jī)器學(xué)習(xí)訓(xùn)練出來

相似性推薦,希望這1分鐘,大家能有收獲。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2018-05-06 16:26:03

關(guān)聯(lián)規(guī)則數(shù)據(jù)分析關(guān)聯(lián)規(guī)則推薦

2018-03-23 11:46:49

基于內(nèi)容的推薦職位推薦集群

2018-03-12 21:31:24

區(qū)塊鏈

2018-03-12 14:37:50

區(qū)塊鏈比特幣架構(gòu)

2018-03-23 11:23:14

2017-02-22 14:46:04

Leader-Foll線程

2018-03-23 11:33:56

協(xié)同過濾程序算法

2018-08-27 16:15:20

數(shù)據(jù)庫MyISAMInnoDB

2023-12-12 08:00:50

節(jié)點(diǎn)哈希算法

2009-11-05 14:53:54

Visual Stud

2021-10-19 07:27:08

HTTP代理網(wǎng)絡(luò)

2020-10-13 18:22:58

DevOps工具開發(fā)

2022-12-16 09:55:50

網(wǎng)絡(luò)架構(gòu)OSI

2023-09-07 23:52:50

Flink代碼

2021-04-30 16:23:58

WebRTC實(shí)時(shí)音頻

2022-07-18 06:16:07

單點(diǎn)登錄系統(tǒng)

2024-06-25 12:25:12

LangChain路由鏈

2017-07-06 08:12:02

索引查詢SQL

2009-11-09 12:55:43

WCF事務(wù)

2021-05-17 20:13:50

數(shù)倉操作型數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)