• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于協(xié)同過濾的歌曲推薦算法研究

    2019-01-08 08:37:44王炳祥
    關(guān)鍵詞:協(xié)同過濾

    王炳祥

    摘要:根據(jù)用戶的歷史聽歌記錄挖掘用戶的音樂偏好,給用戶做出滿意的個性化歌曲推薦具有重要意義。采用基于用戶的K最近鄰協(xié)同過濾推薦算法,以網(wǎng)易云1000多份熱門歌單作為測試數(shù)據(jù)集,蝦米音樂用戶聽歌行為數(shù)據(jù),在PyCharm集成開發(fā)環(huán)境中進(jìn)行實驗研究,并用三種方法對獲取的歌單推薦結(jié)果進(jìn)行評估。

    關(guān)鍵詞:歌曲推薦;協(xié)同過濾;KNN

    中圖分類號:TN391 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)10-0126-02

    0 引言

    在上世紀(jì)初期的90年代,推薦系統(tǒng)的研究開始逐步盛行,它應(yīng)用了認(rèn)知診斷、信息搜索、機(jī)器學(xué)習(xí)等多領(lǐng)域的知識[1-2]。推薦系統(tǒng)即利用一定的技術(shù)和方法,通過已有的歷史記錄對用戶的興趣愛好建立模型,給用戶推薦滿足其個性化需求的物品和信息[2]。推薦系統(tǒng)可被看成一種信息過濾工具,因此,推薦算法也被叫做過濾算法。根據(jù)過濾算法的不同,推薦算法可以分為三類:基于內(nèi)容的過濾、協(xié)同過濾、混合過濾。目前應(yīng)用最為廣泛的是協(xié)同過濾的方式[3]。

    對于音樂推薦而言,用戶的偏好通常隱式地通過對音樂產(chǎn)生的行為記錄和聆聽習(xí)慣來表達(dá)。另外,用戶無法全面而的且準(zhǔn)確地對音樂進(jìn)行定位。因此,根據(jù)用戶的歷史聽歌記錄挖掘用戶的音樂偏好,給用戶做出個性化推薦,提高推薦系統(tǒng)的準(zhǔn)確度和用戶滿意度是很重要的一項研究目標(biāo)。

    1 協(xié)同推薦算法

    協(xié)同過濾(CF,Collaborative Filtering)也叫做基于近鄰(NN,Nearest Neighbor)的推薦算法,主要思想是:利用已有用戶群的過去行為或意見來預(yù)測數(shù)據(jù),根據(jù)與當(dāng)前用戶/當(dāng)前物品較為相似的近鄰數(shù)據(jù)來產(chǎn)生推薦結(jié)果。本文采用基于用戶的K最近鄰?fù)扑](User-based KNN)協(xié)同推薦算法。算法基本原理如下:

    首先,對輸入的評分?jǐn)?shù)據(jù)集和當(dāng)前用戶ID作為輸入,找出與當(dāng)前用戶過去有相似偏好的其它用戶,這些用戶叫做對等用戶或者最近鄰;然后,對當(dāng)前用戶沒有見過的每個產(chǎn)品p,利用用戶的近鄰對產(chǎn)品p的評分進(jìn)行預(yù)測;最后,選擇所有產(chǎn)品評分最高的TopN個產(chǎn)品推薦給當(dāng)前用戶。

    通過下式計算用戶u對歌曲i的喜愛程度:

    其中N(i)表示對歌曲/單i有過行為的用戶集合,wuv是用戶u和用戶v之間的相似度,rvi表示用戶v對歌曲/單i的打分。

    算法輸入是一個“用戶-物品”評分矩陣,輸出數(shù)據(jù)一般有兩類:當(dāng)前用戶對物品喜歡和不喜歡程度的預(yù)測值和n項的推薦物品列表。

    2 數(shù)據(jù)集獲取

    任何機(jī)器學(xué)習(xí)算法解決問題,首先需要考慮的就是數(shù)據(jù)從何而來。在歌曲推薦算法中首先要考慮歌單數(shù)據(jù)的來源問題。

    2.1 測試數(shù)據(jù)集

    本研究中,采用傳參動態(tài)密碼的高級加密標(biāo)準(zhǔn)AES(AES, Advanced Encryption Standard)算法爬取了網(wǎng)易云1000多份熱門歌單作為測試數(shù)據(jù)集。爬蟲主體是利用requst獲取html內(nèi)容,用BeautifulSoup提取有用數(shù)據(jù)。

    2.2 數(shù)據(jù)預(yù)處理

    對數(shù)據(jù)進(jìn)行預(yù)處理,將歌單數(shù)據(jù)轉(zhuǎn)化成推薦系統(tǒng)格式數(shù)據(jù)。主流的Python推薦系統(tǒng)框架,其評分基礎(chǔ)數(shù)據(jù)格式為user item rating timestamp,主要抽取歌單id和歌曲流行度,同時保存好歌單id到歌單名的映射字典文件。

    2.3 歌曲推薦數(shù)據(jù)

    利用scrpy_redis分布式爬蟲,爬取蝦米音樂用戶聽歌行為數(shù)據(jù),最終得到了大概6萬多條真實的未脫敏用戶播放數(shù)據(jù)。

    要完成推薦,需要得到每個用戶對每首歌的一個評價矩陣。因此,需要從中摘取出用戶id、歌曲名和評分(播放次數(shù)越多,評分越高),然后做成excel表格,再用pandas轉(zhuǎn)換成數(shù)據(jù)框格式進(jìn)行讀取。

    3 實驗研究

    3.1 實驗設(shè)計

    本次實驗是在PyCharm集成開發(fā)環(huán)境中進(jìn)行的,所使用的主要庫為Surprise(Simple Python Recommendation System Engine)。首先對整理好的用戶評分矩陣整理成excel表,然后用pandas函數(shù)轉(zhuǎn)化成數(shù)據(jù)框格式進(jìn)行讀取,載入自己的數(shù)據(jù)集并進(jìn)行手動5折交叉驗證。用基于用戶的協(xié)同過濾算訓(xùn)練模型,計算相似度(采用內(nèi)置的皮爾森相似度),然后調(diào)用Surprise庫并用KNNWithMeans算法對數(shù)據(jù)集進(jìn)行實驗。

    3.2 實驗分析

    首先,導(dǎo)入數(shù)據(jù)集readersurprise庫算法,然后用pd.reader_ excel讀取用戶評分矩陣并將其轉(zhuǎn)化成推薦格式,接著載入數(shù)據(jù)集并進(jìn)行模型訓(xùn)練,最后生成用戶推薦列表。推薦結(jié)果如圖1所示。

    然后對數(shù)據(jù)集用KNNWithMeans算法進(jìn)行實驗評估,結(jié)果分別如圖2所示。

    評估標(biāo)準(zhǔn)均方根誤差RMSE和標(biāo)準(zhǔn)平均絕對誤差MAE,理論上這兩個值是越小越好。

    4 結(jié)語

    本文提出了基于標(biāo)簽的個性化音樂推薦和基于用戶特征的個性化音樂推薦的方法,在推薦性能上有了一定的改進(jìn),但仍存在需要進(jìn)一步改善的地方。比如,當(dāng)音樂的數(shù)據(jù)量越來越大,音樂的平臺越來越多的時候,對用戶信息的提取和利用應(yīng)該更加完善,因此對于音樂推薦可以更多的考慮深度學(xué)習(xí)訓(xùn)練音樂特征,進(jìn)一步改進(jìn)音樂推薦效果。

    參考文獻(xiàn)

    [1] 高鳳麗,孫連山.個性化推薦系統(tǒng)概述[J].技術(shù)與市場,2015,22(2):78-79.

    [2] 朱天宇,黃振亞,陳恩紅,等.基于認(rèn)知診斷的個性化試題推薦方法[J].計算機(jī)學(xué)報,2017(1):176-191.

    [3] 冷亞軍,陸青,梁昌勇.協(xié)同過濾推薦技術(shù)綜述[J].模式識別與人工智能,2014,27(8):720-734.

    猜你喜歡
    協(xié)同過濾
    基于用戶評分和項目類偏好的協(xié)同過濾推薦算法
    基于用戶相似度加權(quán)的Slope One算法
    軟件(2016年4期)2017-01-20 09:44:28
    圖書推薦算法綜述
    改進(jìn)的協(xié)同過濾推薦算法
    基于鏈?zhǔn)酱鎯Y(jié)構(gòu)的協(xié)同過濾推薦算法設(shè)計與實現(xiàn)
    基于相似傳播和情景聚類的網(wǎng)絡(luò)協(xié)同過濾推薦算法研究
    基于協(xié)同過濾算法的個性化圖書推薦系統(tǒng)研究
    混合推薦算法在電影推薦中的研究與評述
    關(guān)于協(xié)同過濾推薦算法的研究文獻(xiàn)綜述
    商(2016年29期)2016-10-29 15:22:08
    基于混合信任模型的協(xié)同過濾推薦算法
    舞钢市| 乐至县| 静海县| 孝昌县| 波密县| 宣化县| 贵定县| 青海省| 秦安县| 新平| 涞源县| 清水河县| 连江县| 怀来县| 贵阳市| 普安县| 马公市| 泽库县| 吴旗县| 保山市| 桑植县| 宁乡县| 南通市| 尚志市| 根河市| 邢台县| 江达县| 鹤峰县| 鸡东县| 吉木乃县| 平武县| 池州市| 乌拉特后旗| 南涧| 开鲁县| 屏山县| 菏泽市| 杭锦后旗| 嘉义市| 双鸭山市| 江达县|