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

    一種改進(jìn)的協(xié)同過(guò)濾推薦算法

    2020-01-15 01:16:36李昆侖戎靜月蘇華仃
    關(guān)鍵詞:皮爾森冷啟動(dòng)聚類

    李昆侖,戎靜月,蘇華仃

    (河北大學(xué) 電子信息工程學(xué)院,河北 保定 071000)

    近年來(lái)隨著云計(jì)算、大數(shù)據(jù)、互聯(lián)網(wǎng)的快速發(fā)展,電商也隨之發(fā)展起來(lái)并得到了用戶的認(rèn)可和應(yīng)用.隨著電商用戶及商品數(shù)目的增多,為了使用戶在大量的商品中快速、方便地找到符合自己需求的項(xiàng)目,同時(shí)電商將用戶需要的項(xiàng)目推薦給用戶,許多學(xué)者進(jìn)行了相關(guān)的研究,個(gè)性化推薦系統(tǒng)[1]應(yīng)運(yùn)而生.推薦算法是推薦系統(tǒng)中最重要的部分,算法的優(yōu)劣直接影響推薦效果的好壞.傳統(tǒng)的推薦算法已經(jīng)很難滿足用戶的個(gè)性化需求,目前主要的推薦算法有協(xié)同過(guò)濾推薦算法[2]、基于內(nèi)容的推薦算法[3]、基于關(guān)聯(lián)規(guī)則的推薦算法[4-5]、混合推薦算法[6]等.其中協(xié)同過(guò)濾推薦算法不需要考慮具體推薦內(nèi)容,技術(shù)上易于實(shí)現(xiàn),所以應(yīng)用最為廣泛.但是也面臨著一些難以解決的問(wèn)題,比如數(shù)據(jù)缺失引起的數(shù)據(jù)稀疏性問(wèn)題[7]、新用戶加入引起的冷啟動(dòng)問(wèn)題[8-9]、用戶興趣變化引起的用戶興趣漂移[10]等問(wèn)題.

    基于用戶的協(xié)同過(guò)濾推薦算法主要是根據(jù)用戶的歷史評(píng)分?jǐn)?shù)據(jù),用已評(píng)分的數(shù)據(jù)計(jì)算用戶相似度產(chǎn)生近鄰集,從而產(chǎn)生推薦.隨著電商項(xiàng)目的迅速增加,推薦系統(tǒng)中用戶和產(chǎn)品的數(shù)量持續(xù)增加,用戶購(gòu)買(mǎi)量及評(píng)分?jǐn)?shù)的增長(zhǎng)遠(yuǎn)遠(yuǎn)比不上電商項(xiàng)目的增長(zhǎng)速度,當(dāng)用戶和產(chǎn)品數(shù)量達(dá)到千萬(wàn)或更多時(shí),U-I(用戶對(duì)產(chǎn)品的評(píng)分) 矩陣將變得十分龐大.然而,推薦系統(tǒng)中每個(gè)用戶對(duì)產(chǎn)品的評(píng)價(jià)是有限的,因此U-I 矩陣十分稀疏,從而產(chǎn)生數(shù)據(jù)稀疏性問(wèn)題[11].在個(gè)性化推薦系統(tǒng)中,用戶對(duì)產(chǎn)品的喜好程度通??梢杂善鋵?duì)歷史產(chǎn)品的評(píng)價(jià)信息來(lái)反映.面對(duì)稀疏的評(píng)估數(shù)據(jù),推薦系統(tǒng)難以準(zhǔn)確地判斷用戶偏好.

    針對(duì)數(shù)據(jù)稀疏性問(wèn)題,傳統(tǒng)的解決方案是用現(xiàn)有數(shù)據(jù)的均值填充缺失的數(shù)據(jù)[12],但是這會(huì)給預(yù)測(cè)結(jié)果帶來(lái)很大誤差,進(jìn)而影響推薦系統(tǒng)的推薦精度.對(duì)此文獻(xiàn)[13]提出的改進(jìn)的算法中加入了用戶興趣相似性和評(píng)分相似性;文獻(xiàn)[14]給用戶的屬性分配權(quán)重加入到相似度的計(jì)算當(dāng)中,提出了一種基于用戶多屬性的協(xié)同過(guò)濾算法;文獻(xiàn)[15]將用戶屬性、用戶興趣與傳統(tǒng)的相似度相結(jié)合,調(diào)整不同的權(quán)重,通過(guò)動(dòng)態(tài)選擇近鄰集的方法來(lái)降低數(shù)據(jù)稀疏性.上述方法都是通過(guò)加入一些新的因素,調(diào)整不同因素所占的比例,與傳統(tǒng)相似度相結(jié)合來(lái)提高推薦精度,雖然數(shù)據(jù)稀疏性在一定程度上得到了緩解,但是計(jì)算量卻明顯增大.

    另一方面,冷啟動(dòng)問(wèn)題也會(huì)引起推薦系統(tǒng)推薦精度差的問(wèn)題.冷啟動(dòng)問(wèn)題包括用戶冷啟動(dòng)問(wèn)題和項(xiàng)目冷啟動(dòng)問(wèn)題[16].用戶的冷啟動(dòng)是針對(duì)推薦系統(tǒng)的新用戶,他們對(duì)有些產(chǎn)品的評(píng)價(jià)記錄很少甚至沒(méi)有,該推薦系統(tǒng)無(wú)法從少量的評(píng)價(jià)數(shù)據(jù)中獲得新用戶的興趣愛(ài)好,因此無(wú)法準(zhǔn)確推薦.項(xiàng)目冷啟動(dòng)意味著當(dāng)新項(xiàng)目添加到系統(tǒng)時(shí),很少被用戶選中甚至沒(méi)有.針對(duì)這些新項(xiàng)目,系統(tǒng)很難找到合適的辦法來(lái)準(zhǔn)確向用戶推薦.由于本文主要針對(duì)基于用戶的協(xié)同過(guò)濾推薦算法,主要研究用戶冷啟動(dòng).針對(duì)冷啟動(dòng)問(wèn)題,目前解決冷啟動(dòng)問(wèn)題的方法很多,常用的方法主要包括以下3個(gè)方面:1)向新用戶隨機(jī)推薦或推薦熱門(mén)產(chǎn)品[17].隨機(jī)推薦之后,根據(jù)用戶的反饋不斷改進(jìn)用戶的偏好模型,與此同時(shí)可能給用戶推薦的產(chǎn)品用戶都不喜歡,這樣會(huì)降低用戶對(duì)系統(tǒng)的信任度.隨機(jī)推薦的改進(jìn)是向用戶推薦熱門(mén)產(chǎn)品,但仍然無(wú)法做到個(gè)性化推薦;2)傳統(tǒng)協(xié)同過(guò)濾的改進(jìn)方法[18],對(duì)用戶或產(chǎn)品間相似性度量方法的改進(jìn);3)結(jié)合機(jī)器學(xué)習(xí)的方法[19].對(duì)此文獻(xiàn)[20]提出加入用戶的注冊(cè)信息,利用用戶的注冊(cè)信息進(jìn)行推薦.文獻(xiàn)[21]提出利用用戶的社交網(wǎng)絡(luò)賬號(hào),對(duì)新用戶推薦其好友喜歡的物品.由于涉及用戶隱私,數(shù)據(jù)獲取并不容易實(shí)現(xiàn).

    針對(duì)數(shù)據(jù)稀疏性和用戶冷啟動(dòng)問(wèn)題,本文首先通過(guò)改進(jìn)的填充方式填充原有的稀疏數(shù)據(jù),充分利用有評(píng)分的數(shù)據(jù),避免了一個(gè)或幾個(gè)用戶對(duì)數(shù)據(jù)填充的不準(zhǔn)確,提高了填充精度.然后在相似度的計(jì)算中加入用戶的屬性,如年齡、性別、職業(yè)、郵編,這樣可以避免新用戶的加入造成的冷啟動(dòng)問(wèn)題.實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)方法相比,該方法具有更高的推薦精度.

    1 推薦系統(tǒng)中常用的相似性計(jì)算方法及評(píng)分預(yù)測(cè)方法

    傳統(tǒng)的基于用戶的推薦算法中最重要的工作是尋找到目標(biāo)用戶的近鄰集[22],通過(guò)近鄰用戶向目標(biāo)用戶進(jìn)行商品推薦,因此近鄰用戶的尋找精度將直接影響推薦效果.近鄰用戶是通過(guò)相似度的計(jì)算來(lái)確定的,將相似度按照由大到小的順序排列,取前N個(gè)用戶得到目標(biāo)用戶的近鄰集.推薦算法大致可分為3步:1)獲取用戶-項(xiàng)目評(píng)分矩陣,對(duì)其數(shù)據(jù)進(jìn)行預(yù)處理;2)通過(guò)用戶/項(xiàng)目之間的相似度獲得目標(biāo)用戶的最相似近鄰用戶集;3)根據(jù)所有近鄰用戶對(duì)目標(biāo)項(xiàng)目的評(píng)分,來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)目標(biāo)項(xiàng)目的評(píng)分從而進(jìn)行推薦.

    1.1 常用相似度計(jì)算方法

    相似度計(jì)算是尋找近鄰用戶的關(guān)鍵,相似度計(jì)算主要包括余弦相似度、修正的余弦相似度、皮爾森相關(guān)系數(shù)、各種距離相似度等.

    1.1.1 余弦相似度

    余弦相似度主要是通過(guò)計(jì)算2個(gè)向量的夾角來(lái)判斷其相似性,又稱為夾角余弦[23],取值在-1~1,夾角余弦越大,表示2個(gè)向量的夾角越小,則其相似程度越高.具體的計(jì)算公式如下:

    (1)

    1.1.2 修正余弦相似度

    余弦相似度沒(méi)有考慮用戶的評(píng)分尺度的影響,即有些用戶對(duì)所有項(xiàng)目的評(píng)分相對(duì)較高,而有些用戶要求嚴(yán)格對(duì)所有項(xiàng)目的評(píng)分相對(duì)較低,例如(5,5,5)和(1,1,1)的余弦相似度值為1,2個(gè)向量將會(huì)非常相似,但實(shí)際情況恰好相反.因此提出修正的余弦相似度,將用戶的平均評(píng)分引入計(jì)算公式,減少評(píng)分尺度的影響,具體計(jì)算公式如下[24]:

    (2)

    1.1.3 皮爾森相關(guān)系數(shù)

    皮爾森相關(guān)系數(shù),又稱為相關(guān)相似性,需要找到2個(gè)用戶共同評(píng)過(guò)分的項(xiàng)目,然后計(jì)算其相關(guān)性[25],計(jì)算公式如下:

    (3)

    1.1.4 距離相似度

    前面介紹的余弦相似度主要關(guān)注向量方向的差異度,而距離相似度關(guān)注2個(gè)點(diǎn)的距離,距離越近相似度越大.距離包括歐式距離、曼哈頓距離、切比雪夫距離、閔可夫斯基距離、馬氏距離等,因?yàn)榫嚯x和相似度大致成反比.距離相似度公式如下:

    (4)

    1.2 常用評(píng)分預(yù)測(cè)方法

    根據(jù)相似度確定目標(biāo)的近鄰用戶之后,需要通過(guò)近鄰用戶對(duì)目標(biāo)項(xiàng)目的評(píng)分進(jìn)行評(píng)分預(yù)測(cè),評(píng)分預(yù)測(cè)方法有平均評(píng)分法、加權(quán)平均評(píng)分法、偏移的加權(quán)平均評(píng)分法.

    1.2.1 平均評(píng)分法

    平均評(píng)分法是根據(jù)近鄰用戶對(duì)目標(biāo)項(xiàng)目所有評(píng)分的均值直接作為目標(biāo)用戶對(duì)目標(biāo)項(xiàng)目的評(píng)分[26].設(shè)近鄰用戶為U=(u1,u2,…,um),項(xiàng)目為I=(i1,i2,…,in),具體公式如下:

    (5)

    1.2.2 加權(quán)平均評(píng)分法

    平均評(píng)分法將所有近鄰集中的用戶評(píng)分?jǐn)?shù)據(jù)取均值作為目標(biāo)評(píng)分,但是忽略了相似度權(quán)重的影響,與目標(biāo)用戶相似度越高,評(píng)分預(yù)測(cè)的結(jié)果越準(zhǔn)確,所以加權(quán)的平均評(píng)分法引入相似度的權(quán)重,s(u,k)為目標(biāo)用戶u與近鄰用戶k的相似度[27],具體公式如下:

    (6)

    1.2.3 偏移的加權(quán)平均評(píng)分法

    (7)

    2 傳統(tǒng)推薦算法中幾個(gè)關(guān)鍵部分的改進(jìn)

    針對(duì)傳統(tǒng)的協(xié)同過(guò)濾推薦算法進(jìn)行優(yōu)化,對(duì)原始數(shù)據(jù)集進(jìn)行預(yù)處理,將評(píng)分?jǐn)?shù)目遠(yuǎn)小于項(xiàng)目數(shù)目的數(shù)據(jù)過(guò)濾掉,進(jìn)行初步降維.由于數(shù)據(jù)的稀疏性問(wèn)題,需對(duì)數(shù)據(jù)集中缺失的數(shù)據(jù)部分進(jìn)行填充,根據(jù)用戶評(píng)分習(xí)慣進(jìn)行層次聚類,并將用戶基本信息和共同評(píng)分項(xiàng)所占的比值作為計(jì)算相似度的權(quán)重.通過(guò) Slope-one[29]算法計(jì)算前k個(gè)最相似用戶對(duì)缺失數(shù)據(jù)的填充值,同時(shí)加入相似度權(quán)重得到最終填充值.針對(duì)填充后的數(shù)據(jù),首先在傳統(tǒng)相似度的基礎(chǔ)上,加入用戶基本信息作為相似度的權(quán)重,其次通過(guò)Sigmoid函數(shù)引入用戶項(xiàng)目評(píng)分的時(shí)間戳對(duì)相似度的影響,獲得目標(biāo)用戶的最近鄰集,最后利用改進(jìn)后的相似度對(duì)目標(biāo)用戶進(jìn)行推薦.

    2.1 相似度計(jì)算

    用戶相似度是尋找近鄰用戶集的依據(jù),傳統(tǒng)的相似度計(jì)算方式是以用戶具有相同的興趣為前提,僅通過(guò)用戶對(duì)項(xiàng)目的評(píng)分來(lái)計(jì)算相似度,不考慮不同用戶的屬性,如性別、年齡、職業(yè)等對(duì)用戶相似度造成的影響,由此得到的用戶相似度準(zhǔn)確度不高.本文基于傳統(tǒng)的相似度計(jì)算方式,首先加入編碼后的用戶信息求得歐氏距離,其次引入指數(shù)函數(shù)作為相似度的用戶信息權(quán)重,針對(duì)時(shí)間改變?cè)斐捎脩襞d趣漂移的問(wèn)題,加入評(píng)分時(shí)間戳的影響,最后引入 Sigmoid 函數(shù)作為時(shí)間戳的函數(shù),表明評(píng)分時(shí)間越相近,用戶的相似度越高,權(quán)重越大.

    函數(shù)表達(dá)式為

    (8)

    傳統(tǒng)的相似性用皮爾森相關(guān)系數(shù)

    (9)

    改進(jìn)后的相似度計(jì)算公式

    (10)

    β=e-Db(u,v),

    (11)

    (12)

    其中Db(u,v)是對(duì)用戶性別、年齡、職業(yè)編碼后計(jì)算的歐式距離,ru,b為對(duì)用戶u的信息進(jìn)行編碼后的向量,β表示用戶信息所占的權(quán)重,s(u,i)為用戶u對(duì)項(xiàng)目i的評(píng)分時(shí)間戳所占的權(quán)重大小,評(píng)分時(shí)間越相近評(píng)分權(quán)重越大,則相似度越高,sim(u,k)為最終相似度的計(jì)算公式,ru,i為用戶u對(duì)項(xiàng)目i的評(píng)分.

    加入用戶屬性和時(shí)間戳的相似度,可以在一定程度上減少新用戶加入造成的冷啟動(dòng)問(wèn)題,使得推薦效果更佳準(zhǔn)確.

    2.2 數(shù)據(jù)填充

    由于用戶-項(xiàng)目評(píng)分?jǐn)?shù)據(jù)稀疏性問(wèn)題,在計(jì)算相似度尋找近鄰用戶會(huì)產(chǎn)生很大誤差,造成推薦效果不佳,因此將評(píng)分?jǐn)?shù)目遠(yuǎn)小于項(xiàng)目數(shù)目的數(shù)據(jù)進(jìn)行過(guò)濾、刪除,然后對(duì)缺失的數(shù)據(jù)進(jìn)行填充,傳統(tǒng)填充方式雖然完成了對(duì)缺失數(shù)據(jù)的填充,但推薦效果并沒(méi)有明顯改善,對(duì)此本文在傳統(tǒng)填充方式上,引入用戶屬性和相似度權(quán)重,利用 Slope-one 算法對(duì)填充算法進(jìn)行改進(jìn).

    根據(jù)用戶對(duì)項(xiàng)目的評(píng)分信息,利用層次聚類,對(duì)用戶數(shù)據(jù)進(jìn)行聚類.根據(jù)用戶對(duì)項(xiàng)目評(píng)分均值分成3類,即評(píng)分均值大于4的用戶,均值小于2的用戶,均值在2~4的用戶,分別用Uo、Up、Un表示3個(gè)類別,分別代表積極、消極、中立態(tài)度的用戶群體.

    聚類過(guò)程如下:

    分別對(duì)聚類后的每個(gè)簇進(jìn)行缺失值的填充,對(duì)數(shù)據(jù)進(jìn)行降維、減少計(jì)算量的效果.填充之前首先計(jì)算需要填充的用戶和在同一個(gè)簇中其他用戶的相似度,然而傳統(tǒng)的相似度計(jì)算方式是利用評(píng)分?jǐn)?shù)據(jù)計(jì)算歐氏距離,當(dāng)新加入的用戶沒(méi)有評(píng)分信息時(shí),無(wú)法計(jì)算距離,對(duì)此本文引入用戶的基本信息來(lái)計(jì)算相似度.

    對(duì)用戶信息進(jìn)行 One-hot編碼和LabelEncoder編碼,利用編碼后的用戶信息,基于歐氏距離計(jì)算相似度,同時(shí)加入共同評(píng)分項(xiàng)作為權(quán)重,獲得相似度值.利用Slope-one算法計(jì)算前m個(gè)用戶對(duì)缺失值的填充數(shù)據(jù),并加入相似度的權(quán)重獲得最終填充數(shù)值.通過(guò)設(shè)定相似度閾值,來(lái)篩選出相似度高的用戶,過(guò)濾掉相似度低的用戶.如果閾值過(guò)小,會(huì)降低填充精度,如果閾值過(guò)大,會(huì)導(dǎo)致計(jì)算量增大,因此,需要多次反復(fù)實(shí)驗(yàn),在保證合理的計(jì)算量的前提下,盡可能提高填充精度,確定最終的閾值m.

    Slope-one算法原本是計(jì)算不同項(xiàng)目之間的評(píng)分差的一種線性算法,根據(jù)用戶對(duì)某個(gè)項(xiàng)目的評(píng)分預(yù)測(cè)另一個(gè)項(xiàng)目的評(píng)分.本文利用Slope-one算法的思想,通過(guò)用戶a、b的平均評(píng)分差,及用戶a對(duì)項(xiàng)目I的評(píng)分,計(jì)算對(duì)項(xiàng)目I無(wú)評(píng)分的用戶b的填充數(shù)據(jù).具體計(jì)算公式如下:

    (13)

    Pbi=rai-R(a,b),

    (14)

    其中,R(a,b)為用戶a、b對(duì)所有共同評(píng)分項(xiàng)目的平均評(píng)分差;N(a)為a用戶評(píng)過(guò)分的項(xiàng)目;N(b)為b用戶評(píng)過(guò)分的項(xiàng)目;N(a)∩N(b)是a、b均評(píng)過(guò)分的項(xiàng)目集合;rai為用戶a對(duì)項(xiàng)目i的評(píng)分,rbi為用戶b對(duì)項(xiàng)目i的評(píng)分;|N(a)∩N(b)|是a、b均評(píng)過(guò)分的項(xiàng)目數(shù).Pbi是用戶b對(duì)項(xiàng)目i評(píng)分的填充數(shù)據(jù),rai為用戶a對(duì)項(xiàng)目i的評(píng)分.

    各缺失值的填充計(jì)算公式如下:

    (15)

    (16)

    simab=Db(u,v)×αu,v,

    (17)

    (18)

    (19)

    其中Db(u,v)為編碼后的歐式距離,rb,u,i為用戶u的信息編碼與對(duì)項(xiàng)目i的評(píng)分組成的向量,αu,v為共同評(píng)分項(xiàng)所占的權(quán)重,simab為用戶a與用戶b加入用戶信息和共同評(píng)分項(xiàng)后的相似度,Pbj為用戶b對(duì)項(xiàng)目j的缺失值的填充值,Poj為最終的填充值.

    由以上分析可知,根據(jù)用戶評(píng)分習(xí)慣對(duì)用戶進(jìn)行層次聚類,達(dá)到了初步降維的效果,并且聚類后求相似度的準(zhǔn)確度有所提高.在計(jì)算相似度時(shí)加入用戶的基本信息,改善了冷啟動(dòng)的影響.加入共同評(píng)分項(xiàng)的權(quán)重,進(jìn)一步提高了相似度的準(zhǔn)確度.通過(guò)均值填充,減少評(píng)分尺度的影響,并且加入相似度權(quán)重,提高了填充值的精度,從而能更準(zhǔn)確地推薦.

    算法如下.

    Step1:引入用戶性別、年齡、職業(yè)這些基本信息.對(duì)用戶進(jìn)行層次聚類,最后得到3種不同的用戶群體;

    Step2:對(duì)不同的用戶群體運(yùn)用公式(17)計(jì)算要填充的用戶與其他用戶的相似度,按從大到小取前m個(gè)值,組成一個(gè)近鄰用戶集;

    Step3:通過(guò)公式(18),利用上述集合中的向量對(duì)目標(biāo)向量進(jìn)行缺失值的初步填充;

    Step4:引入相似度權(quán)重,對(duì)目標(biāo)向量進(jìn)行最終的缺失值填充;

    Step5: 重復(fù)步驟1、2、3、4,直到數(shù)據(jù)集填充完畢.

    2.3 評(píng)分預(yù)測(cè)

    通過(guò)相似度的計(jì)算得到了目標(biāo)用戶的近鄰用戶集U=(u1,u2,…,um),根據(jù)每個(gè)近鄰用戶對(duì)目標(biāo)項(xiàng)目的評(píng)分利用填充公式 (18)和(19)對(duì)目標(biāo)項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè),第k個(gè)近鄰用戶對(duì)第i個(gè)目標(biāo)用戶的預(yù)測(cè)結(jié)果為rk,i,然后利用預(yù)測(cè)公式(20)對(duì)最終的目標(biāo)項(xiàng)目進(jìn)行預(yù)測(cè)評(píng)分,然后循環(huán)此步驟,直到對(duì)所有的目標(biāo)項(xiàng)目評(píng)分完成預(yù)測(cè),最終形成推薦.

    最后根據(jù)改進(jìn)的相似度的計(jì)算方法,用TopN取前N個(gè)最相似的用戶進(jìn)行推薦.

    (20)

    3 實(shí)驗(yàn)結(jié)果與分析

    首先簡(jiǎn)單介紹本文涉及到的實(shí)驗(yàn)環(huán)境和選取的數(shù)據(jù)集以及實(shí)驗(yàn)的評(píng)價(jià)指標(biāo),然后根據(jù)該數(shù)據(jù)集將本文所提出的方法和改進(jìn)前的方法進(jìn)行對(duì)比分析.原始數(shù)據(jù)的稀疏度是0.891 6,經(jīng)過(guò)2次實(shí)驗(yàn),其中第1次實(shí)驗(yàn)的數(shù)據(jù)稀疏度是0.888 2,第2次是0.892 5.

    3.1 實(shí)驗(yàn)環(huán)境和數(shù)據(jù)集介紹

    實(shí)驗(yàn)使用的計(jì)算機(jī)的配置是Intel Core i5-7200的CUP,8GB運(yùn)行內(nèi)存,Windows 10家庭中文版64位操作系統(tǒng),編程語(yǔ)言使用Python語(yǔ)言,版本為Python3.6,編輯器用的是Jupyter Notebook.

    本實(shí)驗(yàn)采用的是由Minnesota大學(xué)GroupLens研究小組提供的100 K的MovieLens數(shù)據(jù)集,它還有1 m、20 m等幾個(gè)版本.數(shù)據(jù)集主要包含2部分?jǐn)?shù)據(jù):1)用戶對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù),該數(shù)據(jù)集包含943個(gè)用戶,1 682部項(xiàng)目,100 000條評(píng)分?jǐn)?shù)據(jù),評(píng)分為1~5分,且每個(gè)用戶項(xiàng)目評(píng)分次數(shù)不少于20次.2)用戶基本屬性數(shù)據(jù),該數(shù)據(jù)集包含用戶的性別、年齡、職業(yè)、郵編的基本信息.本次實(shí)驗(yàn)采用2次5折交叉驗(yàn)證,分別計(jì)算系統(tǒng)的MAE值,得到最終的實(shí)驗(yàn)結(jié)果.

    3.2 實(shí)驗(yàn)評(píng)價(jià)指標(biāo)

    目前推薦算法性能的評(píng)價(jià)指標(biāo)主要有平均絕對(duì)誤差(MAE)、均方誤差(MSE)、查全率、查準(zhǔn)率、F1-score等.此系統(tǒng)采用平均絕對(duì)誤差MAE作為評(píng)價(jià)指標(biāo),MAE為預(yù)測(cè)值和真實(shí)值之差,表明其值越小,則預(yù)測(cè)的結(jié)果越準(zhǔn)確.假設(shè)推薦系統(tǒng)對(duì)項(xiàng)目的預(yù)測(cè)評(píng)分集合為{r1,r2,r3,…,rn},項(xiàng)目的實(shí)際評(píng)分為{p1,p2,p3,…,pn},則用戶MAE值可以用式(21)表示

    (21)

    系統(tǒng)的MAE可以用式(22)表示

    (22)

    3.3 實(shí)驗(yàn)結(jié)果與分析

    3.3.1 第1輪實(shí)驗(yàn)結(jié)果

    圖1描述的是聚類前后,均采用改進(jìn)的填充方式進(jìn)行填充,用皮爾森系數(shù)計(jì)算相似性時(shí)系統(tǒng)的MAE值隨近鄰用戶取值的變化曲線.其中NCUFP曲線為聚類前系統(tǒng)的MAE曲線,CUFP曲線為聚類后系統(tǒng)的MAE曲線,從圖1中可以看到,訓(xùn)練集經(jīng)過(guò)聚類后系統(tǒng)的MAE值隨近鄰用戶的變化趨勢(shì)比較平緩,并且整體比聚類前的MAE值低,這樣可以選擇少量的近鄰用戶,降低系統(tǒng)的成本,并且通過(guò)聚類,降低了數(shù)據(jù)的維度,大大減少了計(jì)算量.當(dāng)近鄰用戶數(shù)在200~400時(shí),在計(jì)算量少和系統(tǒng)成本低的前提下,系統(tǒng)的MAE值趨于最低,當(dāng)相似用戶大于400時(shí),聚類效果不太明顯,但系統(tǒng)的成本和計(jì)算量會(huì)增加,所以選擇近鄰用戶數(shù)為350,通過(guò)聚類得到的模型最佳.

    圖2描述的是不對(duì)用戶進(jìn)行聚類,分別用均值填充和改進(jìn)填充進(jìn)行填充,并且用皮爾森系數(shù)和改進(jìn)的皮爾森系數(shù)求相似度得到的系統(tǒng)的MAE隨近鄰用戶的變化曲線的對(duì)比圖.NC-MFPS曲線代表用均值填充,皮爾森計(jì)算相似性得到的系統(tǒng)MAE曲線,NC-UFPS曲線代用改進(jìn)填充方式填充,用皮爾森計(jì)算相似性得到的系統(tǒng)MAE曲線;NC-FUPS曲線代表用改進(jìn)填充方式填充,改進(jìn)的皮爾森相似度計(jì)算相似性,得到的系統(tǒng)MAE曲線.

    圖1 聚類前后的MAE值對(duì)比

    圖2 不聚類改進(jìn)填充相似度MAE值對(duì)比

    針對(duì)圖2中的NC-MFPS和NC-UFPS曲線的對(duì)比,可以得出通過(guò)改進(jìn)后的填充方式比均值填充方式,在相同的相似度計(jì)算條件下,系統(tǒng)的MAE值明顯降低了;針對(duì)NC-UFPS和NC-FUPS的曲線對(duì)比,可以得到通過(guò)改進(jìn)后的方式計(jì)算相似度尋找近鄰用戶,系統(tǒng)的MAE值到在近鄰用戶取150~750時(shí)低于改進(jìn)前的MAE.由于改進(jìn)相似度的計(jì)算方式后得到的近鄰用戶更精確了,從而降低了系統(tǒng)的誤差.由NC-FUPS曲線,可以看出當(dāng)近鄰用戶在300~400的時(shí)候系統(tǒng)的MAE值最低.所以在選擇合適的近鄰用戶的數(shù)量下,改進(jìn)后的方式的推薦性能更優(yōu).同時(shí),改進(jìn)后的方式加入了用戶的基本信息,更利于改善冷啟動(dòng)問(wèn)題.

    圖3描述的是對(duì)用戶進(jìn)行聚類,分別用均值填充、改進(jìn)填充進(jìn)行填充,并且用皮爾森系數(shù)和改進(jìn)的皮爾森系數(shù)求相似度得到的系統(tǒng)的MAE隨近鄰用戶的變化曲線的對(duì)比圖.MFPS曲線代表用均值填充,皮爾森計(jì)算相似性得到的系統(tǒng)MAE曲線,用MFPS表示;UFPS曲線代表用用改進(jìn)填充方式填充,用皮爾森計(jì)算相似性得到的系統(tǒng)MAE曲線,用UFPS表示;FUPS曲線代表用改進(jìn)填充方式填充,改進(jìn)的皮爾森相似度計(jì)算相似性,得到的系統(tǒng)MAE曲線,用FUPS表示.

    圖3整體可以看出聚類后的系統(tǒng)MAE隨近鄰用戶的增加變化不大,改進(jìn)填充方式和相似度計(jì)算后明顯降低了系統(tǒng)的MAE. 從圖3中的MFPS和UFPS曲線的對(duì)比圖,可以得到,通過(guò)改進(jìn)填充之后系統(tǒng)的MAE值比改進(jìn)前明顯降低了,通過(guò)UFPS和FUPS的曲線對(duì)比,可以得到通過(guò)改進(jìn)后的方式計(jì)算相似度尋找近鄰用戶,系統(tǒng)的MAE值低于改進(jìn)前的MAE,由于改進(jìn)相似度的計(jì)算方式后得到的近鄰用戶更精確了,從而降低了系統(tǒng)的誤差.由FUPS曲線,可以看出當(dāng)近鄰用戶在350~450的時(shí)候系統(tǒng)的MAE值最低.

    圖4描述的是對(duì)數(shù)據(jù)進(jìn)行填充時(shí),聚類前后系統(tǒng)的MAE值隨填充選取的近鄰用戶的變化曲線.

    圖3 聚類后改進(jìn)填充相似度MAE值對(duì)比

    圖4 聚類前后填充選取不同近鄰用戶MAE值對(duì)比

    由圖4可以看出通過(guò)聚類,系統(tǒng)的MAE值隨近鄰用戶的波動(dòng)比較平緩.并且通過(guò)2條曲線的對(duì)比,在近鄰用戶小于80時(shí),通過(guò)聚類系統(tǒng)的MAE值要小于改進(jìn)之前系統(tǒng)的MAE值.由此得到根據(jù)用戶屬性聚類降低了系統(tǒng)的MAE,提升了系統(tǒng)精度.實(shí)驗(yàn)過(guò)程中聚類最小的用戶數(shù)是80,當(dāng)近鄰用戶大于80之后聚類前后效果相差不大.

    3.3.2 第2輪預(yù)測(cè)結(jié)果

    經(jīng)過(guò)第2次交叉驗(yàn)證實(shí)驗(yàn),同樣得到4個(gè)圖,分別是圖5、圖6、圖7、圖8.同樣得到用改進(jìn)聚類、改進(jìn)填充、改進(jìn)相似度計(jì)算方式的方法得到不同系統(tǒng)的MAE值隨近鄰用戶的變化曲線.

    圖5 聚類前后的MAE值對(duì)比

    圖6 不聚類改進(jìn)填充相似度MAE值對(duì)比

    通過(guò)對(duì)比實(shí)驗(yàn)1與實(shí)驗(yàn)2的結(jié)果,發(fā)現(xiàn)在選取相同近鄰用戶時(shí)實(shí)驗(yàn)2系統(tǒng)的MAE值要高于實(shí)驗(yàn)1系統(tǒng)的MAE值.由于對(duì)數(shù)據(jù)進(jìn)行預(yù)處理后,第1次實(shí)驗(yàn)的數(shù)據(jù)稀疏度是0.888 2,第2次是0.892 5,第2次實(shí)驗(yàn)的稀疏度要高于第1次實(shí)驗(yàn),可以得到,數(shù)據(jù)越稀疏,系統(tǒng)的MAE值越大,因此通過(guò)改進(jìn)填充方式,降低數(shù)據(jù)的稀疏度尤為重要.

    圖7 聚類后改進(jìn)填充相似度MAE值對(duì)比

    圖8 聚類前后填充選取不同近鄰用戶MAE值對(duì)比

    4 結(jié)論

    針對(duì)傳統(tǒng)推薦算法在數(shù)據(jù)稀疏情況下存在的問(wèn)題提出了一種改進(jìn)的協(xié)同過(guò)濾推薦算法,首先針對(duì)數(shù)據(jù)缺失引起的數(shù)據(jù)稀疏性問(wèn)題,該算法通過(guò)加入用戶屬性的影響,對(duì)填充方式進(jìn)行了相應(yīng)的改進(jìn)并對(duì)數(shù)據(jù)進(jìn)行填充,在一定程度上緩解了數(shù)據(jù)稀疏性帶來(lái)的影響;其次針對(duì)相似度計(jì)算不準(zhǔn)確導(dǎo)致推薦精度降低的問(wèn)題,在傳統(tǒng)相似度計(jì)算的基礎(chǔ)上,加入用戶基本屬性和時(shí)間戳的影響,對(duì)相似度進(jìn)行了相應(yīng)的改進(jìn).經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,本算法提高了推薦的準(zhǔn)確性,并且減少了冷啟動(dòng)給系統(tǒng)帶來(lái)的影響,提高了系統(tǒng)的可擴(kuò)展性.

    猜你喜歡
    皮爾森冷啟動(dòng)聚類
    輕型汽油車(chē)實(shí)際行駛排放試驗(yàn)中冷啟動(dòng)排放的評(píng)估
    基于學(xué)習(xí)興趣的冷啟動(dòng)推薦模型
    客聯(lián)(2021年2期)2021-09-10 07:22:44
    基于DBSACN聚類算法的XML文檔聚類
    基于改進(jìn)的遺傳算法的模糊聚類算法
    一種層次初始的聚類個(gè)數(shù)自適應(yīng)的聚類方法研究
    數(shù)字翹楚皮爾森:忍過(guò)100多次整形的女軍人
    有夢(mèng)的青春不易“殘”
    軍事技能“冷啟動(dòng)”式訓(xùn)練理念初探
    自適應(yīng)確定K-means算法的聚類數(shù):以遙感圖像聚類為例
    使用冷啟動(dòng)液須知
    甘孜县| 高要市| 汤阴县| 武清区| 武穴市| 新乡县| 吉林省| 页游| 许昌市| 五家渠市| 疏勒县| 怀远县| 城步| 廊坊市| 泰来县| 漳平市| 成都市| 高邮市| 云霄县| 永和县| 吉木萨尔县| 武功县| 洱源县| 汨罗市| 龙川县| 新巴尔虎左旗| 辰溪县| 新郑市| 镇安县| 无为县| 蓝田县| 浦江县| 保康县| 聂拉木县| 平遥县| 当涂县| 平果县| 富宁县| 连山| 新乡市| 滦南县|