国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于迭代SVD的電影推薦算法的研究

2021-07-19 09:37武文碩左安
電腦知識(shí)與技術(shù) 2021年15期
關(guān)鍵詞:協(xié)同過(guò)濾

武文碩 左安

摘要:現(xiàn)有的電影推薦算法中,協(xié)同過(guò)濾算法是最常使用、操作最簡(jiǎn)單方便的算法,但傳統(tǒng)的協(xié)同過(guò)濾算法存在評(píng)分矩陣稀疏、推薦精度低等問(wèn)題。針對(duì)這些問(wèn)題,提出了矩陣填充策略,根據(jù)矩陣填充技術(shù)的優(yōu)缺點(diǎn),選擇了幾種填充稀疏矩陣的方法,并且利用迭代SVD算法得到了電影推薦的局部最優(yōu)解,并利用均方根誤差(RMSE)對(duì)結(jié)果進(jìn)行了評(píng)價(jià),利用R軟件對(duì)電影評(píng)分?jǐn)?shù)據(jù)集進(jìn)行處理,實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的協(xié)同過(guò)濾推薦算法相比,迭代SVD算法能有效地提高推薦的準(zhǔn)確性,更加準(zhǔn)確地給用戶提供想看的電影。

關(guān)鍵詞:協(xié)同過(guò)濾;矩陣填充;稀疏矩陣;電影推薦

中圖分類號(hào):TP391.3? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)15-0001-03

Abstract: Among the existing film recommendation algorithms, collaborative filtering algorithm is the most commonly used and easy to operate algorithm, but the traditional collaborative filtering algorithm has the problems of sparse rating matrix and low recommendation accuracy. According to the advantages and disadvantages of matrix filling technology, several methods of filling sparse matrix are selected. The local optimal solution of movie recommendation is obtained by using iterative SVD algorithm, and the results are evaluated by root mean square error (RMSE). Finally, R software is used to process the movie rating data set. The experimental results show that the proposed method is more effective than the traditional method Compared with the collaborative filtering recommendation algorithm based on SVD, the iterative SVD algorithm can effectively improve the accuracy of recommendation and provide users with more accurate movies they want to see.

Keywords: collaborative filtering; matrix filling; sparse matrix; movie recommendation

1引言

隨著互聯(lián)網(wǎng)科技的迅速發(fā)展,我們現(xiàn)在進(jìn)入信息時(shí)代,信息量呈現(xiàn)爆炸式地增長(zhǎng),人們從網(wǎng)上搜到的數(shù)據(jù)越來(lái)越多,相比之下,有用的數(shù)據(jù)量少之又少。為了幫助人們從紛繁復(fù)雜的信息中,找到自己需要的內(nèi)容,個(gè)性化推薦系統(tǒng)應(yīng)運(yùn)而生,本文介紹了電影推薦算法以及改進(jìn)算法,通過(guò)對(duì)大量的數(shù)據(jù)進(jìn)行處理分析、數(shù)據(jù)可視化,得出結(jié)論是通過(guò)SVD處理后,推薦精度能夠得到進(jìn)一步的提升,有效克服了傳統(tǒng)推薦算法的缺點(diǎn)。

2研究方法

2.1協(xié)同過(guò)濾算法

協(xié)同過(guò)濾算法是一種較為著名和常用的推薦算法,它是通過(guò)用戶的歷史搜索記錄和瀏覽記錄等信息,對(duì)這些信息進(jìn)行數(shù)據(jù)挖掘,與相似的客戶群體和物品進(jìn)行對(duì)比,發(fā)現(xiàn)客戶的喜好,據(jù)此預(yù)測(cè)用戶可能喜好的產(chǎn)品進(jìn)行推薦。也就是常見(jiàn)的“猜你喜歡”,和“購(gòu)買了該商品的人也喜歡”等功能。它的主要實(shí)現(xiàn)由:

1) 根據(jù)和你有共同喜好的人給你推薦;

2) 根據(jù)你喜歡的物品給你推薦相似物品;

3) 根據(jù)以上條件綜合推薦。

因此可以得出常用的協(xié)同過(guò)濾算法分為兩種,基于用戶的協(xié)同過(guò)濾算法,以及基于項(xiàng)目的協(xié)同過(guò)濾算法。特點(diǎn)可以概括為“物以類聚,人以群分”,并據(jù)此進(jìn)行預(yù)測(cè)和推薦。本文將使用基于用戶的協(xié)同過(guò)濾算法(UBCF) 、基于項(xiàng)目的協(xié)同過(guò)濾算法(IBCF) 、基于SVD的協(xié)同過(guò)濾算法,這三種基礎(chǔ)的協(xié)同過(guò)濾算法作為參照組進(jìn)行比較。協(xié)同過(guò)濾推薦算法的基本原理是通過(guò)“用戶-項(xiàng)目“評(píng)分矩陣Z計(jì)算相似度,評(píng)分矩陣Z為m×n維矩陣,m為用戶的數(shù)目,n為項(xiàng)目的數(shù)目,每一個(gè)元素[ru,i]表示用戶u對(duì)項(xiàng)目i的評(píng)分。該評(píng)分矩陣一般是具有強(qiáng)“稀疏性”(sparsity)的大矩陣。圖1空白位置對(duì)應(yīng)矩陣的數(shù)據(jù)缺失。

傳統(tǒng)的協(xié)同過(guò)濾推薦算法通常有以下三個(gè)缺點(diǎn):稀疏性,從上圖我們可以看出來(lái)空白的地方非常大,表明數(shù)據(jù)矩陣非常稀疏,形成目標(biāo)用戶的最近用戶集時(shí),往往會(huì)造成信息缺失,從而導(dǎo)致推薦效果降低;冷啟動(dòng)性,冷啟動(dòng)又叫作第一評(píng)價(jià)問(wèn)題,或新物品問(wèn)題,當(dāng)新項(xiàng)目和新用戶首次出現(xiàn)的時(shí)候,評(píng)價(jià)和反饋的信息都比較少,使得推薦的效果差強(qiáng)人意,一定程度上看成是稀疏矩陣的極端情況;最后就是可擴(kuò)展性,面對(duì)每日新增的用戶和增多的電影數(shù)量,數(shù)據(jù)量急劇增長(zhǎng),算法面對(duì)不斷擴(kuò)大的數(shù)據(jù)規(guī)模,推薦準(zhǔn)確性下降,即可擴(kuò)展性面臨挑戰(zhàn)。

針對(duì)以上推薦算法的不足之處,本文提出迭代奇異值分解(Singular Value Decomposition,SVD)來(lái)解決這些問(wèn)題。

2.2迭代SVD算法

具體來(lái)說(shuō),對(duì)于[Z:m×n], 令[Ω?{1,…,m}×{1,…,n}]表示[Z]中觀測(cè)到的元素的索引的集合,給定這些觀測(cè)值,一個(gè)自然的思路是可對(duì)應(yīng)尋找[Z]的最低秩矩陣[Z],即[Z=argminM∈Rm×nrank(M),其約束為mij=zij,(i,j)∈Ω]。

但含缺失數(shù)據(jù)的最低秩問(wèn)題計(jì)算非常困難,一般無(wú)法求解。因此,更常見(jiàn)的求解方法是允許所得到的[M]矩陣與觀測(cè)值之間有一定誤差,即

[Zr=argminrank(M)≤r(i,j)∈Ω(zij-mij)2]

該問(wèn)題是非凸優(yōu)化,通常得不到最優(yōu)解,但可以采用迭代算法來(lái)得到局部最優(yōu)解。

步驟一:通過(guò)對(duì)[Z]進(jìn)行隨機(jī)填充,初始化[Z];

步驟二:通過(guò)計(jì)算[Z]的r秩SVD求解[M]:

[Z=UDVT, M←UrDVT;]

步驟三:基于[M]對(duì)[Z]的缺失部分進(jìn)行填充:

[zij←mij,(i,j)?Ω;]

步驟四:重復(fù)第2-3步,直至算法收斂。

2.3預(yù)測(cè)準(zhǔn)確度

預(yù)測(cè)準(zhǔn)確度是用來(lái)評(píng)價(jià)電影推薦算法的預(yù)測(cè)評(píng)分與用戶的實(shí)際評(píng)分是否接近的指標(biāo),在推薦系統(tǒng)中,預(yù)測(cè)準(zhǔn)確度是很重要的參數(shù),通過(guò)準(zhǔn)確度的計(jì)算,我們可以知道推薦算法的有效程度。常用的預(yù)測(cè)評(píng)分準(zhǔn)確度標(biāo)準(zhǔn)有:平均絕對(duì)誤差(MAE) 、均方根誤差(RMSE) ,定義如下:

[MAE=i=1N|ri-ri|N]? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)

[RMSE=i=1N(ri-ri)^2N]? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)

其中[ri]表示的是用戶u對(duì)于項(xiàng)目i的真實(shí)評(píng)分,[ri]表示的是預(yù)測(cè)評(píng)分,N表示測(cè)試集的大小。從公式可以看出RMSE更復(fù)雜且偏向更高的誤差,而且用RMSE來(lái)定義損失函數(shù)是平滑可微的,因此它是許多模型的默認(rèn)度量標(biāo)準(zhǔn)。我們本文選擇RMSE作為分析結(jié)果的標(biāo)準(zhǔn),為了說(shuō)明樣本的離散程度,RMSE的數(shù)值越小代表準(zhǔn)確度越高。

3實(shí)驗(yàn)分析

3.1實(shí)驗(yàn)數(shù)據(jù)集

針對(duì)此次電影推薦算法的研究,選用的數(shù)據(jù)集是Movielens電影評(píng)分?jǐn)?shù)據(jù)集中最小的一組數(shù)據(jù)MovieLenslastest small是最小的一組數(shù)據(jù),此數(shù)據(jù)集是由美國(guó)明尼蘇達(dá)大學(xué)Grouplens項(xiàng)目從Movielens站點(diǎn)整理而來(lái),廣泛應(yīng)用于個(gè)性化推薦算法研究中,數(shù)據(jù)集包括600余名用戶對(duì)9000余部電影1,000,000余個(gè)評(píng)分(1~5),評(píng)分值越高表示越滿意。原始數(shù)據(jù)可從grouplens.org/datasets/movielens下載, 根據(jù)包含的數(shù)據(jù)量與評(píng)分年份的不同, 提供了不同的版本。

3.2實(shí)驗(yàn)設(shè)計(jì)和結(jié)果分析

第一步利用R語(yǔ)言自帶的Recommender包對(duì)Movielenslastest small數(shù)據(jù)集進(jìn)行處理,得到RMSE的值,這是傳統(tǒng)協(xié)同過(guò)濾算法得到的結(jié)果,作為標(biāo)準(zhǔn)組進(jìn)行對(duì)照,結(jié)果如下表1:

從結(jié)果我們可以看出,svd算法的RMSE值最小,在基于用戶,基于項(xiàng)目和基于svd的協(xié)同算法中,基于svd的方法更加有效一點(diǎn),具有更好的推薦效果。

第二步對(duì)傳統(tǒng)協(xié)同算法進(jìn)行改進(jìn),將數(shù)據(jù)集隨機(jī)抽取75%左右的評(píng)分為訓(xùn)練集,25%為測(cè)試集,利用上述迭代SVD算法,在Movielens數(shù)據(jù)集上進(jìn)行評(píng)分填充,選取秩r為2,3,4,5,10,50,100, 分別報(bào)告評(píng)分填充在訓(xùn)練集和測(cè)試集上的RMSE, 對(duì)訓(xùn)練集的數(shù)據(jù)矩陣行和列進(jìn)行中心化,對(duì)中心化后的訓(xùn)練集數(shù)據(jù)矩陣也求解RMSE,得到的結(jié)果如下表2所示:

實(shí)驗(yàn)數(shù)據(jù)表明,隨著秩r逐漸增大,RMSE逐漸減小,這表明當(dāng)r越大,推薦精度越準(zhǔn)確,訓(xùn)練集和測(cè)試集的數(shù)據(jù)量不同;從圖中可以清晰地看出,測(cè)試集的RMSE明顯小于訓(xùn)練集,說(shuō)明數(shù)據(jù)量的大小會(huì)影響推薦算法的精確度,并不是數(shù)據(jù)越多評(píng)分準(zhǔn)確率就會(huì)高,而是數(shù)據(jù)量少一點(diǎn),推薦就會(huì)越準(zhǔn)確因此在實(shí)際過(guò)程中可以適當(dāng)減少數(shù)據(jù)量,這也會(huì)相應(yīng)減少建立模型所用的時(shí)間;其次就是對(duì)訓(xùn)練集數(shù)據(jù)矩陣行和列進(jìn)行中心化后,能夠明顯提高推薦算法的準(zhǔn)確性,隨著秩r的增加,中心化前后的數(shù)據(jù)矩陣推薦精度相差不大。由以上可知此算法的推薦效果較為有效。

第三步是利用R包softImpute對(duì)訓(xùn)練集和測(cè)試集進(jìn)行矩陣填充時(shí)得到的RMSE如表3所示:

從這種數(shù)據(jù)填充方法的結(jié)果來(lái)看,RMSE的值要比傳統(tǒng)推薦方法的小一點(diǎn),但是和第二步得到的結(jié)果相比大得多,所以使用R語(yǔ)言自帶的包對(duì)矩陣進(jìn)行填充能夠解決矩陣稀疏性的問(wèn)題,提高推薦的準(zhǔn)確性,但是相比之下還是本文提出的迭代SVD算法優(yōu)化效果更加顯著。

4論文總結(jié)

本文介紹了幾個(gè)不同的電影推薦算法,主要是基于矩陣填充的迭代SVD協(xié)同過(guò)濾算法,通過(guò)對(duì)數(shù)據(jù)矩陣采用不同的填充方式,解決了數(shù)據(jù)的稀疏性問(wèn)題,然后比較均方根誤差(RMSE)的結(jié)果。實(shí)驗(yàn)結(jié)果表明,對(duì)數(shù)據(jù)矩陣進(jìn)行矩陣填充之后能夠提高評(píng)分的準(zhǔn)確度,其中對(duì)信息矩陣的行和列進(jìn)行中心化最為準(zhǔn)確。然而,我們判斷的方法也有一定的局限性,首先評(píng)判標(biāo)準(zhǔn)過(guò)于單一,數(shù)據(jù)的可信度可能不夠,此外影響推薦算法準(zhǔn)確度的因素還有很多,比如虛假評(píng)分和用戶興趣隨時(shí)間改變的影響,會(huì)對(duì)我們的實(shí)驗(yàn)結(jié)果有不利的影響。

在實(shí)驗(yàn)過(guò)程中也遇到了一些問(wèn)題,由于填充的數(shù)據(jù)量有些大,給內(nèi)存和運(yùn)算帶來(lái)了一定的挑戰(zhàn),在進(jìn)行迭代循環(huán)所耗費(fèi)的時(shí)間也是比較長(zhǎng)的,這也是下一步需要解決的問(wèn)題。

參考文獻(xiàn):

[1] 徐吉.基于協(xié)同過(guò)濾和矩陣分解的推薦系統(tǒng)研究與應(yīng)用[D].寧波:寧波大學(xué),2019.

[2] 吳濤.推薦系統(tǒng)中推薦算法研究及其應(yīng)用[D].北京:北京交通大學(xué),2019.

[3] Mazumder R,Hastie T,Tibshirani R.Spectral regularization algorithms for learning large incomplete matrices[J].Journal of Machine Learning Research,2010,11:2287-2322.

[4] Sarwar B,Karypis G,Konstan J,et al.Application of dimensionality reduction in recommender system - A case study[R].Defense Technical Information Center,2000.

[5] 袁泉,成振華,江洋.基于知識(shí)圖譜和協(xié)同過(guò)濾的電影推薦算法研究[J].計(jì)算機(jī)工程與科學(xué),2020,42(4):714-721.

[6] 王祥德,雷玉霞,閆昱姝.基于矩陣填充的SVD協(xié)同過(guò)濾算法研究[J].微型機(jī)與應(yīng)用,2017,36(19):55-57,61.

[7] 吳志鵬.基于矩陣分解的推薦算法研究[D].北京:北京郵電大學(xué),2019.

[8] 彭石,周志彬,王國(guó)軍.基于評(píng)分矩陣預(yù)填充的協(xié)同過(guò)濾算法[J].計(jì)算機(jī)工程,2013,39(1):175-178,182.

[9] 馬宏偉,張光衛(wèi),李鵬.協(xié)同過(guò)濾推薦算法綜述[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(7):1282-1288.

[10] 韓亞楠,曹菡,劉亮亮.基于評(píng)分矩陣填充與用戶興趣的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)工程,2016,42(1):36-40.

[11] 聶常超.一種基于矩陣分解的電影推薦算法[J].電子設(shè)計(jì)工程,2016,24(19):73-75.

[12] 郭珈辰.電影推薦算法的研究與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2015.

[13] 陳?ài)蠓?基于矩陣填充與圖嵌入表示的個(gè)性化推薦算法研究[D].南昌:江西師范大學(xué),2019.

[14] 趙軍,王紅,殷方勇.一種面向稀疏和虛假評(píng)分的協(xié)同推薦方法[J].小型微型計(jì)算機(jī)系統(tǒng),2017,38(3):472-477.

[15] 陳塏冰,黃榮,吳明芬,等.一種基于電影評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2018,34(6):1-5,11.

[16] 黃麗.基于SVD的協(xié)同過(guò)濾推薦算法研究[J].電腦知識(shí)與技術(shù),2019,15(21):9-10.

[17] 張玉葉.基于協(xié)同過(guò)濾的電影推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2019,15(6):70-73.

【通聯(lián)編輯:王力】

猜你喜歡
協(xié)同過(guò)濾
改進(jìn)的協(xié)同過(guò)濾推薦算法