張利
(安徽工業(yè)大學(xué)管理科學(xué)與工程學(xué)院,馬鞍山243032)
互聯(lián)網(wǎng)的普及和快速發(fā)展,使其已經(jīng)成為用戶獲取、處理、傳播、開發(fā)以及利用信息的一體化平臺(tái),改變了人們傳統(tǒng)的生活方式。例如,現(xiàn)在用戶不僅足不出戶就可以通過(guò)淘寶網(wǎng)和京東商城等電商平臺(tái)購(gòu)買生活所需要的產(chǎn)品,而且還可以通過(guò)Last.fm 和網(wǎng)易云音樂等音樂平臺(tái)收聽歌曲,以及通過(guò)Netflix 和YouTube 等網(wǎng)站觀看電影和視頻。然而,隨著網(wǎng)絡(luò)信息量的快速增長(zhǎng),用戶很難從網(wǎng)站和平臺(tái)發(fā)布的海量信息中搜索到自己感興趣的產(chǎn)品,運(yùn)用傳統(tǒng)的搜索方法也只能得到與所有用戶一樣的搜索結(jié)果,無(wú)法根據(jù)每個(gè)用戶不同的興趣來(lái)推薦不同的搜索結(jié)果。因此,用戶在搜索符合自己產(chǎn)品需求的過(guò)程中就會(huì)消耗更多的時(shí)間和精力,而且很難能達(dá)到滿意的效果。而作為平臺(tái)和網(wǎng)站的信息發(fā)布者,也很難從眾多用戶中挖掘出滿足產(chǎn)品定位的更多潛在用戶,從而調(diào)整自身的服務(wù)來(lái)滿足更多不同的用戶?;ヂ?lián)網(wǎng)信息量的大幅度增長(zhǎng)使得在面對(duì)大量信息時(shí),用戶不能及時(shí)有效的獲取想要的那部分信息,這就出現(xiàn)了“信息過(guò)載”(Information Overlord)[1-3]問題。針對(duì)這種信息過(guò)載問題,通過(guò)幫助用戶過(guò)濾不相關(guān)信息并將相關(guān)信息傳遞給需要它的用戶的信息過(guò)濾技術(shù)應(yīng)運(yùn)而生。以個(gè)性化推薦系統(tǒng)(Recommender System,RS)[4-5]為代表的信息過(guò)濾技術(shù),將用戶在系統(tǒng)中產(chǎn)生的歷史行為活動(dòng)建立模型并分析用戶的真實(shí)需求,進(jìn)而使用戶之前在系統(tǒng)中以搜索關(guān)鍵詞的方式變?yōu)橄到y(tǒng)主動(dòng)通過(guò)學(xué)習(xí)用戶的興趣偏好來(lái)給用戶推薦相關(guān)的信息。因此,推薦系統(tǒng)在互聯(lián)網(wǎng)領(lǐng)域,特別是在電子商務(wù)網(wǎng)站和一些其他網(wǎng)絡(luò)平臺(tái),如淘寶網(wǎng)、亞馬遜、蘇寧易購(gòu)、豆瓣電影、YouTube[6]等得到了成功的應(yīng)用;有效幫助緩解了“信息過(guò)載”問題,大大提高了用戶瀏覽網(wǎng)站的效率,使用戶能夠更快更準(zhǔn)確地獲得自己想要的信息;同時(shí),也為使用推薦系統(tǒng)的網(wǎng)站和平臺(tái)帶來(lái)了巨大的商業(yè)利潤(rùn)。
基于用戶的協(xié)同過(guò)濾推薦算法[7]的基本原理是:通過(guò)對(duì)目標(biāo)用戶的興趣偏好分析,搜索與其擁有一樣(或者類似)喜好程度的相關(guān)用戶,并向其計(jì)算未看過(guò)項(xiàng)目的評(píng)分值以及產(chǎn)生推薦;也就是說(shuō),若目標(biāo)用戶與其他用戶都對(duì)一些項(xiàng)目評(píng)過(guò)分,就說(shuō)明他們之間存在共同的相似行為,那么目標(biāo)用戶也就可能喜歡其他用戶看過(guò)的項(xiàng)目,因此就可以在其他用戶看過(guò)的所有項(xiàng)目中,從中計(jì)算其未看過(guò)但可能感興趣項(xiàng)目的評(píng)分值以及產(chǎn)生推薦。基于用戶的協(xié)同過(guò)濾算法流程圖主要是由以下3 個(gè)步驟組成。
步驟1:建立用戶關(guān)系數(shù)據(jù)模型
將獲取的評(píng)分?jǐn)?shù)據(jù)集處理為可以表示為如表1 所示的評(píng)分矩陣的形式,其中User 表示用戶,Item 為項(xiàng)目,n 表示為系統(tǒng)中用戶的數(shù)量,m 為系統(tǒng)中項(xiàng)目的數(shù)量,√為用戶對(duì)項(xiàng)目的評(píng)分值。
表1 用戶-項(xiàng)目評(píng)分矩陣表
步驟2:計(jì)算相似度值以及尋找最近鄰
在基于用戶的協(xié)同過(guò)濾算法中,最重要的部分便是為用戶尋找近鄰集合,即為其尋找興趣偏好最為相似的鄰居集合。首先運(yùn)用上一步處理后的數(shù)據(jù)矩陣來(lái)得到用戶間的相似度值;之后根據(jù)值的大小選取前k個(gè)鄰居,記為N(k)。獲取用戶間相似度的方式很多,其中基本的方法有皮爾遜相似度、Jaccard 相似度、余弦相似度等;也有其他研究者在相似度方面的改進(jìn),例如NHSM、JMSD 等相似度方法。
步驟3:為用戶推薦項(xiàng)目
通過(guò)步驟二,得到目標(biāo)用戶的近鄰集合N(k),首先依據(jù)N(k)中的其他用戶看過(guò)的所有項(xiàng)目以及評(píng)分值,使用公式來(lái)計(jì)算其未看過(guò)的所有的項(xiàng)目預(yù)測(cè)值,生成項(xiàng)目集合,預(yù)測(cè)值公式如公式(1)和(2)所示。然后根據(jù)生成的項(xiàng)目集合為目標(biāo)用戶推薦預(yù)測(cè)值最高的Top-N 項(xiàng)。
公式(1)是通過(guò)將近鄰用戶與目標(biāo)用戶的相似度值作為權(quán)值,然后將鄰居對(duì)項(xiàng)目i 的評(píng)分值與該鄰居用戶所有評(píng)分的平均值的差值進(jìn)行加權(quán)取平均。公式(2)是將目標(biāo)用戶的近鄰用戶的所有評(píng)分取平均值。通常在學(xué)術(shù)研究中使用公式(1),而在本文中同樣使用了該公式。
在獲得用戶相似度值的過(guò)程中需要用到相似度公式。重要的是,在基于用戶協(xié)同過(guò)濾推薦算法中最為關(guān)鍵的部分是相似度值的獲得。相似度值代表了用戶與用戶之間的相似度的大小,即兩者之間興趣偏好的相似,相似度方法的選擇往往對(duì)下一步進(jìn)行預(yù)測(cè)值計(jì)算以及推薦系統(tǒng)的推薦質(zhì)量有著重要的影響作用。因此,在這部分中,主要介紹本文中用到的兩種相似度計(jì)算方法。
(1)余弦相似度(Cosine Similarity,COS)
余弦相似度是將向量空間中的兩個(gè)向量之間夾角的余弦值作為度量?jī)烧唛g的差異[8-9];將得到的兩者之間的夾角來(lái)度量?jī)蓚€(gè)向量間的相似度,角度越小說(shuō)明相似度越高。例如在推薦系統(tǒng)中,將用戶的標(biāo)簽看作是一個(gè)1×n 的n 維向量,如果有一標(biāo)簽未被用戶使用過(guò),那么值應(yīng)為0;然后使用余弦相似度對(duì)每個(gè)用戶的向量進(jìn)行計(jì)算,若計(jì)算出的值越大,這說(shuō)明這兩個(gè)用戶之間的相似性就越高。其計(jì)算公式如(3)所示。
(2)皮爾遜相關(guān)系數(shù)(Pearson Correlation Coefficient,PCC)
皮爾森相關(guān)系數(shù)是用來(lái)度量?jī)蓚€(gè)變量之間相似程度的統(tǒng)計(jì)量[7,10]。PCC 相似度的公式如(4)所示,可知PCC 相似度的取值范圍為[-1,1],當(dāng)值為負(fù)時(shí),用戶u和用戶v 之間的興趣偏好為負(fù)相關(guān);當(dāng)值為正時(shí),為正相關(guān);絕對(duì)值越大,則正/負(fù)相關(guān)的程度越大。
式中,Iuv表示用戶u 和用戶v 之間的共同評(píng)分項(xiàng)目集合。
在數(shù)據(jù)稀疏性情況下,為了提高給目標(biāo)用戶推薦項(xiàng)目的精確度以及推薦質(zhì)量,本文通過(guò)同時(shí)考慮不同用戶對(duì)于標(biāo)簽信息以及項(xiàng)目評(píng)分偏好差異提出一種改進(jìn)的相似度度量方法。該方法首先通過(guò)數(shù)據(jù)評(píng)分矩陣計(jì)算不同用戶間的評(píng)分差異相似度;然后通過(guò)利用標(biāo)簽信息計(jì)算用戶間的標(biāo)簽信息偏好相似度;最后通過(guò)加權(quán)獲得綜合考慮兩者的用戶相似度值。改進(jìn)的新相似度計(jì)算公式如公式(5)所示。
其中,sim(u,v)I為利用標(biāo)簽數(shù)據(jù)根據(jù)公式(3)計(jì)算得出的用戶間相似度值;sim(u,v)T為利用評(píng)分?jǐn)?shù)據(jù)根據(jù)公式(4)計(jì)算得出的用戶間相似度值;式中,參數(shù)α表示權(quán)重,且α∈[0,1],步長(zhǎng)為0.1。其中,當(dāng)取α=0 時(shí),用戶相似度sim(u,v)為sim(u,v)T,當(dāng)取α=1 時(shí),用戶相似度sim(u,v)為sim(u,v)I。
實(shí)驗(yàn)所使用的數(shù)據(jù)集是MovieLens-latest-small,是由1996 年3 月29 日至2018 年9 月24 日期間的用戶組成的,且生成于2018 年9 月26 日,包括610 名用戶對(duì)9742 部電影的100836 條評(píng)分?jǐn)?shù)據(jù),以及3683 個(gè)標(biāo)簽。在本實(shí)驗(yàn)中,采用五折交叉實(shí)驗(yàn)進(jìn)行驗(yàn)證。首先將MovieLens-latest-small 數(shù)據(jù)集分別隨機(jī)分成五份,每一份都是不相交的數(shù)據(jù)集;其次分別選取數(shù)據(jù)集中的一份數(shù)據(jù)集作為測(cè)試集,剩余的四份作為訓(xùn)練集,對(duì)不同相似度方法的評(píng)價(jià)指標(biāo)進(jìn)行計(jì)算;最后將五次實(shí)驗(yàn)的結(jié)果求取平均值進(jìn)行對(duì)比。
(1)精確度(Precision)
精確度是指在給用戶推薦的項(xiàng)目中,用戶所感興趣的項(xiàng)目數(shù)與推薦項(xiàng)目數(shù)的比例值[11-12]。因此,精確度值越大,說(shuō)明系統(tǒng)推薦的項(xiàng)目中用戶感興趣的項(xiàng)目越多,推薦性能越好;反之則表示推薦效果不好。精確度計(jì)算公式如下:
式中,ls表示推薦系統(tǒng)中的用戶感興趣且出現(xiàn)在系統(tǒng)推薦項(xiàng)目列表N 中的項(xiàng)目數(shù)目。
(2)召回率(Recall)
召回率是指在給用戶推薦的項(xiàng)目中,用戶所感興趣的項(xiàng)目數(shù)目與系統(tǒng)中用戶所有感興趣的項(xiàng)目數(shù)目的比例值[11-12]。因此,召回率值越大,推薦性能越好;反之則不好。召回率計(jì)算公式如下:
式中,NT表示在推薦系統(tǒng)中,用戶感興趣的項(xiàng)目總數(shù)。
(3)F-Measure
F-Measure 表示精確度和召回率兩個(gè)指標(biāo)的加權(quán)調(diào)和平均值,當(dāng)使用精確度和召回率產(chǎn)生相互矛盾的結(jié)果時(shí)通常會(huì)繪制F-Measure 曲線來(lái)綜合考慮它們之間的關(guān)系[12-13]。當(dāng)F-Measure 值越高時(shí),則說(shuō)明系統(tǒng)的推薦性能越好。F-Measure 的計(jì)算公式如下:
當(dāng)參數(shù)a=1 時(shí),就是通常使用的F1-Measure,其公式如下:
(1)參數(shù)α的確定
通過(guò)將公式(9)作為評(píng)價(jià)指標(biāo),測(cè)試參數(shù)α對(duì)公式(5)產(chǎn)生的影響。在本實(shí)驗(yàn)中設(shè)置參Top-N 取[1,2,3,4,5,10,15,20,25,30]。那么綜合評(píng)價(jià)指標(biāo)F1-Measure 的在參數(shù)α的變化下的計(jì)算結(jié)果如表2 所示,變化曲線如圖1 所示。
表2 取不同參數(shù)α下的F1-Measure 值
圖1 F1-Measure的變化曲線圖
從表2 中可以看出,隨著參數(shù)α值的變化,F(xiàn)1-Measure 值也在不斷的變化,其中在α=0.7 時(shí),F(xiàn)1-Measure取的最大值,值為0.05802。從圖1 能直觀地可以看出隨著參數(shù)α值的變化,評(píng)價(jià)指標(biāo)F1-Measure 的變化趨勢(shì)。隨著參數(shù)α從0 到1 變化,F(xiàn)1-Measure 是先是曲線上升后到達(dá)最高值,然后曲線下降。當(dāng)值F1-Measure越大表示推薦質(zhì)量越好,因此,在本實(shí)驗(yàn)中最優(yōu)參數(shù)α的值取為0.7 時(shí),改進(jìn)的推薦算法的F1-Measure 取得最大值。此時(shí)也說(shuō)明sim(u,v)I計(jì)算的相似度值占用戶相似度的70%,而sim(u,v)T計(jì)算的相似度值占用戶相似度的30%。在此后的實(shí)驗(yàn)中,改進(jìn)推薦算法與傳統(tǒng)協(xié)同過(guò)濾算法做對(duì)比時(shí),參數(shù)α的取值均為0.7。
(2)結(jié)果及分析
推薦項(xiàng)目個(gè)數(shù)Top-N 是影響精確度以及召回率最重要的因素,因此在本小節(jié)中,通過(guò)對(duì)比并分析三種不同的推薦算法分別在Top-N 值變化情況下的準(zhǔn)確率和召回率均值的值的變化曲線如圖2 所示。
從圖2 中可以看出,隨著Top-N 個(gè)數(shù)的增加,三種算法的精確度和召回值的均值都呈現(xiàn)下降的趨勢(shì);這是因?yàn)殡S著推薦項(xiàng)目的增加,有些可能用戶不喜歡的項(xiàng)目就會(huì)被推薦給目標(biāo)用戶,因而造成精確度的降低。另外,改進(jìn)的算法一直位于另外兩者曲線的上方,則說(shuō)明通過(guò)添加標(biāo)簽信息來(lái)計(jì)算用戶相似度能夠幫助目標(biāo)用戶找到感興趣的項(xiàng)目,有助于提高推薦準(zhǔn)確性。
圖2 準(zhǔn)確率和召回率的均值的變化曲線圖
本文通過(guò)將標(biāo)簽與用戶評(píng)分信息聯(lián)系起來(lái),提出一種新改進(jìn)的相似度度量方法。通過(guò)實(shí)驗(yàn)在評(píng)價(jià)指標(biāo)精確度和召回率的均值對(duì)比結(jié)果可知,新的相似度方法均在一定程度上優(yōu)于其他兩種相似度方法。另外,相比于其他兩種算法,改進(jìn)的相似度方法算法更能區(qū)分用戶與用戶間的相似度,從而提高推薦系統(tǒng)的推薦質(zhì)量。