久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    如何用深度學習推薦電影?教你做自己的推薦系統!

     昵稱42427018 2017-07-25

    簡介

    幾乎所有人都喜歡與家人、朋友一起觀看電影度過閑暇時光。大家可能都有過這樣的體驗:本想在接下來的兩個小時里看一個電影,卻坐在沙發上坐了20分鐘不知道看什么,選擇困難癥又犯了,結果好心情也變得沮喪。所以,我們很需要一個電腦代理,在做挑選電影的時候提供推薦。

    現在,電影智能推薦系統已經成為日常生活中的一部分。

    Data Science Central 曾表示:

    “雖然硬數據很難獲得,但知情人士估計,對亞馬遜和Netflix這樣的大型電商平臺,推薦系統為它們帶來高達10%至25%的收入增長”。

    在這個項目中, 我研究了一些針對電影推薦的基本算法,并嘗試將深度學習融入到電影推薦系統中。

    把娛樂與視覺藝術相結合,電影是一個很好的例子。電影海報可以直接、快速地把電影信息傳達給觀眾。Design Mantic表示:“不論上映前后,電影海報都是創造噱頭的主要因素。多半的人(目標觀眾)都根據海報來決定買不買票,看不看電影。”我們甚至可以僅僅根據海報字體,來推測這個電影的情緒。

    這聽起來有點像魔術——但看一眼海報就預測出電影的類型,的確是可能的。就拿我來說,瞟一眼海報就知道我想不想看這個電影了。舉個例子,我不是卡通迷,一看到有卡通主題海報,就知道不是我的菜。這個決策的過程很直接,并不需要閱讀電影評論(不確定誰真的有時間讀那些評論)。因此,除了標準的電影推薦算法,我還用了深度學習來處理海報,并將相似的電影推薦給用戶。最終目標是模仿人類視覺,并僅僅通過觀察海報,就能用深度學習創建一個直觀的電影推薦系統。該項目是受到Ethan Rosenthal博客啟發。我對他博客里的代碼進行了修改,以適應這個項目的算法。

    我們用的是從 MovieLens 下載的電影數據集。他包含9066個電影和671名用戶,分成了100000個打分和1300個標簽。這個數據集最后更新于10/2016.

    協同過濾

    粗略地說,有三種類型的推薦系統(不包括簡單的評級方法)

    基于內容的推薦

    協同過濾

    混合模型

    “基于內容的推薦”是一個回歸問題,我們把電影內容作為特征,對用戶對電影的評分做預測。

    而在“協同過濾”推薦系統中,一般無法提前獲得內容特征。是通過用戶之間的相似度(用戶們給了用一個電影相同的評級)和電影之間的相似度(有相似用戶評級的電影),來學習潛在特征,同時預測用戶對電影的評分。此外,學習了電影的特征之后,我們便可以衡量電影之間的相似度,并根據用戶歷史觀影信息,向他/她推薦最相似的電影。

    “基于內容的推薦”和“協同過濾”是10多年前最先進的技術。很顯然,現在有很多模型和算法可以提高預測效果。比如,針對事先缺乏用戶電影評分信息的情況,可以使用隱式矩陣分解,用偏好和置信度取代用戶電影打分——比如用戶對電影推薦有多少次點擊,以此進行協同過濾。另外,我們還可以將“內容推薦”與“協同過濾”的方法結合起來,將內容作為側面信息來提高預測精度。這種混合方法,可以用“學習進行排序”(”Learning to Rank” )算法來實現。

    該項目中,我會聚焦于“協同過濾”方法。首先,我將討論如何 不使用回歸, 而是 電影(用戶)相似度來預測評分 ,并基于相似度做電影推薦。然后,我將討論如何 使用回歸同時學習潛在特征、做電影推薦 。最后會談談 如何在推薦系統中使用深度學習 。

    電影相似性

    對于基于協作過濾的推薦系統,首先要建立評分矩陣。其中,每一行表示一個用戶,每一列對應其對某一電影的打分。建立的評分矩陣如下:

    這里“ratings.csv”包含用戶id,電影id, 評級,和時間信息;”link.csv”包括電影id, IMDB id,和TMDB id。每一個電影利用 API 從 Movie Databasewebsite 獲得海報,都需要 IMDB id——因此,我們將兩個表格結合到一起。我們檢驗了評分矩陣的稀疏性,如下:

    當非零項(entry)只有1.40%的時候評級矩陣是稀疏的。現在,為了訓練和測試,我們將評分矩陣分解成兩個較小的矩陣。我們從評分矩陣中刪除了10個評分,把它們放入測試集。

    根據以下公式計算用戶/電影中的(余弦Cosine) 相似性

    這里s(u,v)是用戶u和v之間的余弦相似度。

    利用用戶之間的相似性,我們能預測每個用戶對電影的評級,并計算出相應的MSE。該預測基于相似用戶的評分。特別地,可以根據以下公式進行打分預測:

    用戶u對電影i的預測,是用戶v對電影的評分的(標準化的)加權和。權重為用戶u和v的相似度。

    預測的MSE為9.8252。這個數字意味著什么?這個推薦系統是好是壞?僅僅看著MSE結果來評估預測效果不是很符合直覺。因此,我們直接檢查電影推薦來評估。我們將搜索一個感興趣的電影,并讓電腦代理來推薦幾部電影。首先要得到相應的電影海報,這樣就能看到都有什么電影被推薦。我們使用IMDB id,使用它的API從Movie Database 網站獲取海報。

    好玩的來了!讓我們來搜索一個電影并看看四個最相似的推薦。讓我們試著搜索《盜火線》,在左手邊第一個,后面是四部推薦的電影。

    《盜火線》是1995年上映的一部美國犯罪電影,由羅伯特·德·尼羅、阿爾·帕西諾主演。搜索結果看起來不錯。但《離開拉斯維加斯》可能不是一個好的建議,我猜原因是因為電影《勇闖奪命島》里有尼古拉斯·凱奇,《The Rock》,以及對喜歡 《盜火線》的觀眾而言,它是一個不錯的推薦。這可能是相似性矩陣和協同過濾的缺點之一。讓我們試試更多的例子。

    這個看起還好。《玩具總動員2》絕對是應該推薦給喜歡《玩具總動員》的觀眾。但是《阿甘正傳》在我看來不合適。顯然,因為湯姆·漢克斯的聲音出現在《玩具總動員》里,所以《阿甘正傳》也被推薦了。值得注意的是,我們可以只看一眼海報就分辨出《玩具總動員》與 《阿甘正傳》的區別,比如電影類型、情緒等。假設每一個小孩都喜歡《玩具總動員》,他們可能會忽略《阿甘正傳》。

    交替隨機梯度下降

    在前面的討論中,我們簡單地計算了用戶和電影的余弦相似度,并以此來預測用戶對電影的評分,還根據某電影推薦其它電影。現在,我們可以把問題做為一個回歸問題;對所有的電影加入潛在特征y,對所有用戶加入權重向量x。目標是將評分預測的(在 2-norm 的正則化條件下)MSE最小化。

    雷鋒網 (公眾號:雷鋒網) 提醒:權重向量和特征向量都是決策變量。顯然,這不是一個凸函數問題,現在也不需要過分擔心這個非凸函數的收斂性。有很多方法能解決非凸函數的優化問題。方法之一就是以交替方式()解決權重向量(對用戶)和特征向量(對電影)。處理權重向量時,假設特征向量是常向量;處理特征向量時,假設權重向量是常向量。解決這個回歸問題的另一種方法,是將權重向量與特征向量的更新結合起來,在同一個迭代中更新它們。另外,還可以借助隨機梯度下降來加速計算。這里,我用隨機梯度下降來解決這個回歸問題,我們的MSE預測如下:

    這個MSE比用相似性矩陣得到的,要小得多。當然,我們也可以使用網格搜索和交叉驗證對模型、算法調參。再看看電影搜索的推薦:

    看起來并不是很好。我覺得這四部電影不應該通過搜索《盜火線》推薦給我,他們看起來與《盜火線》完全不相關,這四個電影是浪漫、戲劇類。如果我找的是一部有大明星的美國犯罪電影,我憑什么會想要看戲劇電影? 這讓我很困惑——一個好的MSE的結果可能會給我們一個風馬牛不相及的推薦。

    因此,我們討論一下基于協同過濾的推薦系統的弱點。

    協同過濾方法通過使用數據,來發現類似的用戶和電影,這將導致熱門電影比小眾電影更容易被推薦。

    由于新上映的電影沒有太多的使用數據,指望協同過濾向用戶推薦任何新電影很不現實。

    接下來,我們將考慮采用另一種方法來處理協同過濾問題——用深度學習推薦電影。

    深度學習

    我們將在Keras中用VGG16來訓練神經網絡。我們的數據集中沒有目標,只是將倒數第四層作為一個特征向量。我們用這個特征向量,來描述數據集中的每一個電影。雷鋒網提醒,在訓練神經網絡之前,還需要做一些預處理,訓練過程如下。

    在代碼中,我們首先使用API和IMDB id,從TMDB網站獲取電影海報。然后向VGG16提供海報來訓練神經網絡。最后,用VGG16學習的特征來計算余弦相似性。獲得電影相似性之后,我們可以推薦相似度最高的電影。VGG16總共有25088個學來的特征,我們使用這些特征來描述數據集中的每個電影。

    來看看使用深度學習的電影推薦系統。

    《導火線》不再和愛情戲劇一起出現了!這些電影海報有一些相同的特點:深藍色的、上面還有人物等等。讓我們再來試試《玩具總動員》。

    《阿甘正傳》不會再被推薦了!結果看起來不錯,朕心甚慰,再來試試別的!

    注意,這些海報里都有一或兩個人,并有冷色系的主題風格。

    這些海報想讓觀眾知道相應電影的氛圍歡樂、緊張,并有很多動作鏡頭,所以海報的顏色也很強烈。

    不同于上一組,這些海報想告訴觀眾:這些電影講述的是一個單身漢。

    我們找到的與《功夫熊貓》類似的電影。

    這一組很有趣。一群相似的怪獸以及湯姆·克魯斯!

    所有這些海報里都有姿勢類似的女士。等等,那個是奧尼爾!?

    成功找到了蜘蛛俠!

    這些海報的排版設計很接近。

    結論

    在推薦系統中有幾種使用深度學習的方法:

    無監督學習

    從協同過濾中預測潛在特征

    將深度學習生成的特征作為輔助信息

    電影海報具有創造噱頭和興趣的視覺元素。這個項目中,我們使用了無監督深度學習,通過海報來學習電影的相似性。顯然,這只是在推薦系統中使用深度學習的第一步,我們還可以嘗試很多東西。例如,我們可以用深度學習來預測協同過濾生成的潛在特征。Spotify的音樂推薦也使用了類似的方法,區別于圖像處理,他們通過處理歌曲的聲音,來用深度學習來預測協同過濾中的潛在特征。還有一個可能的方向。是把深度學習學到的特征作為輔助信息,來提高預測的準確性。


    媒體合作請聯系:

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 日韩欧美一卡2卡3卡4卡无卡免费2020| 欧美人妻一区二区三区| 国产精品国产三级国AV| 国内精品一区二区三区| 亚洲国产成人综合精品| 国产亚洲欧美另类一区二区 | 一区二区三区不卡国产| 毛片无遮挡高清免费| 最新国产精品久久精品| 草裙社区精品视频播放| 国产果冻豆传媒麻婆精东| 亚洲人成电影网站 久久影视| 精品人妻系列无码人妻漫画| 国产精品二区中文字幕| 人妻精品久久无码专区精东影业| 久久精品国产亚洲av麻豆不卡| 国产娱乐凹凸视觉盛宴在线视频| 国产国拍亚洲精品永久软件| 秋霞人妻无码中文字幕| AV激情亚洲男人的天堂| 国产360激情盗摄全集| 国产AV国片精品有毛| 丰满人妻被黑人连续中出| 久久99精品久久久久久9| 狠狠婷婷色五月中文字幕| 我国产码在线观看av哈哈哈网站| 国产成人免费高清激情视频 | 国内精品久久久久影院网站| 亚洲中文字幕无码爆乳APP| 我国产码在线观看av哈哈哈网站| 欧美孕妇变态孕交粗暴| 亚洲男人AV天堂午夜在| 亚洲精品无码久久久久SM| 亚洲精品成人久久久| 丁香五月亚洲综合在线国内自拍| 吃奶呻吟打开双腿做受动态图| 国产清纯在线一区二区| 国产精品亚洲二区亚瑟| 狠狠综合久久AV一区二区| 国产初高中生在线视频| 午夜福利片1000无码免费|