導航:首頁 > 凈水問答 > 協同過濾演算法詳細解析

協同過濾演算法詳細解析

發布時間:2022-07-20 03:15:19

⑴ 矩陣分解在協同過濾推薦演算法中的應用

矩陣分解在協同過濾推薦演算法中的應用
推薦系統是當下越來越熱的一個研究問題,無論在學術界還是在工業界都有很多優秀的人才參與其中。近幾年舉辦的推薦系統比賽更是一次又一次地把推薦系統的研究推向了高潮,比如幾年前的Neflix百萬大獎賽,KDD CUP 2011的音樂推薦比賽,去年的網路電影推薦競賽,還有最近的阿里巴巴大數據競賽。這些比賽對推薦系統的發展都起到了很大的推動作用,使我們有機會接觸到真實的工業界數據。我們利用這些數據可以更好地學習掌握推薦系統,這些數據網上很多,大家可以到網上下載。
推薦系統在工業領域中取得了巨大的成功,尤其是在電子商務中。很多電子商務網站利用推薦系統來提高銷售收入,推薦系統為Amazon網站每年帶來30%的銷售收入。推薦系統在不同網站上應用的方式不同,這個不是本文的重點,如果感興趣可以閱讀《推薦系統實踐》(人民郵電出版社,項亮)第一章內容。下面進入主題。
為了方便介紹,假設推薦系統中有用戶集合有6個用戶,即U={u1,u2,u3,u4,u5,u6},項目(物品)集合有7個項目,即V={v1,v2,v3,v4,v5,v6,v7},用戶對項目的評分結合為R,用戶對項目的評分范圍是[0, 5]。R具體表示如下:

推薦系統的目標就是預測出符號「?」對應位置的分值。推薦系統基於這樣一個假設:用戶對項目的打分越高,表明用戶越喜歡。因此,預測出用戶對未評分項目的評分後,根據分值大小排序,把分值高的項目推薦給用戶。怎麼預測這些評分呢,方法大體上可以分為基於內容的推薦、協同過濾推薦和混合推薦三類,協同過濾演算法進一步劃分又可分為基於基於內存的推薦(memory-based)和基於模型的推薦(model-based),本文介紹的矩陣分解演算法屬於基於模型的推薦。
矩陣分解演算法的數學理論基礎是矩陣的行列變換。在《線性代數》中,我們知道矩陣A進行行變換相當於A左乘一個矩陣,矩陣A進行列變換等價於矩陣A右乘一個矩陣,因此矩陣A可以表示為A=PEQ=PQ(E是標准陣)。
矩陣分解目標就是把用戶-項目評分矩陣R分解成用戶因子矩陣和項目因子矩陣乘的形式,即R=UV,這里R是n×m, n =6, m =7,U是n×k,V是k×m。直觀地表示如下:

高維的用戶-項目評分矩陣分解成為兩個低維的用戶因子矩陣和項目因子矩陣,因此矩陣分解和PCA不同,不是為了降維。用戶i對項目j的評分r_ij =innerproct(u_i, v_j),更一般的情況是r_ij =f(U_i, V_j),這里為了介紹方便就是用u_i和v_j內積的形式。下面介紹評估低維矩陣乘積擬合評分矩陣的方法。
首先假設,用戶對項目的真實評分和預測評分之間的差服從高斯分布,基於這一假設,可推導出目標函數如下:

最後得到矩陣分解的目標函數如下:

從最終得到得目標函數可以直觀地理解,預測的分值就是盡量逼近真實的已知評分值。有了目標函數之後,下面就開始談優化方法了,通常的優化方法分為兩種:交叉最小二乘法(alternative least squares)和隨機梯度下降法(stochastic gradient descent)。
首先介紹交叉最小二乘法,之所以交叉最小二乘法能夠應用到這個目標函數主要是因為L對U和V都是凸函數。首先分別對用戶因子向量和項目因子向量求偏導,令偏導等於0求駐點,具體解法如下:

上面就是用戶因子向量和項目因子向量的更新公式,迭代更新公式即可找到可接受的局部最優解。迭代終止的條件下面會講到。
接下來講解隨機梯度下降法,這個方法應用的最多。大致思想是讓變數沿著目標函數負梯度的方向移動,直到移動到極小值點。直觀的表示如下:

其實負梯度的負方向,當函數是凸函數時是函數值減小的方向走;當函數是凹函數時是往函數值增大的方向移動。而矩陣分解的目標函數L是凸函數,因此,通過梯度下降法我們能夠得到目標函數L的極小值(理想情況是最小值)。
言歸正傳,通過上面的講解,我們可以獲取梯度下降演算法的因子矩陣更新公式,具體如下:

(3)和(4)中的γ指的是步長,也即是學習速率,它是一個超參數,需要調參確定。對於梯度見(1)和(2)。
下面說下迭代終止的條件。迭代終止的條件有很多種,就目前我了解的主要有
1) 設置一個閾值,當L函數值小於閾值時就停止迭代,不常用
2) 設置一個閾值,當前後兩次函數值變化絕對值小於閾值時,停止迭代
3) 設置固定迭代次數
另外還有一個問題,當用戶-項目評分矩陣R非常稀疏時,就會出現過擬合(overfitting)的問題,過擬合問題的解決方法就是正則化(regularization)。正則化其實就是在目標函數中加上用戶因子向量和項目因子向量的二范數,當然也可以加上一范數。至於加上一范數還是二范數要看具體情況,一范數會使很多因子為0,從而減小模型大小,而二范數則不會它只能使因子接近於0,而不能使其為0,關於這個的介紹可參考論文Regression Shrinkage and Selection via the Lasso。引入正則化項後目標函數變為:

(5)中λ_1和λ_2是指正則項的權重,這兩個值可以取一樣,具體取值也需要根據數據集調參得到。優化方法和前面一樣,只是梯度公式需要更新一下。
矩陣分解演算法目前在推薦系統中應用非常廣泛,對於使用RMSE作為評價指標的系統尤為明顯,因為矩陣分解的目標就是使RMSE取值最小。但矩陣分解有其弱點,就是解釋性差,不能很好為推薦結果做出解釋。
後面會繼續介紹矩陣分解演算法的擴展性問題,就是如何加入隱反饋信息,加入時間信息等。

⑵ 協同過濾,基於內容推薦有什麼區別

舉個簡單的小例子,我們已知道
用戶u1喜歡的電影是A,B,C
用戶u2喜歡的電影是A, C, E, F
用戶u3喜歡的電影是B,D
我們需要解決的問題是:決定對u1是不是應該推薦F這部電影
基於內容的做法:要分析F的特徵和u1所喜歡的A、B、C的特徵,需要知道的信息是A(戰爭片),B(戰爭片),C(劇情片),如果F(戰爭片),那麼F很大程度上可以推薦給u1,這是基於內容的做法,你需要對item進行特徵建立和建模。
協同過濾的辦法:那麼你完全可以忽略item的建模,因為這種辦法的決策是依賴user和item之間的關系,也就是這里的用戶和電影之間的關系。我們不再需要知道ABCF哪些是戰爭片,哪些是劇情片,我們只需要知道用戶u1和u2按照item向量表示,他們的相似度比較高,那麼我們可以把u2所喜歡的F這部影片推薦給u1。
根據數據源的不同推薦引擎可以分為三類
1、基於人口的統計學推薦(Demographic-based Recommendation)
2、基於內容的推薦(Content-based Recommendation)
3、基於協同過濾的推薦(Collaborative Filtering-based Recommendation)
基於內容的推薦:
根據物品或內容的元數據,發現物品或內容的相關性,然後基於用戶以前的喜好記錄推薦給用戶相似的物品
基於內容推薦的一個典型的例子,電影推薦系統,首先我們需要對電影的元數據有一個建模,這里只簡單的描述了一下電影的類型;然後通過電影的元數據發現電影間的相似度,因為類型都是「愛情,浪漫」電影 A 和 C 被認為是相似的電影(當然,只根據類型是不夠的,要得到更好的推薦,我們還可以考慮電影的導演,演員等等);最後實現推薦,對於用戶 A,他喜歡看電影 A,那麼系統就可以給他推薦類似的電影 C。

⑶ 個性化推薦演算法——協同過濾

有三種:協同過濾
用戶歷史行為
物品相似矩陣

⑷ 協同過濾中的可擴展性問題是什麼

協同過濾演算法能夠容易地為幾千名用戶提供較好的推薦,但是對於電子商務網站,往往需要給成百上千萬的用戶提供推薦,這就一方面需要提高響應時間的要求,能夠為用戶實時地進行推薦;另一方面還應考慮到存儲空間的要求,盡量減少推薦系統運行的負擔。

1.3 可擴展性問題

在協同過濾推薦演算法中,全局數值演算法能及時利用最新的信息為用戶產生相對准確的用戶興趣度預測或進行推薦,但是面對日益增多的用戶,數據量的急劇增加,演算法的擴展性問題(即適應系統規模不斷擴大的問題)成為制約推薦系統實施的重要因素。雖然與基於模型的演算法相比,全局數值演算法節約了為建立模型而花費的訓練時間,但是用於識別「最近鄰居」演算法的計算量隨著用戶和項的增加而大大增加,對於上百萬的數目,通常的演算法會遇到嚴重的擴展性瓶頸問題。該問題解決不好,直接影響著基於協同過濾技術的推薦系統實時向用戶提供推薦問題的解決,而推薦系統的實時性越好,精確度越高,該系統才會被用戶所接受。

基於模型的演算法雖然可以在一定程度上解決演算法的可擴展性問題,但是該類演算法往往比較適於用戶的興趣愛好比較穩定的情況,因為它要考慮用戶模型的學習過程以及模型的更新過程,對於最新信息的利用比全局數值演算法要差些。

分析以上協同過濾在推薦系統實現中面臨的兩個問題,它們的共同點是均考慮到了最近鄰居的形成問題(包括用戶信息獲得的充分性、計算耗費等)。但是應該看到協同過濾在推薦系統的實現中,要獲得最近鄰居用戶,必須通過一定的計算獲得用戶之間的相似度,然後確定最佳的鄰居個數,形成鄰居用戶集。而在這一過程中,如果對全部數據集進行相似性計算,雖然直接,但是運算量和時間花費都極大,無法適應真實的商務系統。如果通過對訓練集數據(整個數據集的某一子集)進行實驗獲得,雖然不必對整個數據集進行計算,但是必須通過將多次實驗結果統計出來才可能得到,這無疑也增加了推薦結果獲得的代價和誤差。並且如果考慮到數據集的動態變化,這一形成最近鄰居用戶集技術的實際應用價值越來越小。因此,考慮使用更為有效的最近鄰居用戶形成辦法,對於協同過濾的應用非常必要。

⑸ 協同過濾的演算法細分

這是最早應用協同過濾系統的設計,主要是解決Xerox公司在 Alto的研究中心資訊過載的問題。這個研究中心的員工每天會收到非常多的電子郵件卻無從篩選分類,於是研究中心便發展這項實驗性的郵件系統來幫助員工解決這項問題。 其運作機制大致如下:
個人決定自己的感興趣的郵件類型;個人旋即隨機發出一項資訊需求,可預測的結果是會收到非常多相關的文件;從這些文件中個人選出至少三筆資料是其認為有用、會想要看的;系統便將之記錄起來成為個人郵件系統內的過濾器,從此以後經過過濾的文件會最先送達信箱;以上是協同過濾最早的應用,接下來的里程碑為GroupLens。 這個系統主要是應用在新聞的篩選上,幫助新聞的閱聽者過濾其感興趣的新聞內容,閱聽者看過內容後給一個評比的分數,系統會將分數記錄起來以備未來參考之用,假設前提是閱聽者以前感興趣的東西在未來也會有興趣閱聽,若閱聽者不願揭露自己的身分也可以匿名進行評分。 和Tapestry不同之處有兩點,首先,Tapestry專指一個點(如一個網站內、一個系統內)的過濾機制;GroupLens則是跨點跨系統的新聞過濾機制。再來,Tapestry不會將同一筆資料的評比總和起來;GroupLens會將同一筆資料從不同使用者得到的評比加總。
GroupLens具有以下特點:開放性:所有的新聞閱聽者皆可使用,雖然系統委託Better Bit Bureau設計給分的系統,但若有不同的評分機制也適用於GroupLens。方便性:給分並不是一件困難的事情且溝通上非常方便,評分結果容易詮釋。規模性:有可能發展成大規模的系統,一旦發展成大規模,儲存空間與計算成本問題顯得相當棘手。隱密性:如果使用者不想讓別人知道他是誰,別人就不會知道。由此可以看出,現今網路各個推薦系統的雛形已然形成,在GroupLens之後還有性質相近的MovieLens,電影推薦系統;Ringo,音樂推薦系統;Video Recommender,影音推薦系統;以及Jster,笑話推薦系統等等。乃至於今日的YouTube、aNobii皆是相似性值得網路推薦平台,較不同的是經過時間推移,網路越來越發達,使用者越來越多,系統也發展得越來越嚴密。 最著名的電子商務推薦系統應屬亞馬遜網路書店,顧客選擇一本自己感興趣的書籍,馬上會在底下看到一行「Customer Who Bought This Item Also Bought」,亞馬遜是在「對同樣一本書有興趣的讀者們興趣在某種程度上相近」的假設前提下提供這樣的推薦,此舉也成為亞馬遜網路書店為人所津津樂道的一項服務,各網路書店也跟進做這樣的推薦服務如台灣的博客來網路書店。 另外一個著名的例子是Facebook的廣告,系統根據個人資料、周遭朋友感興趣的廣告等等對個人提供廣告推銷,也是一項協同過濾重要的里程碑,和前二者Tapestry、GroupLens不同的是在這里雖然商業氣息濃厚同時還是帶給使用者很大的方便。 以上為三項協同過濾發展上重要的里程碑,從早期單一系統內的郵件、文件過濾,到跨系統的新聞、電影、音樂過濾,乃至於今日橫行互聯網的電子商務,雖然目的不太相同,但帶給使用者的方便是大家都不能否定的。

⑹ 協同過濾演算法有哪些 slope

協同過濾演算法是這一領域的主流。作為基於內容的演算法執行方式內,協同過濾在准確性上具容有相當的優勢,但無法冷啟動、同質化和運算效率低使其依然存在很多不足。
協同過濾演算法的名稱來源於化學上的過濾操作。
原理
利用物質的溶解性差異,將液體和不溶於液體的固體分離開來的一種方法。如用過濾法除去粗食鹽中少量的泥沙

過濾實驗儀器
漏斗、燒杯、玻璃棒、鐵架台(含鐵圈)、濾紙。

過濾操作要領
要做到「一貼、二低、三靠」。
一貼
即使濾紙潤濕,緊貼漏斗內壁,中間不要留下氣泡。(防止氣泡減慢過濾速度。)
二低
1.濾紙邊緣略低於漏斗邊緣。
2.液面低於濾紙邊緣。(防止液體過濾不凈。)
三靠
1.傾倒時燒杯杯口要緊靠玻璃棒上。
2.玻璃棒下端抵靠在三層濾紙處。
3.漏斗下端長的那側管口緊靠燒杯內壁。

過濾注意事項
1.燒杯中的混合物在過濾前應用玻璃棒攪拌,然後進行過濾。
2.過濾後若溶液還顯渾濁,應再過濾一次,直到溶液變得透明為止。
3.過濾器中的沉澱的洗滌方法:用燒瓶或滴管向過濾器中加蒸餾水,使水面蓋沒沉澱物,待溶液全部濾出後,重復2~3次。
希望我能幫助你解疑釋惑。

⑺ 基於聚類的協同過濾演算法都有哪些

自邀自答,不用謝。這是兩種完全不同的演算法思想。以二維空間為例,聚類是各個樣本版往若干權個共同中心聚合的過程,計算的是樣本點到聚類中心的二維空間距離;而協同過濾是盡量在樣本中構造平行相似性,以彌合缺失的樣本信息維度。聚類和協同過濾是可以而且應當在解決實際問題中混合使用的。但應該是在解決問題的不同階段。比如用戶興趣,首先使用聚類方法對人群進行若干大類的劃分,然後在一類人群中進行協同過濾。

⑻ 請問:協同過濾演算法是基於什麼技術

協同過濾(Collaborative Filtering)的基本概念就是把這種推薦方式變成自動化的流程

協同過濾主要是以屬性或興趣相近的用戶經驗與建議作為提供個性化推薦的基礎。透過協同過濾,有助於搜集具有類似偏好或屬性的用戶,並將其意見提供給同一集群中的用戶作為參考,以滿足人們通常在決策之前參考他人意見的心態。

本人認為,協同過濾技術應包括如下幾方面:(1)一種比對和搜集每個用戶興趣偏好的過程;(2)它需要許多用戶的信息去預測個人的興趣偏好;(3)通過對用戶之間興趣偏好相關程度的統計去發展建議那些有相同興趣偏好的用戶。

⑼ 基於item的協同過濾演算法是什麼意思

電子商來務推薦系統的一自種主要演算法。協同過濾推薦(Collaborative Filtering recommendation)是在信息過濾和信息系統中正迅速成為一項很受歡迎的技術。與傳統的基於內容過濾直接分析內容進行推薦不同,

⑽ 推薦演算法的基於協同過濾的推薦

基於協同過濾的推薦演算法理論上可以推薦世界上的任何一種東西。圖片、音樂、樣樣可以。 協同過濾演算法主要是通過對未評分項進行評分 預測來實現的。不同的協同過濾之間也有很大的不同。
基於用戶的協同過濾演算法: 基於一個這樣的假設「跟你喜好相似的人喜歡的東西你也很有可能喜歡。」所以基於用戶的協同過濾主要的任務就是找出用戶的最近鄰居,從而根據最近鄰 居的喜好做出未知項的評分預測。這種演算法主要分為3個步驟:
一,用戶評分。可以分為顯性評分和隱形評分兩種。顯性評分就是直接給項目評分(例如給網路里的用戶評分),隱形評分就是通過評價或是購買的行為給項目評分 (例如在有啊購買了什麼東西)。
二,尋找最近鄰居。這一步就是尋找與你距離最近的用戶,測算距離一般採用以下三種演算法:1.皮爾森相關系數。2.餘弦相似性。3調整餘弦相似性。調整餘弦 相似性似乎效果會好一些。
三,推薦。產生了最近鄰居集合後,就根據這個集合對未知項進行評分預測。把評分最高的N個項推薦給用戶。 這種演算法存在性能上的瓶頸,當用戶數越來越多的時候,尋找最近鄰居的復雜度也會大幅度的增長。
因而這種演算法無法滿足及時推薦的要求。基於項的協同過濾解決了這個問題。 基於項的協同過濾演算法 根基於用戶的演算法相似,只不過第二步改為計算項之間的相似度。由於項之間的相似度比較穩定可以在線下進行,所以解決了基於用戶的協同過濾演算法存在的性能瓶頸。

閱讀全文

與協同過濾演算法詳細解析相關的資料

熱點內容
液相用溶劑過濾器 瀏覽:674
納濾水導電率 瀏覽:128
反滲透每小時2噸 瀏覽:162
做一個純凈水工廠需要多少錢 瀏覽:381
最終幻想4回憶技能有什麼用 瀏覽:487
污水提升器采通 瀏覽:397
反滲透和不發滲透凈水器有什麼區別 瀏覽:757
提升泵的揚程 瀏覽:294
澤德提升泵合肥經銷商 瀏覽:929
飲水機後蓋漏水了怎麼辦 瀏覽:953
小型電動提升器 瀏覽:246
半透膜和細胞膜區別 瀏覽:187
廢水拖把池 瀏覽:859
十四五期間城鎮污水處理如何提質增效 瀏覽:915
怎麼測試空氣凈化器的好壞 瀏覽:519
提升泵是幹嘛的 瀏覽:744
布油做蒸餾起沫咋辦 瀏覽:252
廣州工業油煙凈化器一般多少錢 瀏覽:204
喜哆哆空氣凈化器效果怎麼樣 瀏覽:424
油煙凈化器油盒在什麼位置 瀏覽:582