推薦系統 02 基於協同過濾的推薦演算法

2021-10-07 22:35:15 字數 1862 閱讀 1003

推薦系統 - 初識 01筆記鏈結

基本原理:根據所有使用者對物品的偏好,發現與當前使用者口味和偏好相似的使用者群,並推薦近鄰所偏好的物品。

採用knn的演算法;基於k個鄰居的歷史偏好資訊,得到偏好相同的使用者群,並為使用者進行推薦。

使用者a,對商品a,b,e的評價都很高,但是對c,d的評價很低,使用者b,對商品a,e的評價很高,但是對c,d評價很低。那麼系統就可能給使用者b推薦商品b。因為a和b的行為相似。

基於物品的協同過濾推薦的基本原理與基於使用者的類似,只是使用所有使用者對物品的偏好,發現物品與物品之間的相似度,然後根據使用者的歷史偏好資訊,將類似的物品推薦給使用者。

根據系統中使用者的數量和物品的數量,一般來講物品的個數是遠遠小於使用者的數量的,而且物品的個數和相似度相對筆記穩定,同時基於物品的機制比基於使用者的實時性更好一些。因此主流的策略一般採用基於物品。

但是在某些系統中,由於物品更新換代的速度比較快,如新聞系統,那麼物品的相似度就不那麼穩定,此時基於使用者的效果可能更好。

優點:① 優點肯定就是不需要我們對特徵進行嚴格的處理,即我們給這個推薦演算法的特徵不要求是需要演算法自身理解的。(只需要通過k近鄰求出使用者使用者或物品物品之間的相似度)

②這種演算法推薦的商品具有多樣化,它可以發現使用者潛在的興趣偏好。而不會只推薦給使用者他平時喜歡的東西,具有探索性。

存在的問題:

① 首先最主要的問題就是,它不能冷啟動。也就是他是基於歷史資料的,對新系統或者新物品新使用者的加入,很不友好。

② 推薦的效果依賴歷史資料的多少以及準確性。

③ 對歷史資料敏感,歷史資料出錯對推薦的準確率影響很大。

④ 對特殊品味的使用者效果不佳。

基本思想:

在有顯性特徵時,(比如使用者標籤和物品標籤都存在)我們可以直接匹配做出推薦;但是在沒有顯性特徵時,我們可以根據已有的偏好資料,去發掘出隱藏的特徵,這就需要用到隱語義模型(lfm)

基於模型的協同過濾推薦,就是基於樣本的使用者偏好資訊,訓練乙個推薦模型,然後根據實時使用者喜歡的資訊進行**新物品的得分,得分高的進行推薦。

實際上,基於近鄰相當於對資料進行分類,基於模型相當於對資料進行回歸(**)。

(1)隱語義模型(lfm):

用隱語義模型來進行協同過濾的目標:本質就是利用機器學習本身模型去分析特徵資訊,然後**結果。這中間,機器學習所使用到的隱藏特徵是無法直接用語言接收描述的。隱藏稱為隱語義模型。

基本思想:對特徵進行降維。

通過矩陣分解進行降維分析:

(2)矩陣因子分解

簡單來說,我們的資料樣本就是乙個使用者物品評分表。即每個使用者都每類物品的評分,有則填,沒有則不填。就等價於乙個二維矩陣。

那麼如果我們可以將這個評分矩陣r分解成使用者特徵矩陣q 和 物品特徵矩陣p 的乘積。那麼我們只需要有使用者特徵矩陣q和物品特徵矩陣p就能夠**得到整個評分矩陣。(包括沒有填的值)

而我們就是希望這個**出來的評分矩陣要和真實的評分矩陣一樣。

所以經過矩陣因子分解之後,我們的問題就轉化成乙個標準的優化問題,即要求解p、q,使得目標損失函式取最小值。

然後通過設定損失函式,即**的矩陣和真實評分矩陣作誤差。再通過模型求解演算法求得最優解。使得損失函式取最小。

(3)模型求解

① 交替最小二乘法(als)

基本思想就是,由於兩個矩陣p和q都未知,且通過矩陣乘法耦合在一起,為了使它們解耦,可以先固定q,把p當作變數,通過損失函式最小化求p,這就是乙個經典的最小二乘法;再反過來固定求得的p,把q當作變數,求解出q:如此交替執行,直到誤差滿足閾值條件或達到迭代上限。

② 隨機梯度下降法

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

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

推薦系統 協同過濾

這是我學習推薦系統的筆記,主要參考的是51cto的一系列文章和人們郵電出版的 推薦系統實踐 首先說一下什麼是協同過濾。假如某寶要向你推薦一些商品,當然這些商品不是隨隨便便推薦的,推給你了就是引誘你去買,咱能賺到錢。那麼什麼樣的商品你有可能去買呢?系統或演算法怎麼找到這些商品呢?協同過濾就是幹這個的。...

推薦系統 基於物品的協同過濾推薦 入門

而基於物品的協同過濾則是找出最相似的物品,再結合使用者的評價來給出推薦結果。基於使用者的協同過濾又稱為記憶體型協同過濾,因為我們需要將所有的評價資料都儲存在記憶體中來進行推薦。基於物品的協同過濾也稱為基於模型的協同過濾,因為我們不需要儲存所有的評價資料,而是通過構建乙個物品相似度模型來做推薦。1.修...