1. 程式人生 > >機器學習(十四)——協同過濾的ALS演算法(2)、主成分分析

機器學習(十四)——協同過濾的ALS演算法(2)、主成分分析

Kendall秩相關係數(Kendall rank correlation coefficient)

對於秩變數對(xi,yi),(xj,yj)

(xixj)(yiyj)>0,=0,<0,concordantneither concordant nor discordantdiscordant τ=(number of concordant pairs)(number of discordant pairs)n(n1)/2

注:Sir Maurice George Kendall,1907~1983,英國統計學家。這個人職業生涯的大部分時間都是一個公務員,二戰期間出任英國船運協會副總經理。1949年以後擔任倫敦大學教授。

參見:

Tanimoto係數

T(x,y)=|XY||XY|=|XY||X|+|Y||XY|=xiyix2i+y2ixiyi

該係數由Taffee T. Tanimoto於1960年提出。Tanimoto生平不詳,從名字來看,應該是個日本人。在其他領域,它還有另一個名字Jaccard similarity coefficient。(兩者的係數公式一致,但距離公式略有差異。)

注:Paul Jaccard,1868~1944,蘇黎世聯邦理工學院(ETH Zurich)博士,蘇黎世聯邦理工學院植物學教授。ETH Zurich可是出了24個諾貝爾獎得主的。

參見:

ALS演算法原理

上面的網頁概括了ALS演算法出現之前的協同過濾演算法的概況。

ALS演算法是2008年以來,用的比較多的協同過濾演算法。它已經整合到Spark的Mllib庫中,使用起來比較方便。

從協同過濾的分類來說,ALS演算法屬於User-Item CF,也叫做混合CF。它同時考慮了User和Item兩個方面。

使用者和商品的關係,可以抽象為如下的三元組:<User,Item,Rating>。其中,Rating是使用者對商品的評分,表徵使用者對該商品的喜好程度。

假設我們有一批使用者資料,其中包含m個User和n個Item,則我們定義Rating矩陣R

m×n,其中的元素rui表示第u個User對第i個Item的評分。

在實際使用中,由於n和m的數量都十分巨大,因此R矩陣的規模很容易就會突破1億項。這時候,傳統的矩陣分解方法對於這麼大的資料量已經是很難處理了。

另一方面,一個使用者也不可能給所有商品評分,因此,R矩陣註定是個稀疏矩陣。矩陣中所缺失的評分,又叫做missing item。

這裡寫圖片描述

針對這樣的特點,我們可以假設使用者和商品之間存在若干關聯維度(比如使用者年齡、性別、受教育程度和商品的外觀、價格等),我們只需要將R矩陣投射到這些維度上即可。這個投射的數學表示是:

Rm×nXm×kYTn×k(1)

這裡的表明這個投射只是一個近似的空間變換。

不懂這個空間變換的同學,可參見《機器學習(十二)》中的“奇異值分解”的內容,或是本節中的“主成分分析”的內容。

一般情況下,k的值遠小於n和m的值,從而達到了資料降維的目的。

這裡寫圖片描述

幸運的是,我們並不需要顯式的定義這些關聯維度,而只需要假定它們存在即可,因此這裡的關聯維度又被稱為Latent factor。k的典型取值一般是20~200。

這種方法被稱為概率矩陣分解演算法(probabilistic matrix factorization,PMF)。ALS演算法是PMF在數值計算方面的應用。

為了使低秩矩陣X和Y儘可能地逼近R,需要最小化下面的平方誤差損失函式:

minx,yu,i is known(ruixTuyi)2

考慮到矩陣的穩定性問題,使用Tikhonov regularization,則上式變為:

minx,yL(X,Y)=minx,yu,i is known(ruixTuyi)2+λ(|xu|2+|yi|2)(2)

優化上式,得到訓練結果矩陣Xm×k,Yn×k。預測時,將User和Item代入rui=xTuyi,即可得到相應的評分預測值。

這裡寫圖片描述

同時,矩陣X和Y,還可以用於比較不同的User(或Item)之間的相似度,如下圖所示:

這裡寫圖片描述
ALS演算法的缺點在於:

1.它是一個離線演算法。

2.無法準確評估新加入的使用者或商品。這個問題也被稱為Cold Start問題。

ALS演算法優化過程的推導

公式2的直接優化是很困難的,因為X和Y的二元導數並不容易計算,這時可以使用類似座標下降法的演算法,固定其他維度,而只優化其中一個維度。

相關推薦

機器學習——協同過濾ALS演算法2成分分析

Kendall秩相關係數(Kendall rank correlation coefficient) 對於秩變數對(xi,yi),(xj,yj): (xi−xj)(yi−yj)⎧⎩⎨>0,=0,<0,concordantneither con

機器學習演算法推薦演算法協同過濾推薦演算法(2)

一、基於協同過濾的推薦系統     協同過濾(Collaborative Filtering)的推薦系統的原理是通過將使用者和其他使用者的資料進行比對來實現推薦的。比對的具體方法就是通過計算兩個使用者

機器學習算法原理解析——協同過濾推薦

3.6 新用戶 準確率 用戶偏好 tab tag 相同 pty cin 1. CF協同過濾推薦算法原理及應用 1.1 概述 什麽是協同過濾(Collaborative Filtering,簡稱CF)? 首先想一個簡單的問題,如果你現在想看個電影,但你不知道具體看哪部,

機器學習十三:CS229ML課程筆記9——因子分析成分分析PCA獨立成分分析ICA

1.因子分析:高維樣本點實際上是由低維樣本點經過高斯分佈、線性變換、誤差擾動生成的,因子分析是一種資料簡化技術,是一種資料的降維方法,可以從原始高維資料中,挖掘出仍然能表現眾多原始變數主要資訊的低維資料。是基於一種概率模型,使用EM演算法來估計引數。因子分析,是分析屬性們的公

機器學習實戰》第二章:k-近鄰演算法3手寫數字識別

這是k-近鄰演算法的最後一個例子——手寫數字識別! 怎樣?是不是聽起來很高大上? 呵呵。然而這跟影象識別沒有半毛錢的關係 因為每個資料樣本並不是手寫數字的圖片,而是有由0和1組成的文字檔案,就像這樣:         嗯,這個資料集中的每一個樣本用圖形軟體處理過,變成了寬高

吳恩達機器學習:異常檢測與協同過濾

這是吳恩達機器學習的最後一課,這次學習的內容是機器學習的常見應用,異常檢測與協同過濾。課程中介紹的異常檢測主要基於 正態分佈,用於檢測出偏離正常值的資料。而協同過濾是 推薦系統 的一部分,利用已有使用者的評分來給你推薦商品、視訊等。 點選 課程視訊 你就能不間

Stanford機器學習---第講.機器學習應用舉例之Photo OCR

的系列文章進行學習。 不過博主的部落格只寫到“第十講 資料降維” http://blog.csdn.net/abcjennifer/article/details/8002329,後面還有三講,內容比較偏應用,分別是異常檢測、大資料機器學習、photo OCR。為了學

機器學習實戰》第二章:k-近鄰演算法1簡單KNN

收拾下心情,繼續上路。 最近開始看Peter Harrington的《Machine Learning in Action》... 的中文版《機器學習實戰》。準備在部落格裡面記錄些筆記。 這本書附帶的程式碼和資料及可以在這裡找到。 這本書裡程式碼基本是用python寫的

機器學習實戰》第二章:k-近鄰演算法2約會物件分類

這是KNN的一個新例子。 在一個約會網站裡,每個約會物件有三個特徵: (1)每年獲得的飛行常客里程數(額...這個用來判斷你是不是成功人士?) (2)玩視訊遊戲所耗時間百分比(額...這個用來判斷你是不是肥宅?) (3)每週消費的冰激凌公升數(額...這個是何用意我真不知道

mahout推薦演算法——協同過濾推薦演算法java程式碼實現

什麼是協同過濾 協同過濾是利用集體智慧的一個典型方法。要理解什麼是協同過濾 (Collaborative Filtering, 簡稱 CF),首先想一個簡單的問題,如果你現在想看個電影,但你不知道具體看哪部,你會怎麼做?大部分的人會問問周圍的朋友,看看最近有什麼好看的電影推

機器學習實戰系列】讀書筆記之KNN演算法

本次讀書筆記在於延續上一篇部落格的工程,做出微小的改動,即使用Matplotlib建立散點圖(散點圖使用DataMat矩陣的第一、第二列資料)。首先還是介紹一個相關知識點,方便程式碼瀏覽。知識點一:1、在使用Matplotlib生成圖表時,預設不支援漢字,所有漢字都會顯示成框

吳恩達機器學習推薦系統基於梯度下降的協同過濾演算法

目錄 0. 前言 學習完吳恩達老師機器學習課程的推薦系統,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~ 0. 前言 在推薦系統中,主要有兩種方法,基於內容的推薦

機器學習基礎—— 協同過濾之獲得推薦

為未被某人評分的電影的進行打分,我們當然可以查詢品味與此人最為接近(依據相似性度量)的人的相應評分,但是這樣做過於簡單和隨意(permissive)。這種做法的問題在於:我們會找到一個熱衷某部電影的古怪評論者,而根據 topMatch 的結果,所有其他的評論者都

機器學習基礎—— 協同過濾從匹配使用者到匹配商品

考慮如下的使用者對影片的打分,由巢狀字典定義: critics = {'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5, 'J

機器學習之numpy和matplotlib學習

今天繼續來講numpy中的一些基本函式使用。 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : SundayCoder-俊勇 # @File : numpy6.py import numpy as np # n

機器學習與深度學習系列連載: 第二部分 深度學習迴圈神經網路 2Gated RNN - LSTM

迴圈神經網路 2(Gated RNN - LSTM ) simple RNN 具有梯度消失或者梯度爆炸的特點,所以,在實際應用中,帶有門限的RNN模型變種(Gated RNN)起著至關重要的作用,下面我們來進行介紹: LSTM (Long Short-term Memory )

機器學習筆記:TensorFlow實戰六經典卷積神經網路:AlexNet

1 - 引言 2012年,Imagenet比賽冠軍的model——Alexnet [2](以第一作者alex命名)。這個網路算是一個具有突破性意義的模型 首先它證明了CNN在複雜模型下的有效性,然後GPU實現使得訓練在可接受的時間範圍內得到結果,讓之後的網路模型構建變得更加複雜,並且通過

機器學習 輕鬆理解模型評價指標

篇首語        相信大家都知道下面的圖片是啥意思,每個無論在啥公司、無論哪個行業都有自己的KPI評價指標,公司會根據公司情況設定公司戰略KPI、部門KPI、以及每個人的指標,對於員工也是比較關心自己的KPI因為關係著你

機器學習實踐—sklearn之嶺迴歸線性迴歸的改進

帶有 L2 正則化的線性迴歸就是嶺迴歸。 嶺迴歸,其實也是一種線性迴歸。 只不過在演算法建立迴歸方程時候,加上正則化的限制,從而達到解決過擬合的效果。 加上正則化,也就是使權重滿足劃分正確結果的同時儘量的小 一、嶺迴歸 - API 嶺迴歸 - API

機器學習筆記:異常檢測

目錄 1)Problem motivation 2)Gaussian distribution 3)Algorithm 4)Developing and evaluating an anomaly detection system 5)Anomaly detection vs