999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于協同過濾的電影推薦系統的設計與實現

2019-05-22 10:27:32張玉葉
電腦知識與技術 2019年6期

張玉葉

摘要:隨著在線電影數量的飛速增長,要想從眾多的電影中選擇一部自己想看的電影變得越來越困難。為了更好地滿足用戶的觀影需求,電影推薦系統應運而生,它通過用戶的觀影記錄來發現用戶的興趣,從而幫助用戶在眾多電影中篩選到自己感興趣的電影。基于物品的協同過濾算法是電影推薦系統中最常用的推薦算法,該算法的關鍵是計算物品的相似度及推薦評分,相似度矩陣是一稀疏矩陣,已有的一些電影推薦系統中通常采用二維數組來存放相似度矩陣,利用第三方擴展庫Numpy來計算推薦評分,時間空間效率相對較低,該文利用Python內置的序列字典來存放稀疏矩陣,自行編寫相應的代碼來求解相似度和推薦評分,可有效提高算法的時間、空間效率。

關鍵詞:推薦系統;協同過濾;Python;稀疏矩陣

中圖分類號:TP391.1 文獻標識碼:A 文章編號:1009-3044(2019)06-0070-04

Design and Implementation of Movie Recommendation System Based on Collaborative Filtering

ZHANG Yu-ye

(Dept. of computer, Jinan Vocational College, Jinan 250014, China)

Abstract: With the rapid increase in the number of online movies, it is increasingly difficult to choose from among the many movies you want to watch. In order to better meet the user's viewing needs, the film recommendation system came into being. It discovered the user's interest through the user's viewing video record, thus helping users to select movies of interest in many movies. The object-based collaborative filtering algorithm is the most commonly used recommendation algorithm in the movie recommendation system. The key of the algorithm is to calculate the similarity of the item and the recommended score. The similarity matrix is a sparse matrix. Some existing movie recommendation systems usually use two-dimensional arrays to store similarity matrices, use third-party extension library Numpy to calculate the recommended score, which leads to the low efficiency of time and space. This article uses Python's built-in sequence dictionary to store sparse matrices and gives the corresponding code to solve the recommended score, which improves the algorithm efficiency of time and space.

Key words: recommender system; collaborative filtering; Python; sparse matrix

1 背景

隨著在線電影數量的飛速增長,要想從眾多的電影中選擇一部自己想看的電影變得越來越困難。當用戶有明確觀影需求時可利用搜索引擎來查找自己想看的電影,但當用戶沒有明確需求時,就很難利用搜索引擎來查找自己想看的電影,此時電影推薦系統應運而生,它通過用戶的觀影記錄來發現用戶的興趣,從而幫助用戶在眾多電影中篩選到自己感興趣的電影。基于物品的協同過濾算法是電影推薦系統中最常用的推薦算法,該算法的關鍵是計算電影的相似度及推薦評分,在計算時需要用到矩陣的一些運算,Python的第三方擴展庫Numpy提供了大量的數組及矩陣運算,因此已有的一些電影推薦系統中多是利用Numpy來實現協同過濾算法,但因協同過濾算法中涉及到的矩陣多是稀疏矩陣,采用普通的二維數組存放存在大量的無效存儲,空間利用率較低,同時利用Numpy擴展庫也無法進行算法的優化,因此本文利用Python的內置序列字典來存放稀疏矩陣,自行編制相應的代碼來求解相似度及推薦評分,可有效提高算法的時間空間效率。

2 推薦系統

推薦系統是建立在海量數據挖掘基礎上的,它通過分析用戶的歷史數據來了解用戶的需求和興趣,從而將用戶感興趣的信息、物品等主動推薦給用戶,其本質是建立用戶與物品之間的聯系。一個完整的推薦系統通常包含3個模塊:用戶建模模塊、推薦對象建模模塊和推薦算法模塊。推薦系統首先對用戶進行建模,根據用戶行為數據和屬性數據來分析用戶的興趣和需求,同時也對推薦對象進行建模。接著,基于用戶特征和物品對象特征,采用推薦算法計算得到用戶可能感興趣的物品,然后根據推薦場景對推薦結果進行一定的推薦和調整,最終將推薦結果展示給用戶[1]。

3 協同過濾算法

協同過濾算法分為基于用戶的協同過濾算法和基于物品的協同過濾算法[2]。

基于用戶的協同過濾算法(簡稱UserCF),通過不同用戶對物品的評分來評測用戶之間的相似性,基于用戶之間的相似性做出推薦。簡單來講就是:給用戶推薦和他興趣相似的其他用戶喜歡的物品。

基于物品的協同過濾算法(簡稱ItemCF),通過用戶對不同物品的評分來評測物品之間的相似性,基于物品之間的相似性做出推薦。簡單來講就是:給用戶推薦和他之前喜歡的物品相似的物品。

UserCF算法和ItemCF算法思想類似,其實現過程也基本類似,唯一不同的是一個是計算用戶相似度,一個是計算物品相似度。

UserCF算法和ItemCF最主要的區別在于:UserCF推薦的是那些和目標用戶有共同興趣愛好的其他用戶所喜歡的物品,ItemCF算法則推薦那些和目標用戶之前喜歡的物品類似的其他物品。因此,UserCF算法的推薦更偏向社會化,適合應用于新聞推薦、微博話題推薦等應用場景;而ItemCF算法的推薦則是更偏向于個性化,適合應用于電子商務、電影、圖書等應用場景。

4 電影推薦系統的設計與實現

4.1 推薦算法

根據前面對協同過濾算法的分析,電影推薦系統適合采用基于物品的協同過濾算法(簡稱ItemCF)。基于物品的協同過濾算法是給目標用戶推薦那些和他們之前喜歡的物品相似的物品。此算法并不利用物品的內容屬性計算物品之間的相似度,而主要通過分析用戶的行為記錄來計算物品之間的相似度。ItemCF算法主要包括兩步:

4.5計算推薦評分及推薦結果

計算每個用戶的未曾看過的電影的推薦評分(也即興趣度)。推薦評分=同現矩陣M*評分向量R。

評分向量即用戶對所有物品(電影)的評分,由評分記錄表可得出。

4.6 輸出推薦結果

推薦結果的輸出可根據需要自由構造,既可以只生成某一指定用戶的推薦列表,也可生成所有用戶的推薦列表,如要生成對所有用戶推薦1部未曾看過的電影,其對應的代碼為:

5 測試分析

前面給出的測試數據集數據很少,主要應用于系統開發測試中。實際應用中推薦系統所用的數據集通常為海量數據,為驗證系統在海量數據中的使用,可以MovieLens(http://grouplens.org/datasets/movielens)作為電影推薦系統中的實驗數據來測試系統。MovieLens是GroupLens Research實驗室的一個非商業性質、以研究為目的的實驗性項目,采集了一組從20世紀90年代末到21世紀初的電影評分數據,包含大小不同的數據集,每個數據集中包括電影信息數據及電影評分記錄等。如MovieLens 1M數據集中存放了1000多名用戶對近2000部電影的評分記錄,每個用戶至少對20部電影進行過評分,一共有100000多條電影評分記錄,能夠模擬出海量數據的推薦。如采用MovieLens 1M數據集來使用本系統來為用戶1推薦5部想看的電影,其推薦結果如圖7所示。

6 結束語

電影推薦系統可幫助用戶從海量電影中獲取自己想看電影,是大數據在互聯網領域的典型應用,通過分析用戶的歷史觀影記錄來了解用戶的喜好,從而主動為用戶推薦其感興趣的電影,滿足了用戶的個性化觀影需求。該文利用Python語言實現的基于物品的協同過濾算法的電影推薦系統,利用了Python內置的序列字典來存放稀疏矩陣,自行編寫相應的代碼實現矩陣運算及求解推薦評分,相比于利用Numpy第三方擴展庫,其算法時間空間效率相對較高。

參考文獻:

[1] 查魯 C 阿加沃爾. 推薦系統:原理與實踐[M]. 北京: 機械工業出版社, 2017.

[2] 項亮. 推薦系統實踐[M]. 北京: 人民郵電出版社, 2012.

[3] 王建芳. 機器學習算法實踐[M]. 北京: 清華大學出版社, 2018.

[4] 董付國. Python程序設計開發寶典[M]. 北京: 清華大學出版社, 2017.

[5] 林子雨. 大數據技術原理與應用[M]. 北京: 人民郵電出版社, 2017.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 国产在线观看91精品亚瑟| 日本一区高清| 午夜日b视频| 久久免费观看视频| 久久久久人妻一区精品色奶水 | 91 九色视频丝袜| 国产杨幂丝袜av在线播放| 亚洲av色吊丝无码| 午夜少妇精品视频小电影| 在线精品自拍| 无码丝袜人妻| 97久久免费视频| 亚洲欧美日韩天堂| 亚洲国模精品一区| 91精品国产91久久久久久三级| 精品人妻一区无码视频| 日本五区在线不卡精品| 亚洲视频无码| 国产91视频免费观看| 亚洲妓女综合网995久久| 九色在线观看视频| 日本亚洲成高清一区二区三区| 欧美 亚洲 日韩 国产| 九九九国产| 欧美v在线| 亚洲日韩AV无码一区二区三区人| 67194成是人免费无码| a毛片在线播放| 久久国产热| 婷婷五月在线| 国产精品久久自在自线观看| 国产精品亚洲а∨天堂免下载| 福利在线不卡一区| 久久国产香蕉| 中文字幕亚洲无线码一区女同| 国产精品男人的天堂| 99久久精品国产综合婷婷| 国产成人高清精品免费5388| 日本在线亚洲| 男女男精品视频| 欧美日韩资源| 亚洲人成色77777在线观看| 成人va亚洲va欧美天堂| 久久人搡人人玩人妻精品一| 毛片网站在线看| 91亚洲精品国产自在现线| 亚洲人人视频| 99久久99视频| 国产精品天干天干在线观看| 在线观看精品国产入口| 色妺妺在线视频喷水| 婷婷午夜天| 亚洲国产天堂久久综合| 九色在线视频导航91| 亚洲人成日本在线观看| 四虎永久在线视频| 亚洲天堂啪啪| 亚洲人成网站观看在线观看| 日韩精品一区二区三区swag| 国产成本人片免费a∨短片| 国产精品30p| 亚洲国产日韩在线观看| 久久青草免费91线频观看不卡| 乱色熟女综合一区二区| 国产成人精品一区二区不卡| 国产福利免费视频| 亚洲国产精品一区二区高清无码久久| 这里只有精品在线播放| 视频二区中文无码| 伊人久久精品亚洲午夜| 久久久久无码国产精品不卡| 99久久国产自偷自偷免费一区| 国产成人综合日韩精品无码首页| 欧美天堂久久| 亚洲成人在线网| 丰满少妇αⅴ无码区| 久久国产亚洲欧美日韩精品| 免费人成网站在线高清| 日韩亚洲高清一区二区| 91丝袜乱伦| 亚洲国产成人麻豆精品| 人妻少妇久久久久久97人妻|