聲明:本文轉載自王的機器,僅作為學習使用,不作為商業用途,如有侵權請私信我,最短時間為您處理!
我還是推薦系統小白,因此對此課題理解相當淺顯,但一定很好懂。這才是學一樣新東西的正確開始方式。
介紹
1
故事的背景包括 4 個小孩和 5 部動畫,每個小孩為每部動畫打分
1 分代表最不喜歡
5 分代表最喜歡
2
悠悠覺得「小豬佩奇」還可以,給了 3 分。建立一個 4 × 5 的矩陣
每行代表一個小孩給所有動畫打的分數
每列代表一部動畫被所有小孩打的分數
當悠悠給「小豬佩奇」打完分后,在矩陣第 1 行第 1 列填入 3 分。
3
假設 4 個小孩為 5 部動畫打分完畢,哪一個打分矩陣最像真的?
最左邊不像,小孩的喜好不會這么千篇一律
最右邊不像,小孩的喜好不會這么毫無聯系
中間的最像,小孩的喜好會有一定的規律
4
悠悠和丫丫年齡差不多,總在一起看動畫片,她倆的對動畫的品位出奇相似(5 部動畫給出同樣的評分),比如大愛「小豬佩奇」,小愛「獅子王」,不喜歡「冰雪奇緣」「超人特工隊」「瑪莎和熊」。
規律 1:不同用戶的喜好可能相似。
5
樂樂喜歡看帶「人物」的動畫,他給「冰雪奇緣」和「超人特工隊」高分;丫丫喜歡看帶「動物」的動畫,她給「小豬佩奇」和「獅子王」高分;多多還比較小,只要是動畫都喜歡,他給所有動畫高分(多多給的分是樂樂和丫丫給的分之和)。
規律 2:一個用戶的喜好可能包含其他多個用戶的喜好。
6
「瑪莎和熊」的評分是「獅子王」和「冰雪奇緣」的評分的均值。可能原因是「獅子王」里只含有動物,「冰雪奇緣」里絕大部分是人,而「瑪莎和熊」里既有動物又有人,而且數目相當。
規律 3:一個動畫內容可能包含其他多個動畫內容。
7
先看一個最簡單的推薦系統。
當所有人給所有電影打 3 分,問丫丫應該給「超人特工隊」打多少分?
從評分矩陣來看,每個人對每個電影喜歡一樣,因此預測出丫丫會給「超人特工隊」打 3 分。
8
再看一個稍微復雜的推薦系統。
問丫丫應該給「瑪莎和熊」打多少分?
從評分矩陣第一行和第三行來看,悠悠和丫丫的喜歡相同,因此預測出丫丫會給「瑪莎和熊」打 2 分,和悠悠一樣。
9
上面例子太簡單,如果小孩有很多個,動畫有很多部,我們怎么才能從評分矩陣中學到所有的規律呢?
答案:找到隱含特征!
回到上面的例子,如果特征是動畫片的類別,那么特征值有兩個,人物類和動物類。那么根據不同小孩對這兩類動畫特征的喜好,
悠悠和丫丫喜歡動物類,不喜歡人物類
樂樂喜歡人物類,不喜歡動物類
多多都喜歡
我們可以將 4 × 5 的評分矩陣分解成
4 × 2 的「小孩-特征」矩陣
2 × 5 的「特征-動畫」矩陣
如下。
10
因此我們要做的事情就是講評分矩陣分解成兩個非負矩陣的乘積,專業術語是非負矩陣分解(Non-negative Matrix Factorization, NMF), 機器學習包 Scikit-Learn 里有實現哦。
import numpy as np from sklearn.decomposition import NMF
用上面數據試了下,雖然分別的矩陣不是完全一樣,但矩陣中是 0 的還是 0,其他元素只是差了一個縮放因子(scaling factor),你看最后把兩個分解矩陣相乘,差不到能得到原來的評分矩陣。
實際情況下,不可能每個小孩對每部動畫都給出評分,因此不能直接用 NMF,那些缺失值才體會推薦系統的價值,我們要根據已有的評分來預測未給的評分,再決定是否推薦。
11
實際情況,打 ?都是未給出評分,這時
設「小孩-特征」矩陣為 U
設「特征-動畫」矩陣為 V
用以下誤差函數(只考慮未缺失的 Ri,j)
(Ri,j – U 第 i 行和 V 第 j 列內積)2
怎么解?梯度下降唄!解完 U 和 V 后相乘發現 R4,4 = 5,那么妥妥的給多多推薦獅子王!
審核編輯 黃昊宇
-
人工智能
+關注
關注
1796文章
47683瀏覽量
240336 -
推薦系統
+關注
關注
1文章
43瀏覽量
10093
發布評論請先 登錄
相關推薦
基于Pancake系統的折反射成像系統
![](https://file1.elecfans.com/web3/M00/02/43/wKgZO2db-hqAIkdwAAq8oxhQzXI545.jpg)
![](https://file1.elecfans.com/web2/M00/03/72/wKgZombD7fmAUPUfABQt5wWqyao656.png)
Ubuntu系統安裝之使用提供的ubuntu系統
![](https://file1.elecfans.com/web2/M00/FD/C8/wKgZomaeYRKAY0T6AAFLqdjZm6E522.jpg)
![](https://file1.elecfans.com/web2/M00/FE/5A/wKgaomaaMi-AZRVOAAGd7EDkAT0091.jpg)
![](https://file1.elecfans.com/web2/M00/E4/31/wKgZomY-3kuAdLaIAAF6PGL7O0o347.png)
SCADA系統與DCS系統的區別
![](https://file1.elecfans.com/web2/M00/CB/EC/wKgaomYfdgSAS7S1AAGpyWxK8T0516.png)
![](https://file1.elecfans.com/web2/M00/CA/C5/wKgZomYfQRiAHPx0AAAsEhFTp3g319.png)
如何選擇合適的系統?MES系統和MOM系統的區別
![如何選擇合適的<b class='flag-5'>系統</b>?MES<b class='flag-5'>系統</b>和MOM<b class='flag-5'>系統</b>的區別](https://file1.elecfans.com/web2/M00/C6/D1/wKgZomYMxQOAG71gAAGHXiI7SXk940.png)
![](https://file1.elecfans.com/web2/M00/C6/C9/wKgaomYDcGCAHmxuAAHnNfmNQbA245.jpg)
![](https://file1.elecfans.com/web2/M00/C5/E0/wKgZomYDcACAMc2cAAGx6qGa_5E599.jpg)
![](https://file1.elecfans.com/web2/M00/C6/C9/wKgaomYDbmaANiLiAADp6g2cvqw595.jpg)
![](https://file1.elecfans.com/web2/M00/C4/24/wKgZomXxRsaAV32zAAPTNJHUZrU396.jpg)
評論