集體智慧型程式設計 學習筆記 協同過濾技術

2021-06-07 11:59:21 字數 1766 閱讀 4528

協同過濾技術可以分為三類:基於使用者(user-based)的協同過濾;基於專案(item-based)的協同過濾;基於模型(model-based)的協同過濾。

基於使用者(user-based)的協同過濾

用相似統計的方法得到具有相似愛好或者興趣的相鄰使用者,所以稱之為以使用者為基礎(user-based)的協同過濾或基於鄰居的協同過濾(neighbor-based collaborative filtering)。方法步驟:

1.收集使用者資訊

收集可以代表使用者興趣的資訊。一般的**系統使用評分的方式或是給予評價,這種方式被稱為「主動評分」。另外一種是「被動評分」,是根據使用者的行為模式由系統代替使用者完成評價,不需要使用者直接打分或輸入評價資料。電子商務**在被動評分的資料獲取上有其優勢,使用者購買的商品記錄是相當有用的資料。

2.最近鄰搜尋(nearest neighbor search, nns)

以使用者為基礎(user-based)的協同過濾的出發點是與使用者興趣愛好相同的另一組使用者,就是計算兩個使用者的相似度。例如:尋找n個和a有相似興趣使用者,把他們對m的評分作為a對m的評分**。一般會根據資料的不同選擇不同的演演算法,目前較多使用的相似度演演算法有person correlation coefficient、cosine-based similarity、adjusted cosine similarity。

3.產生推薦結果

有了最近鄰集合,就可以對目標使用者的興趣進行**,產生推薦結果。依據推薦目的的不同進行不同形式的推薦,較常見的推薦結果有top-n推薦和關聯推薦。 top-n推薦是針對個體使用者產生,對每個人產生不一樣的結果,例如:透過對a使用者的最近鄰使用者進行統計,選擇出現頻率高且在a使用者的評分專案中不存在的,作為推薦結果。關聯推薦是對最近鄰使用者的記錄進行關聯規則(association rules)挖掘。

基於專案(item-based)的協同過濾

以專案為基礎的協同過濾方法有乙個基本的假設:「能夠引起使用者興趣的專案,必定與其之前評分高的專案相似」,透過計算專案之間的相似性來代替使用者之間的相似性。方法步驟:

1.收集使用者資訊

同以使用者為基礎(user-based)的協同過濾。

2.針對專案的最近鄰搜尋

先計算己評價專案和待**專案的相似度,並以相似度作為權重,加權各已評價專案的分數,得到待**專案的**值。例如:要對專案a和專案b進行相似性計算,要先找出同時對a和b打過分的組合,對這些組合進行相似度計算,常用的演演算法同以使用者為基礎(user-based )的協同過濾。

3.產生推薦結果

以專案為基礎的協同過濾不用考慮使用者間的差別,所以精度比較差。但是卻不需要使用者的歷史資料,或是進行使用者識別。對於專案來講,它們之間的相似性要穩定很多,因此可以離線完成工作量最大的相似性計算步驟,從而降低了線上計算量,提高推薦效率,尤其是在使用者多於專案的情形下尤為顯著。

基於模型(model-based)的協同過濾

以使用者為基礎(user-based)的協同過濾和以專案為基礎(item-based)的協同過濾統稱為以記憶為基礎(memory based)的協同過濾技術,他們共有的缺點是資料稀疏,難以處理大資料量影響即時結果,因此發展出以模型為基礎的協同過濾技術。以模型為基礎的協同過濾(model-based collaborative filtering)是先用歷史資料得到乙個模型,再用此模型進行**。以模型為基礎的協同過濾廣泛使用的技術包括latent semantic indexing、 bayesian networks…等,根據對乙個樣本的分析得到模型。

參考資料: 

集體智慧型程式設計 協同過濾

目錄 1.基於使用者的協同過濾 1.1 相似度評價值 1.1.1 歐幾里得距離 1.1.2 皮爾遜相關度 1.1.3 曼哈頓距離演算法 1.1.4 jaccard係數 1.1.5 余弦相似度 1.2 推薦物品 2.基於物品的協同過濾 3.兩種協同過濾比較 協同過濾演算法通常是對一大群人進行搜尋,並從...

機器學習筆記09 協同過濾演算法 ALS

參考資料 spark mllib 機器學習實踐 線性代數 同濟大學 基於矩陣分解的協同過濾演算法 機器學習的正則化 正則化方法 1 協同過濾演算法概念 1 基於使用者的推薦 認為類似的使用者應具備類似的愛好 2 基於物品的推薦 認為使用者會選擇比較接近的物品 兩類思路也存在相應的侷限性 1 基於使用...

集體智慧型程式設計學習筆記 更新

本人是python初學者,本系列用來熟悉python和記錄學習點滴 度量 引數 函式 名詞 注意 第二章 推薦演算法 語言python 步驟 1 數值化 將屬性的值對應到數字,如喜歡 1不喜歡 1 已購買2,已瀏覽1未購買0 2 相似度係數 用來確定與其他人評委的相似程度的度量。常用兩種度量 歐幾里...