小孩都看得懂的推薦系統,看不懂算我輸 OK?

2021-03-01 戀習Python

我還是推薦系統小白,因此對此課題理解相當淺顯,但一定很好懂。這才是學一樣新東西的正確開始方式。

故事的背景包括 4 個小孩和 5 部動畫,每個小孩為每部動畫打分

悠悠覺得「小豬佩奇」還可以,給了 3 分。建立一個 4 × 5 的矩陣

每行代表一個小孩給所有動畫打的分數

每列代表一部動畫被所有小孩打的分數

悠悠給「小豬佩奇」打完分後,在矩陣第 1 行第 1 列填入 3 分。

假設 4 個小孩為 5 部動畫打分完畢,哪一個打分矩陣最像真的?

最左邊不像,小孩的喜好不會這麼千篇一律

最右邊不像,小孩的喜好不會這麼毫無聯繫

中間的最像,小孩的喜好會有一定的規律

悠悠丫丫年齡差不多,總在一起看動畫片,她倆的對動畫的品位出奇相似(5 部動畫給出同樣的評分),比如大愛「小豬佩奇」,小愛「獅子王」,不喜歡「冰雪奇緣」「超人特工隊」「瑪莎和熊」。

規律 1:不同用戶的喜好可能相似。

樂樂喜歡看帶「人物」的動畫,他給「冰雪奇緣」和「超人特工隊」高分;丫丫喜歡看帶「動物」的動畫,她給「小豬佩奇」和「獅子王」高分;多多還比較小,只要是動畫都喜歡,他給所有動畫高分(多多給的分是樂樂丫丫給的分之和)。

規律 2:一個用戶的喜好可能包含其他多個用戶的喜好。

「瑪莎和熊」的評分是「獅子王」和「冰雪奇緣」的評分的均值。可能原因是「獅子王」裡只含有動物,「冰雪奇緣」裡絕大部分是人,而「瑪莎和熊」裡既有動物又有人,而且數目相當。

規律 3:一個動畫內容可能包含其他多個動畫內容

先看一個最簡單的推薦系統。

當所有人給所有電影打 3 分,問丫丫應該給「超人特工隊」打多少分?

從評分矩陣來看,每個人對每個電影喜歡一樣,因此預測出丫丫會給「超人特工隊」打 3 分。

再看一個稍微複雜的推薦系統。

丫丫應該給「瑪莎和熊」打多少分?

從評分矩陣第一行和第三行來看,悠悠丫丫的喜歡相同,因此預測出丫丫會給「瑪莎和熊」打 2 分,和悠悠一樣。

上面例子太簡單,如果小孩有很多個,動畫有很多部,我們怎麼才能從評分矩陣中學到所有的規律呢?

答案:找到隱含特徵

回到上面的例子,如果特徵是動畫片的類別,那麼特徵值有兩個,人物類動物類。那麼根據不同小孩對這兩類動畫特徵的喜好,如上圖,

悠悠丫丫喜歡動物類,不喜歡人物類

樂樂喜歡人物類,不喜歡動物類

多多都喜歡

再根據具體動畫片含這兩類特徵的比重,如下圖

我們可以將 4 × 5 的評分矩陣分解成

4 × 2 的「小孩-特徵」矩陣

2 × 5 的「特徵-動畫」矩陣

如下。

因此我們要做的事情就是講評分矩陣分解成兩個非負矩陣的乘積,專業術語是非負矩陣分解(Non-negative Matrix Factorization, NMF), 機器學習包 Scikit-Learn 裡有實現哦。

import numpy as npfrom sklearn.decomposition import NMF

用上面數據試了下,雖然分別的矩陣不是完全一樣,但矩陣中是 0 的還是 0,其他元素只是差了一個縮放因子(scaling factor),你看最後把兩個分解矩陣相乘,差不到能得到原來的評分矩陣。

實際情況下,不可能每個小孩對每部動畫都給出評分,因此不能直接用 NMF,那些缺失值才體會推薦系統的價值,我們要根據已有的評分來預測未給的評分,再決定是否推薦。

實際情況,打 ?都是未給出評分,這時

設「小孩-特徵」矩陣為 U

設「特徵-動畫」矩陣為 V

用以下誤差函數(只考慮未缺失的 Ri,j)

    (Ri,j – U 第 i 行和 V 第 j 列內積)2

怎麼解?梯度下降唄!解完 U 和 V 後相乘發現 R4,4 = 5,那麼妥妥的給多多推薦獅子王!

讓我知道你「在看」

相關焦點

  • 小孩都看得懂的推薦系統
    我還是推薦系統小白,因此對此課題理解相當淺顯,但一定很好懂。
  • 推薦2020年一秒都不捨得快進的古裝劇,如都看過算我輸
    2020年已經過去了,2020年有很多好看的電視劇播出,像12月份才熱播的《有翡》播出第一天就直接有2億的播放量,這播放記錄放眼2020年都沒有什麼劇能夠和它作比較。其實除了《有翡》外,還有很多古裝劇都很好看,那麼今天就給大家推薦2020年幾部「一秒都不捨得快進」的古裝劇,如你都看過算我輸!
  • 周末更新8.5分,不看後悔!都看過算我輸
    《邪不壓正》被刪減的內容,朋友拖朋友,語焉不詳的給我講了一點,總之看是不可能看到了。所以,雖然很喜歡姜文,但這個電影就跳過吧。不過沒關係,昨天答應給大家找好看的電影說到做到,今天準備了電影大餐。部部都是好片,精心挑選,算放大招了。而且如果你全都看過,算我輸。
  • 看二十遍還是看不懂的五部燒腦大片,看得懂的算你厲害
    看二十遍還是看不懂的五部燒腦大片,看懂的算你厲害 第一部:決勝21點 豆瓣:6.8 講述了幾位數學天才少年憑才智大鬧賭城拉斯維加斯的故事。第二部:88分鐘 豆瓣:6.5 講述了法庭精神分析師傑克·格蘭姆在參與到一起連環殺人案件的審判以後,又陷入另外一個陷阱之中的故事。
  • 設計欣賞 I 看不懂的電影海報設計可以這麼看
    經常有學員問我同一個問題有些設計明明很好看,但就是看不懂咋辦?其實設計這個行業,很多人都想著自己是全能的,即會字體設計又會品牌、合成、修圖等等,其實會一些挺好的,但是每個都學真的很難很難,各自有各自的強項就成,剩下的有需求就交給專業的認識,互利嘛,專業的事情交給專業的人做對於設計我一直都是覺得,可以不會做,但是要學會看!!!
  • 二十本好看到炸裂的網絡小說,都已完結,不好看算我輸!
    大家好,我是橘子。前段時間推薦了很多精彩好看的連載小說,今天就給大家帶來了二十本好看到炸裂的網絡小說,都已完結,不好看算我輸!玄幻系列:《牧神記》 作者:宅豬 589萬字《萬界天尊》 作者:血紅 341萬字《神寵進化》 作者:酒池醉 181萬字《系統供應商》 作者:鑿硯 338萬字《超級神基因》 作者:十二翼黑暗熾天使 731萬字這五本玄幻小說但是都是那種很有特色的,無論是文筆還是劇情都很有看點,腦洞也很大
  • 普悠瑪事故報告書都是英文,家屬氣看不懂
    一家八口死亡的家屬董家大姐痛批,「臺鐵的報告全部是英文、專業名詞」,家屬怎麼看得懂,協調會上因為不懂而提問,竟遭臺鐵局長張政源訕笑,家屬感覺張政源的表情,意思是家屬「怎麼會蠢到這樣子」。董家大姐在政論節目《關鍵時刻》說出普悠瑪意外的受害者家屬,目前遇到的困境,臺鐵給家屬看的普悠現瑪事故報告書,都是英文、專業名詞,「厚厚一迭都是英文,全部都是英文,家屬都不看懂。」
  • 5本主角性格黑暗智商超高的小說,不聖母不小白,不好看算我輸!
    大家好,我是馬哥,今天給大家推薦5本主角性格黑暗智商超高的小說,不聖母不小白,不好看算我輸!
  • 推薦5部豆瓣分極高的電視劇,都是9分以上,你都沒看過算我「輸」
    大家好呀,我是小喵。今天給大家推薦5部豆瓣分極高的電視劇,都是9分以上的,我猜你應該都看過,若是一部都沒看過的話,算我「輸」。第一部《甄嬛傳》。其次是蔣欣飾演的華妃也是十分的帶勁,除此之外,其他的演員演技都十分的不錯的,所以也難怪這部電視劇會這麼的火,很值得一看哦!第二部《白夜追兇》。《白夜追兇》是王偉執導的中國首部硬漢派懸疑推理劇,由潘粵明、王瀧正、梁緣、呂曉霖、尹姝貽等領銜主演。該劇講述了刑偵支隊隊長關宏峰為了洗脫弟弟關宏宇的殺人罪名,一路破獲多起案件的故事。
  • 「雖是男主,卻比反派還討厭」的5部劇,你不快進看完,算我輸!
    「雖是男主,卻比反派還討厭」的5部劇,你不快進看完,算我輸! 第1部:《神話》 由成龍監製,胡歌、白冰等人主演的這部劇,在2011年播出時,可是非常火,甚至於這部劇的主題曲,都傳唱一首,但很多觀眾越長大越發現,這部劇的男主「易小川」,雖然頂著男主光環,但卻比劇中的反派還討厭,無情無義,即便素素為他而死,他也只是說:我從來沒有愛過你!
  • 「雖是男主,卻比反派還討厭」的5部劇,你不快進看完,算我輸
    「雖是男主,卻比反派還討厭」的5部劇,你不快進看完,算我輸!第1部:《神話》由成龍監製,胡歌、白冰等人主演的這部劇,在2011年播出時,可是非常火,甚至於這部劇的主題曲,都傳唱一首,但很多觀眾越長大越發現,這部劇的男主「易小川」,雖然頂著男主光環,但卻比劇中的反派還討厭,無情無義,即便素素為他而死,他也只是說:我從來沒有愛過你
  • 系統類漫畫大推薦:系統在手,天下我有?
    大家好,我是你們的小編劉楠池,想必有很多的小夥伴都喜歡看漫畫。尤其是那種主角是個廢柴,瀕死之際獲得系統加持。可謂是從此走向人生巔峰,香車美女唾手可得,這種爽文誰不喜歡看呢。今天小編就給大家推薦幾部我正在追的系統類漫畫。
  • 印度士兵換崗過程:每一步都落到我想不到的地方,看完不笑算我輸
    印度士兵換崗過程:每一步都落到我想不到的地方,看完不笑算我輸放飛心情去旅行,旅途有你更精彩,歡迎收看本期內容,在很多人的眼裡、印度是一個非常奇葩的國家,總會做出讓人貽笑大方的事情,只有我們想不到,沒有印度做不到。
  • 只需要一眼就愛上的七月新番,你能忍住不看算我輸
    好了閒言少敘,讓我們進入本期的話題:只需要看一眼就愛上的七月新番,你能忍住不看算我輸!首先就是有著史上最強七月新番之稱的《普通攻擊是全體攻擊而且能二次攻擊的母親你喜歡嗎?》。首先先要說明一下,該番是不是史上最強七月新番我不得而知,但名字可能是史上最長的,就算不是最長,那也是數一數二的長。
  • 為什麼醫生寫的病歷字跡都很潦草,讓病人看不懂?看完心疼了
    很有多小夥伴會把醫生寫的病例叫成天書或者是鬼畫符,很多病人在看完病拿到醫生開給自己的病例後,看見醫生寫的字,真的是一臉懵,完全看不懂。很多私人診所的醫生寫的藥方,也是連成一片,壓根看不清任何一個字。然而,當你將藥方拿給藥房的藥劑師時,他們確又能看得懂。
  • 「明明很火,你卻還沒看」的4部劇,若是你每一部都在追,算我輸
    「明明很火,你卻還沒看」的4部劇,若是你每一部都在追,算我輸在這個暑期檔,上映了很多精彩的電視劇,其中最受歡迎的有《二十不惑》、《三十而已》等等,這兩部都非常不錯,這些劇在網上都引起了很多人的討論,畢竟這些劇的熱度看著就很不錯,而且播放量也不錯,但是就算是這樣,還是有些人一集都沒有看過
  • 把雞蛋換成鴨蛋,小鴨子出殼後雞媽媽都懵了,看完不笑算我輸!
    把雞蛋換成鴨蛋,小鴨子出殼後雞媽媽都懵了,看完不笑算我輸! 把雞蛋換成鴨蛋,當小鴨子出殼後,雞媽媽都懵了,看完不笑算我輸!
  • 分享10個超級強大的動漫視頻網站,看完還不會白嫖動漫算我輸!
    ,如果番劇可以想看就看該多好呀!正是出於這個目的,小編我今天就不推薦軟體了,而是一次性為大家送出10個強大的動漫視頻網站,全部都是資源齊全、完全免費、可直接在線觀看的好網站!喜歡二次元的小夥伴們可以偷偷把這些網站收藏起來啦!
  • 高質量純愛文:《二哈和他的白貓師尊》,先虐後甜,不好看算我輸
    大家好,我又來推薦小說啦,晚上在家太無聊了對吧?接下來我會給大家帶來:高質量純愛文:《二哈和他的白貓師尊》,先虐後甜,不好看算我輸。希望各位品貌非凡,英俊瀟灑,傾國傾城的小哥哥小姐姐,如果覺得有用的話,就小編的文章點個讚加個關注喲。
  • 沒有任何英語啟蒙,寶寶竟能自己看英文版動畫片
    #暑假養娃方式#邊給寶寶剪頭髮,邊放寶寶想看的《迷你特工隊》,沒想到竟然是英文版的。我以為又像往常一樣,寶寶會吵著要換臺。沒想到,寶寶邊看邊把臺詞說出來了!還說沒關係,他看得懂!原來,他平時總是湊在音箱那,聽《迷你特工隊》已經無數遍了。臺詞早就在他的心中。就算英文他完全聽不懂,他也記得臺詞。而且他還稍微能跟的上中文字幕。