基於模糊聚類和協同過濾的混合推薦系統

      Hybrid Recommender System based on Fuzzy Clustering and Collaborative Filteringhtml

      給出題目,想找的話直接在ElsevierSD裏下載便可。算法

      並非逐句翻譯,一些簡單的背景好比經濟啦什麼的直接忽略,不過筆者會在博文裏點出來。app

      一二三這樣的標題是原論文的題目,我沒翻譯,爲之後本身寫英文論文作準備,以1234這樣的標題開始的內容是筆者本身加上去的,就是個人筆記。ide

      我本身把握不許的或者比較精妙的局段,都有英文原文留下,分段也被保留。ui

      如何輸入羅馬數字,看下圖,搜狗輸入法下,ctrl+shift+z;有時候可能須要多個這樣的符號,每次都這樣調用的話很麻煩,我就按住ctrl鍵,果真能夠一次多個,看來計算機是相通的。this

                       image

1、Abstractidea

      因爲愈來愈多的電商使用推薦系統,推薦系統得到了極大發展。不過因爲產品和用戶數的顯著增長使得推薦系統面臨數據稀疏性和可擴展性的問題。本篇提出了FCM(Fuzzy C Means)算法。spa

2、Introduction翻譯

      推薦系統結合電商背景介紹。NetFlix推薦電影,Amazon推薦圖書。有幾種不一樣的方法來作推薦,這包括給出銷量最高的產品列表、基於人口統計學給我出建議和經過分析用戶過去行爲來給出建議(including providing top list of items, making suggestion based on demographic data and making recommendation by analyzing past user interaction of the user with the system.)。在這之中,協同過濾是最好的技術之一,該技術於1992年由[Goldberg et al., 1992]提出(我以Goldberg爲關鍵字百度之,只出現摔跤運動員,對於這麼吊的算法思想來講,這很不合理啊)。一般來講,推薦系統被分爲三類,協同過濾、基於內容的推薦和混合推薦。基於內容的推薦使用過去的產品或者用戶的描述信息(the item or user’s profile),所以當產品是像視頻、音樂這類東西的話,該算法會很不方便獲得須要的信息(原文是be quite challenging)。3d

      在協同過濾算法(下文用CF來代替,太麻煩,我本身加上的)中,關鍵元素是用戶過去的行爲。CF推薦系統採用由用戶製做的原來產品的排名來預測新產品的排名(筆者感受這很像是Item-Based的CF算法,請參考筆者這一篇博文探祕推薦引擎之協同過濾算法小綜述)。這種算法思想是根據(The idea behind this is that)兩個用戶曾經喜歡過想死產品的話那麼他們極可能繼續喜歡一樣的產品(這一句又像是User-Based)。在建議的的方法中(proposed approach),初試聚類中心採用FCM算法生成。而後這些中心採用item-based來預測將來的產品排名。

      相關工做在區域 Ⅱ,區域Ⅲ詳細討論了建議的方法,實驗結果在區域Ⅳ討論,結論呈如今區域Ⅴ。

      1.基於人口統計學的推薦

image

      這是最爲簡單的一種推薦算法,它只是簡單的根據系統用戶的基本信息發現用戶的相關程度,而後將類似用戶喜好的其餘物品推薦給當前用戶。

      系統首先會根據用戶的屬性建模,好比用戶的年齡,性別,興趣等信息。根據這些特徵計算用戶間的類似度。好比系統經過計算髮現用戶A和C比較類似。就會把A喜歡的物品推薦給C。

      優點:

      a 不須要歷史數據,沒有冷啓動問題

      b 不依賴於物品的屬性,所以其餘領域的問題均可無縫接入。

      不足:

      算法比較粗糙,效果很難使人滿意,只適合簡單的推薦

      2.基於內容的推薦

                       image

      與上面的方法相相似,只不過此次的中心轉到了物品自己。使用物品自己的類似度而不是用戶的類似度。

      系統首先對物品(圖中舉電影的例子)的屬性進行建模,圖中用類型做爲屬性。在實際應用中,只根據類型顯然過於粗糙,還須要考慮演員,導演等更多信息。經過類似度計算,發現電影A和C類似度較高,由於他們都屬於愛情類。系統還會發現用戶A喜歡電影A,由此得出結論,用戶A極可能對電影C也感興趣。因而將電影C推薦給A。

      優點:

      對用戶興趣能夠很好的建模,並經過對物品屬性維度的增長,得到更好的推薦精度

      不足:

      a 物品的屬性有限,很難有效的獲得更多數據

      b 物品類似度的衡量標準只考慮到了物品自己,有必定的片面性

      c 須要用戶的物品的歷史數據,有冷啓動的問題

      看完2我發現,冷啓動問題指的就是建模的初始數據的來源問題,看來書真是閱讀越明白,因此溫故而知新,古人沒有欺騙我---古之人誠不欺餘也。

3、Related Work

      在參考文獻3裏,做者提出了一種基於用戶和產品之間不一樣的CF算法。首先,他們(用的they,表示做者不止一個的意思吧)比較了不一樣的CF算法。根據他們的方法,他們沒有考慮用戶和產品知己恩的聯繫,只考慮(other than)了不一樣之處。在這種狀況下,有一些用戶傾向於給好評,對那些真正的垃圾產品纔給差評;而其餘用戶給最好的產品最高的評價,對於其餘的產品傾向於給差評(On the condition that there are some users, who inclined to give positive rating, leaving negative ratings for really bad items, while other user, save their highest rating s for the best item and tends to give negative ratings. So according to their approach, first find the tendencies of items and users and on the basis of this, recommendation is done.剛開始翻譯不出來參考了百度翻譯,就翻譯了出來;我想起了英語老師說我們口語很差不是由於搞幾回會不會,而是由於不少低級詞彙忘了;我真是個聽話的孩子,好老師說的話我基本都記得,感受本身萌萌噠)。所以根據他們的方法(approach),首先找到產品和用戶的趨勢,據此,推薦完成。

      在參考文獻11裏,做者提出了混合的方法,該方法結合了(take advantages of)基於內容和CF的優勢。根據他們的方法,他們首先採用k-means算法找到類似的用戶(筆者認爲這地方沒說清楚,根據用戶買的產品類別仍是用戶的我的註冊信息,不過就筆者我的感受而言,對於非社交羣體,好比電商企業,用戶的註冊信息徹底沒有價值);而後,找到同一簇中高度相關用戶的內容(感受內容量子很彆扭then find the content that the users of the same cluster rated high)。添加這一內容進入內容列表中,而後在同一簇中就要求的內容採用FCM算法找到內容。最後,從珍貴(我在想,他是否是寫錯了previous:前一個,寫成了precious)的兩個已經計算的集合找出公共部分(Add this content in the list of contents and then apply fuzzy c-mean algorithm to find contents in the same cluster as that of the content requested. And in the end find common set from precious two computed set. 我不理解兩個已經計算的集合是什麼)。公共部分就是最好的結果。算了,確實看不明白,有空看原文。

      在參考文獻15中,做者針對個性化推薦提出了一種相反的CF算法。根據他們的方法,他們結合user-based和item-based算法,同時使用斯皮爾曼等級相關係數代替皮爾遜相關係數來確保在數據的邏輯區域有相同的空間(或者等距,equal space),這沒必要要成對出現從正態分佈(which do not need to be receive in pairs from the normal distribution)。根據這個算法,CF算法預測類似的產品集根據已經給的數據,而後使用第二個算法獲得最終的分配,同時解決奇異的數據(

singular data

)。

      1.斯皮爾曼相關係數

           image

      在此例中,咱們要使用下表所給出的原始數據計算一我的的智商 和其每週花在 電視上的小時數的相關性。

                 image

      首先,咱們必須根據如下步驟計算出 d^2_i,以下表所示。

  1.  排列第一列數據 (X_i)。 建立新列 x_i 並賦以等級值 1,2,3,...n
  2. 而後,排列第二列數據 (Y_i). 建立第四列 y_i 並類似地賦以等級值 1,2,3,...n
  3. 建立第五列 d_i 保存兩個等級列的差值 (x_iy_i).
  4. 建立最後一列 d^2_i 保存 d_i 的平方.

                image

       ρ = −0.175757575,這個值很小代表上述兩個變量的關係很小。

      該係數和皮爾遜的區別是xy能夠不是正態分佈;可是xy不也能夠進行標準花麼((x-u)/D),而後能夠用皮爾遜洗漱了。

4、ProposedApproach

      算法被分爲兩個階段(phase)。

      階段一:根據產品信息進行產品聚類

      階段二:對階段一的每一個簇應用基於項目的CF。

      算法概述。

      步驟一:根據產品信息進行產品聚類(筆者認爲說的很不直觀,聚類的結果是什麼,只是產品仍是包括用戶)

      步驟二:在用戶項目矩陣中對於每一個簇應用基於項目的CF來預測丟失的評分。

      步驟三:爲了減小冷啓動的問題,新用戶(NU):必須給在給定閾值數量的產品的評分來作推薦。新產品(NI):用戶U對於新產品的評分經由NI(U)的評分=用戶U在該簇中的評分平均值(To reduce the Cold Start problem.New User: Rating must be given on the specific (threshold)number of items to get recommendation.New Item (NI) : Rating of new item by user U is given byRating of NI(U) = Average rating of the user U within thatcluster.)。這是否是在說SlopeOne算法,前面提到的博文裏對該算法有介紹。

      步驟四:爲了下降可擴展性的問題,聚類是預先處理步驟。該算法週期性運行或者當超過給定閾值數量額產品被加入時該算法被觸發(Clustering is pre-processing step. This algorithm is runperiodically or triggered after some particular (threshold)number of new items add in the system.)。

      階段一:聚類

      A.K-means

      筆者注:下面只作簡單翻譯

      採用k-means算法(原文是k-mean,是否是筆誤)。Movielens數據集包括來自943個用戶的評分分爲1到5等級的10w個評分,該數據集也包括每一個電影的大體信息(profile),好比類型(genre[ˈʒɒnrə])(喜劇、動做等),類型共19種。在電影的類型上作聚類。在劃分好的k個簇上上應用基於項目的CF算法。

      下面就是k-means的步驟了,再也不翻譯。

      假設10個電影(Assume),每一個電影經由三種類型來描述(喜劇、動做、音樂片),如表1(爲毛沒加上章的信息,寫成表3-1)。

                 image image

      使用曼哈頓距離來計算電影之間的類似性或者不想實行。

          image

      筆者注:曼哈頓距離與歐氏距離:紅 藍和黃分別表示曼哈頓距離都擁有同樣的長度12.綠色表示歐式距離 6*1.414=8.48的長度。

          image

      筆者感受這個圖很直觀,妙處本身體會。        

 

 

 

      結果是表2

         image

      B、FCM

      先介紹

            image

      生成以下表

           image

      假設閾值是0.15

                    image

      C。減小冷啓動問題

      新用戶未作任何評價,新產品未收到任何評價。

      a.新用戶必然要評價超過閾值數量的產品。

      b.imageif new item add in the system: rating of new item M,by user U is given by:上面的式子Where右端第一部分 average of user U in cluster c. And右端第二部分 is membership value of new item M to cluster c。

      階段二:基於項目的CF

      筆者注:未作逐字逐句翻譯。

      因爲當數據達到百萬級時,user-based算法尋找像是用戶的CF的計算複雜度太大。 因此2001年提出了item-based算法。

      該階段把第一階段的輸出做爲輸入,對每一個簇用基於項目的CF算法。

      採用皮爾遜相關係數離線計算ij之間的類似度。

               image

      U是同時評價過i和j的用戶集,帶上劃線的是評價過該項產品的全部用戶評分的均值。

          image

      因爲FCM是模糊聚類,那麼問題來了當一個產品同時屬於兩個或多個簇時,評分公式以下,

        image

      Nc是簇個數,分子是a對i在簇c下的評分,實際上就是求各個簇下的均值。寫到這,筆者認爲,所謂論文就是把簡單問題複雜化,通俗名詞專業化。

5、Experiment Results

      CF的評價準則有統計學準則和決策支持準則,本文采用前者。統計學準則比較預測值和實際值的分離程度,採用MAE(mean absolute error),

              image ,下面第二個圖x是指數據量的大小,單位是10w。

                  imageimage

6、Conclusion

      結合CF和FCM解決數據稀疏性和冷啓動問題。

      提出的方法是基於記憶的方法,所以不須要花費時間來訓練數據(這個不懂,可能看的資料不夠吧,我感受是不就是說增量)。

7、筆者本身

      四點半左右去聽了一個講座,小公式注重你的技術,要能馬上上手;大公司注重基礎,願意培養你,因此跟一個大牛,他跳槽了,也把你帶走了。

      今晚在實驗室吃飯啦,附上照片記念正在流逝的青春。

                      imageimageimage

相關文章
相關標籤/搜索