1. 程式人生 > >協同過濾相似度計算

協同過濾相似度計算

   (1)傳統的傑卡德相似度計算公式如下,

 其中A,B可以為不同使用者的購物品類,

        當用戶量特別大的時候,導致計算複雜度比較高,因為直接進行了笛卡爾積運算,這時候可能沒有辦法進行運算。優化方法如下:

     掃描整個品類,統計使用者A和B共同出現的次數num_A_B,統計使用者A和B出現的總次數num_A,num_B,A和B的並集為num_A+num_B-num_A_B

 

即:可以用兩個使用者物品長度的倒數相乘,再乘以相同物品的個數。程式執行的時候,可以迴圈品類,對應每一個品類,每個的引數為使用者物品的倒數,兩個使用者的乘積即為

在該品類下的值,掃描整個品類,把相應的值相加即為近似的,可以比較不同使用者之間的相似度。

  (2)使用基於內容推薦演算法的思想:得到使用者A的向量表示(出現某種物品,則在相應的位置為1,否則為0),得到使用者B的向量表示,使用餘弦相似度計算公式計算。

 

這兩種方式都可以使用map-reduce思想進行運算,加速計算過程