推薦演算法之協同過濾

2021-08-17 20:22:02 字數 1209 閱讀 1722

舉例:以推薦使用者電影為例,假設有100w使用者,10w電影,使用者的id為uid1,uid2,uid3... 電影的id為mid1,mid2,mid3....

(1)畫**,橫座標表示所有電影,縱座標表示所有使用者,交叉點為某個使用者喜歡某部電影

mid1

mid2

mid3

mid4

mid5……

mid10w

uid111

11uid211

11uid311

1uid411

1……uid100w11

如表所示,1表示使用者喜歡這部電影,所有的資料來源我們都已經處理完畢

ps:a.資料來源來自於所有的伺服器落地資料,包括但不僅限於db、日誌;

(2)基於上面的資料,我們來拿出所有使用者的喜歡的電影集合

uid1:

uid2:

uid3:

uid4:

(3)找到每個uid的mid集合交集最多的資料

uid1交集最多的是uid2,uid3,uid4

uid2交集最多的是uid1,uid3

uid3交集最多的是uid1,uid2

uid4交集最多的是uid1

ps:這步可以優化為,直接先找看看有沒有哪個uid的mid集合是直接包含了要查詢的uid的集合的(即該使用者的mid集合是其他使用者mid集合的子集/真子集),如果有,則該集合就是我們要找的集合;如果沒有,則進行如上演算法

例如,這裡的uid3,可以看到,uid3的mid集合就是uid1和uid2的mid集合的真子集,所以,我們就可以直接判斷,和uid3交接最多的就是uid2和uid3

(4)計算交集最多的集合跟自己集合的差集,如,

uid1和uid2的差集: - = ,以此類推

uid1和uid3的差集是空集,uid1和uid4的差集也是空集

拿著這些所有的差集做並集:uid的差集並集集合是

以此類推:

要推薦給uid2的電影集合為

要推薦給uid3的電影集合為

要推薦給uid4的電影集合為

協同過濾以下有幾個難點:

1.如何定義乙個使用者對一件事物持有的態度

2.這裡把對事物的態度簡化了,其實使用者對一件事物的態度應該是個權值,以這個看電影為例子,我們可以把使用者點讚作為10分,瀏覽作為3分等,但是這樣做就增加了整個推薦系統的複雜度

3.最重要也是最難的一點,該演算法必須要有大資料的支援

參考文章:

協同過濾推薦演算法 協同過濾推薦演算法總結

推薦演算法具有非常多的應用場景和商業價值,因此對推薦演算法值得好好研究。推薦演算法種類很多,但是目前應用最廣泛的應該是協同過濾類別的推薦演算法,本文就對協同過濾類別的推薦演算法做乙個概括總結,後續也會對一些典型的協同過濾推薦演算法做原理總結。推薦演算法概述 1 基於內容的推薦 這一類一般依賴於自然語...

推薦演算法之協同過濾

協同過濾的定義 通過找到興趣相投,或者有共同經驗的群體,來向使用者推薦感興趣的資訊。舉例 以推薦使用者電影為例,假設有100w使用者,10w電影,使用者的id為uid1,uid2,uid3.電影的id為mid1,mid2,mid3.1 畫 橫座標表示所有電影,縱座標表示所有使用者,交叉點為某個使用者...

協同過濾推薦演算法 推薦演算法 基於協同過濾CF

前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些好玩的,你會怎麼做?你可能會上網查一下的...