聲明:本文轉(zhuǎn)載自王的機(jī)器,僅作為學(xué)習(xí)使用,不作為商業(yè)用途,如有侵權(quán)請(qǐng)私信我,最短時(shí)間為您處理!
我還是推薦系統(tǒng)小白,因此對(duì)此課題理解相當(dāng)淺顯,但一定很好懂。這才是學(xué)一樣新東西的正確開始方式。
介紹
1
故事的背景包括 4 個(gè)小孩和 5 部動(dòng)畫,每個(gè)小孩為每部動(dòng)畫打分
1 分代表最不喜歡
5 分代表最喜歡
2
悠悠覺得「小豬佩奇」還可以,給了 3 分。建立一個(gè) 4 × 5 的矩陣
每行代表一個(gè)小孩給所有動(dòng)畫打的分?jǐn)?shù)
每列代表一部動(dòng)畫被所有小孩打的分?jǐn)?shù)
當(dāng)悠悠給「小豬佩奇」打完分后,在矩陣第 1 行第 1 列填入 3 分。
3
假設(shè) 4 個(gè)小孩為 5 部動(dòng)畫打分完畢,哪一個(gè)打分矩陣最像真的?
最左邊不像,小孩的喜好不會(huì)這么千篇一律
最右邊不像,小孩的喜好不會(huì)這么毫無聯(lián)系
中間的最像,小孩的喜好會(huì)有一定的規(guī)律
4
悠悠和丫丫年齡差不多,總在一起看動(dòng)畫片,她倆的對(duì)動(dòng)畫的品位出奇相似(5 部動(dòng)畫給出同樣的評(píng)分),比如大愛「小豬佩奇」,小愛「獅子王」,不喜歡「冰雪奇緣」「超人特工隊(duì)」「瑪莎和熊」。
規(guī)律 1:不同用戶的喜好可能相似。
5
樂樂喜歡看帶「人物」的動(dòng)畫,他給「冰雪奇緣」和「超人特工隊(duì)」高分;丫丫喜歡看帶「動(dòng)物」的動(dòng)畫,她給「小豬佩奇」和「獅子王」高分;多多還比較小,只要是動(dòng)畫都喜歡,他給所有動(dòng)畫高分(多多給的分是樂樂和丫丫給的分之和)。
規(guī)律 2:一個(gè)用戶的喜好可能包含其他多個(gè)用戶的喜好。
6
「瑪莎和熊」的評(píng)分是「獅子王」和「冰雪奇緣」的評(píng)分的均值。可能原因是「獅子王」里只含有動(dòng)物,「冰雪奇緣」里絕大部分是人,而「瑪莎和熊」里既有動(dòng)物又有人,而且數(shù)目相當(dāng)。
規(guī)律 3:一個(gè)動(dòng)畫內(nèi)容可能包含其他多個(gè)動(dòng)畫內(nèi)容。
7
先看一個(gè)最簡單的推薦系統(tǒng)。
當(dāng)所有人給所有電影打 3 分,問丫丫應(yīng)該給「超人特工隊(duì)」打多少分?
從評(píng)分矩陣來看,每個(gè)人對(duì)每個(gè)電影喜歡一樣,因此預(yù)測(cè)出丫丫會(huì)給「超人特工隊(duì)」打 3 分。
8
再看一個(gè)稍微復(fù)雜的推薦系統(tǒng)。
問丫丫應(yīng)該給「瑪莎和熊」打多少分?
從評(píng)分矩陣第一行和第三行來看,悠悠和丫丫的喜歡相同,因此預(yù)測(cè)出丫丫會(huì)給「瑪莎和熊」打 2 分,和悠悠一樣。
9
上面例子太簡單,如果小孩有很多個(gè),動(dòng)畫有很多部,我們?cè)趺床拍軓脑u(píng)分矩陣中學(xué)到所有的規(guī)律呢?
答案:找到隱含特征!
回到上面的例子,如果特征是動(dòng)畫片的類別,那么特征值有兩個(gè),人物類和動(dòng)物類。那么根據(jù)不同小孩對(duì)這兩類動(dòng)畫特征的喜好,
悠悠和丫丫喜歡動(dòng)物類,不喜歡人物類
樂樂喜歡人物類,不喜歡動(dòng)物類
多多都喜歡
我們可以將 4 × 5 的評(píng)分矩陣分解成
4 × 2 的「小孩-特征」矩陣
2 × 5 的「特征-動(dòng)畫」矩陣
如下。
10
因此我們要做的事情就是講評(píng)分矩陣分解成兩個(gè)非負(fù)矩陣的乘積,專業(yè)術(shù)語是非負(fù)矩陣分解(Non-negative Matrix Factorization, NMF), 機(jī)器學(xué)習(xí)包 Scikit-Learn 里有實(shí)現(xiàn)哦。
import numpy as np from sklearn.decomposition import NMF
用上面數(shù)據(jù)試了下,雖然分別的矩陣不是完全一樣,但矩陣中是 0 的還是 0,其他元素只是差了一個(gè)縮放因子(scaling factor),你看最后把兩個(gè)分解矩陣相乘,差不到能得到原來的評(píng)分矩陣。
實(shí)際情況下,不可能每個(gè)小孩對(duì)每部動(dòng)畫都給出評(píng)分,因此不能直接用 NMF,那些缺失值才體會(huì)推薦系統(tǒng)的價(jià)值,我們要根據(jù)已有的評(píng)分來預(yù)測(cè)未給的評(píng)分,再?zèng)Q定是否推薦。
11
實(shí)際情況,打 ?都是未給出評(píng)分,這時(shí)
設(shè)「小孩-特征」矩陣為 U
設(shè)「特征-動(dòng)畫」矩陣為 V
用以下誤差函數(shù)(只考慮未缺失的 Ri,j)
(Ri,j – U 第 i 行和 V 第 j 列內(nèi)積)2
怎么解?梯度下降唄!解完 U 和 V 后相乘發(fā)現(xiàn) R4,4 = 5,那么妥妥的給多多推薦獅子王!
審核編輯 黃昊宇
-
人工智能
+關(guān)注
關(guān)注
1794文章
47631瀏覽量
239602 -
推薦系統(tǒng)
+關(guān)注
關(guān)注
1文章
43瀏覽量
10088
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論