推薦系統--相似性推薦
阿新 • • 發佈:2019-01-01
相似性推薦
沒有歷史資料的支援,對於新使用者A,沒有他的歷史行為資料,在他點選了item-X的場景下,可以將與item-x最相似的item集合推薦給新使用者A
問題轉化為,如何用一種通用的方法,表達item之間的相似性
仍以電影推薦為例,新使用者A進入了《我不是潘金蓮》電影詳情頁,如何對A進行電影推薦?
- 對於一部電影《我不是潘金蓮》,假設他有10個屬性,則可以把它看作是一個十維空間的點:
點N《我不是潘金蓮》
{
導演:馮小剛
女主:范冰冰
男主:郭濤
女配:張嘉譯
男配:大鵬
型別:劇情
地區:中國大陸
語言:普通話
日期:2016
片長:140
}
對於二維,三維中的點,可以直接用直線距離計算遠近,10維空間{導演,女主,男主,女配,男配,型別,地區,語言,日期,片長}中的兩個點的距離,需要重新定義一個距離函式,例如:
distance=f1(導演)+f2(女主)+…+f10(片長)
這個距離。就是每個維度貢獻分值的總和
函式可以自定義
分值可以這麼定義:
f1(導演)
{
如果兩部電影導演相同,得1分;
如果導演不同,得0分;
}
例如,有另一個點M《芳華》
{
導演:馮小剛
女主:苗苗
男主:黃軒
女配:NULL
男配:NULL
型別:劇情
地區:中國大陸
語言:普通話
日期:2017
片長:140
}
要計算M《芳華》與N《我不是潘金蓮》的距離
distance=f1(導演)+f2(女主)+…+f10(片長)=1+0+…+1=5
即:導演,型別,地區,語言,片長相同各得1分,其他維度不同得0分
遍歷電影全集中的10w部電影,就能找到與點N《我不是潘金蓮》最相近的3部電影,當用戶點選《我不是潘金蓮》的詳情頁時,直接推薦這3部最相近的電影即可