彭余輝,張小雷,孫 剛
(阜陽(yáng)師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,安徽阜陽(yáng) 236037)
近年來(lái),互聯(lián)網(wǎng)信息和電子音樂(lè)網(wǎng)站爆炸式增長(zhǎng),音樂(lè)資源異常非富,但各種音樂(lè)無(wú)法有效地整合,造成信息過(guò)載,使人們無(wú)法快速找到他們所喜歡的音樂(lè)。一個(gè)好的音樂(lè)推薦算法對(duì)于音樂(lè)網(wǎng)站尤為重要,它既給用戶帶來(lái)方便,也給音樂(lè)網(wǎng)站帶來(lái)了更多的利潤(rùn)和流量。
傳統(tǒng)的音樂(lè)推薦算法是單一的基于內(nèi)容的推薦或者是使用協(xié)同過(guò)濾推薦。根據(jù)文獻(xiàn)[1],基于內(nèi)容的推薦本質(zhì)是對(duì)于信息的檢索和過(guò)濾。協(xié)同過(guò)濾推薦算法分為基于用戶(User-CF-Based)和基于物品(Item-CF-Based)的協(xié)同過(guò)濾算法。User-CF-based 算法按照用戶之前對(duì)物品所作的行為來(lái)分析用戶的偏好并進(jìn)行衡量和評(píng)分,計(jì)算用戶之間的相似度,并根據(jù)相似度將物品推薦給有相似偏好的用戶。Item-CF-Based算法根據(jù)用戶喜歡的物品,將與該物品相似的物品推薦給用戶。
為了改進(jìn)傳統(tǒng)的推薦算法,提高協(xié)同過(guò)濾推薦算法的準(zhǔn)確率和效率,文獻(xiàn)[2]提出了RC-DFM模型,經(jīng)過(guò)評(píng)論和內(nèi)容的加權(quán)融合,緩解了數(shù)據(jù)的稀疏性,增加了推薦的準(zhǔn)確率,但是對(duì)于大型數(shù)據(jù)集來(lái)說(shuō),這種模型的效率會(huì)隨所需時(shí)間的增加而變低。文獻(xiàn)[3]針對(duì)冷啟動(dòng)問(wèn)題進(jìn)行研究,根據(jù)用戶評(píng)分和項(xiàng)目屬性進(jìn)行評(píng)分預(yù)測(cè),并將推薦結(jié)果推薦給用戶,但未考慮新用戶因素。文獻(xiàn)[4]通過(guò)提取特征詞,使用特征標(biāo)簽來(lái)代替物品本身,將多種標(biāo)簽結(jié)合進(jìn)行分析與融合以提高精確率。以上推薦算法遠(yuǎn)遠(yuǎn)無(wú)法滿足需求寬泛的用戶,在“長(zhǎng)尾理論”的支持下,很多不受歡迎商品的銷售規(guī)模足以比擬受大眾歡迎的商品。文獻(xiàn)[5]在長(zhǎng)尾理論的基礎(chǔ)上提出了item-CF-IIF算法,通過(guò)對(duì)熱門商品的懲罰以及對(duì)推薦物品排序優(yōu)化來(lái)增加推薦質(zhì)量、準(zhǔn)確率以及用戶的體驗(yàn)程度。文獻(xiàn)[6]通過(guò)探索情緒標(biāo)簽來(lái)構(gòu)建情緒模型,并結(jié)合協(xié)同過(guò)濾產(chǎn)生推薦列表。文獻(xiàn)[7]利用分類和情境感知融合的方法對(duì)音樂(lè)偏好進(jìn)行特權(quán)融合,降低推薦復(fù)雜度,提高了推薦的效率和質(zhì)量。在文獻(xiàn)[8]中,將用戶-項(xiàng)目類別評(píng)分相似度和用戶-項(xiàng)目類別興趣相似度加權(quán)融合,有效地緩解了數(shù)據(jù)的稀疏性。文獻(xiàn)[9]根據(jù)用戶的滿意度改進(jìn)余弦相似度計(jì)算方法,進(jìn)行協(xié)同過(guò)濾推薦以得到滿意的推薦列表。文獻(xiàn)[10]將基于內(nèi)容的推薦算法與基于用戶的協(xié)同過(guò)濾推薦算法進(jìn)行混合,形成一種新的推薦算法,處理了物品在沒(méi)有評(píng)價(jià)的情況下同樣能被推薦給用戶,并且很明顯地增加了推薦結(jié)果的準(zhǔn)確率,但缺少了一定的平衡。
基于傳統(tǒng)推薦算法的閃光點(diǎn)和不足,本文提出基于內(nèi)容和協(xié)同過(guò)濾加權(quán)融合(MR_CCFI)的推薦算法,來(lái)分別得到基于用戶-內(nèi)容和基于物品-內(nèi)容融合的推薦算法,以提高推薦準(zhǔn)確率。
MR_CCFI推薦算法的基本框架如圖1所示。通過(guò)基于內(nèi)容和協(xié)同過(guò)濾加權(quán)融合的算法來(lái)進(jìn)行內(nèi)容-用戶、內(nèi)容-物品加權(quán)融合的推薦,在數(shù)據(jù)集的影響下,不同推薦算法給用戶帶來(lái)的推薦效果是不同的。

圖1 MR_CCFI推薦算法流程
根據(jù)音樂(lè)內(nèi)容的文本信息,這里使用詞頻-反文檔頻率(TF-IDF)的方式得到用戶偏好矩陣[11],設(shè)給定音樂(lè)的集合為L(zhǎng)={L1,L2,L3,…,Ln},特征(關(guān)鍵)詞組為I={i1,i2,i3,…,im},Lj表示第j首音樂(lè),詞頻公式為:

其中,f(i,j)是詞i在音樂(lè)j中所出現(xiàn)的次數(shù),∑k∈j fk,j是音樂(lè)j中所有詞出現(xiàn)次數(shù)的總和,k∈j表示詞在音樂(lè)j中。反文檔頻率公式為:

其中,N指所有音樂(lè)的數(shù)量,n(i)指N中特征詞i出現(xiàn)過(guò)的音樂(lè)數(shù)量。
音樂(lè)j中特征詞i的組合TF-IDF權(quán)值計(jì)算為:

其中,PTF-IDF(i,j)表示第j首音樂(lè)中與特征詞i對(duì)應(yīng)的詞。歸一化處理:

其中,Wji指第j首音樂(lè)第i個(gè)詞的歸一化處理,于是可得到用戶音樂(lè)偏好矩陣

1.2.1 基于User-CF的推薦算法
User-CF算法必須要先找到“相似的用戶”,再尋找“相似用戶所喜歡的物品”。這里首先使用余弦相似度:

第一步,構(gòu)造一個(gè)歌曲到User的倒排表D,記錄用戶對(duì)哪些歌曲發(fā)生過(guò)動(dòng)作。
第二步,依據(jù)倒排表D,構(gòu)造一個(gè)用戶相似矩陣M,M指式(4)中的分子部分,在倒排表D中,對(duì)于每首歌曲i,設(shè)其相應(yīng)的用戶為a、b。
第三步,在M中,更新對(duì)應(yīng)位置的元素值,。依次掃描便能夠得到一切用戶之間不為0的M[a][b]值。
根據(jù)文獻(xiàn)[13],對(duì)式(4)改進(jìn),有

式(5)中分子的倒數(shù)部分用來(lái)懲罰用戶u和v的共同偏好列表中的受歡迎的音樂(lè),減少熱門歌曲對(duì)用戶相似度的影響。用戶對(duì)歌曲的偏好公式為:

其中,P(u,j)指用戶u對(duì)歌曲j的喜歡程度,S(u,K)指與用戶u興趣最相近的前K個(gè)用戶,N(j)指用戶對(duì)歌曲j產(chǎn)生過(guò)行為歷史的集合,Wuv指用戶u、v之間的偏好相似度,Rvj指用戶對(duì)歌曲j的偏好評(píng)分矩陣(如果數(shù)據(jù)集為隱反饋數(shù)據(jù)集,那么當(dāng)用戶對(duì)歌曲產(chǎn)生了行為,可使Rvj=E,E為單位矩陣)。
Item-CF推薦算法是通過(guò)興趣物品來(lái)尋找相似物品,將相似物品推薦給用戶。歌曲之間的相似度為:

其中,|N(h)|表示多個(gè)用戶都喜歡歌曲h的數(shù)目,分子則表示多個(gè)用戶都喜歡歌曲h、j的數(shù)目。懲罰熱門音樂(lè)后,相似度計(jì)算為:

式(8)降低了歌曲j的權(quán)重,減小了任何歌曲和熱門歌曲很相似的可能。
Item-CF推薦算法首先建立一個(gè)用戶到歌曲的倒排表E,得到用戶與歌曲之間的對(duì)應(yīng)關(guān)系;其次通過(guò)倒排表E來(lái)構(gòu)建同現(xiàn)矩陣,根據(jù)式(8)計(jì)算兩音樂(lè)之間的相似度,得到各音樂(lè)之間的相似度矩陣;最后計(jì)算用戶對(duì)于歌曲偏好程度。計(jì)算用戶對(duì)于歌曲的偏好程度的公式為:

其中,N(u)表示歌曲被用戶u喜歡的集合,S(h,K)指和歌曲h最相似的前K首歌曲的集合,Whj表示音樂(lè)h和音樂(lè)j的相似度,Ruj指用戶u對(duì)音樂(lè)j的偏好評(píng)分(如果數(shù)據(jù)集為隱反饋數(shù)據(jù)集,那么當(dāng)用戶對(duì)歌曲產(chǎn)生了行為,可使Ruj=E,E為單位矩陣)。
MR_CCFI推薦算法偏好公式為

其中,β指用戶偏好矩陣的權(quán)重,(1-β)指協(xié)同過(guò)濾算法中用戶對(duì)歌曲的偏好權(quán)重。β值越小,說(shuō)明用戶或物品之間偏好的相似對(duì)推薦的影響程度越大,隨著β值的增加,音樂(lè)內(nèi)容對(duì)推薦的影響程度也在增加。取前K個(gè)值,得到Top-K列表,將其推薦給相應(yīng)的用戶u。在用戶量不變的情況下:
(1)當(dāng)音樂(lè)數(shù)據(jù)集較小時(shí),使用Content-User的推薦算法更容易,且更加準(zhǔn)確地使目標(biāo)用戶獲得相應(yīng)的Top-K推薦列表。
(2)當(dāng)音樂(lè)數(shù)據(jù)集較大時(shí),使用Content-Item 的推薦算法可以更精確地將Top-K推薦列表推薦給目標(biāo)用戶。
通過(guò)設(shè)置數(shù)據(jù)集的大小來(lái)測(cè)試不同算法在給用戶進(jìn)行推薦時(shí)的準(zhǔn)確率。實(shí)驗(yàn)數(shù)據(jù)所采用的數(shù)據(jù)源是網(wǎng)易云音樂(lè)網(wǎng)站2020年上半年的部分?jǐn)?shù)據(jù),選擇了一千多個(gè)歌單進(jìn)行相應(yīng)的數(shù)據(jù)獲取,包含用戶、音樂(lè)、歌單等信息,使用用戶的已聽歌曲記錄和評(píng)分記錄等進(jìn)行實(shí)驗(yàn)。為了提高數(shù)據(jù)挖掘的質(zhì)量,需要對(duì)信息文本進(jìn)行預(yù)處理,再以其中的80%作為訓(xùn)練集(取其中的40%作為小數(shù)據(jù)集),另外20%作為最后的測(cè)試集。
(1)進(jìn)行分類標(biāo)注,即將爬取到的文本打標(biāo)簽,生成標(biāo)簽列表。
(2)分詞,去停用詞。通過(guò)jieba分詞庫(kù)將音樂(lè)內(nèi)容文本進(jìn)行分詞,并對(duì)其去停用詞,使用詞頻-逆文檔頻率(TF-IDF)的方式提取關(guān)鍵詞,進(jìn)而得到用戶偏好矩陣Pu。
(3)實(shí)驗(yàn)中主要選取數(shù)據(jù)維度信息為:音樂(lè)編號(hào)、音樂(lè)名、音樂(lè)發(fā)表時(shí)間、音樂(lè)類型等。
將MR_CCFI 算法與文獻(xiàn)[2]中用戶評(píng)分和物品屬性相融合的推薦算法(RC-DFM)、文獻(xiàn)[5]中item-CF-IIF 算法以及Content-Based算法進(jìn)行對(duì)比實(shí)驗(yàn),觀察幾種算法在不同數(shù)據(jù)集上的推薦效果。
參數(shù)設(shè)置。在MR_CCFI 推薦算法中參數(shù)β的設(shè)置會(huì)影響到推薦結(jié)果的準(zhǔn)確性,本次實(shí)驗(yàn)中,設(shè)置K為10、15、20、25來(lái)分別檢測(cè)不同β值對(duì)應(yīng)的平均絕對(duì)誤差(MAE),參數(shù)β∈(0,1),如圖2 所示。實(shí)驗(yàn)結(jié)果表明,在數(shù)據(jù)集相同的情況下,MR_CCFI 算法中的權(quán)重因子β更偏重于協(xié)同過(guò)濾算法。由圖2可知,K固定時(shí),當(dāng)β=0.7 時(shí),MAE 最小,故以下實(shí)驗(yàn)參數(shù)β的值均設(shè)置為0.7。

圖2 相同K值下,不同β取值對(duì)應(yīng)的MAE值
相似度計(jì)算。不一樣的相似度計(jì)算方法會(huì)對(duì)推薦結(jié)果產(chǎn)生影響,設(shè)置K為5、10、15、…、35,比較Cosine、User-content-Cosine和Item-content-Cosine計(jì)算方法的MAE,當(dāng)數(shù)據(jù)集較大時(shí),如圖3所示。由圖3可知,K不變時(shí),Item-content算法中余弦計(jì)算方法得到的MAE值是最小的,即該算法的推薦效果最好。數(shù)據(jù)集相對(duì)較小時(shí),User-Content算法的結(jié)果誤差較小,如圖4所示。本文使用的余弦相似度計(jì)算方法為當(dāng)前主流計(jì)算方法,通過(guò)實(shí)驗(yàn)表明,該相似度計(jì)算方法能夠很好地滿足用戶對(duì)推薦結(jié)果的需求。

圖3 大數(shù)據(jù)集下,相同K,不同算法的MAE值

圖4 小數(shù)據(jù)集下,相同K,不同算法的MAE值
MAE。在評(píng)分預(yù)測(cè)中,預(yù)測(cè)準(zhǔn)確率大多使用MAE和均方根誤差(RMSE)計(jì)算結(jié)果,這里運(yùn)用MAE,將本文算法與文獻(xiàn)[2]、[5]進(jìn)行實(shí)驗(yàn)對(duì)比,分析本文加權(quán)融合算法的有效性。MAE值越小,最終所得到的推薦準(zhǔn)確率就越高。當(dāng)數(shù)據(jù)集較大時(shí),對(duì)比幾種推薦算法的MAE值,如圖5所示。由圖5可知,當(dāng)K值相同時(shí),基于User-Content的推薦算法和基于Item-Content的推薦算法這兩種推薦算法MAE值都最小,且當(dāng)K為20時(shí),Item-Content算法的MAE是最小的。當(dāng)數(shù)據(jù)集較小時(shí),User-Content算法更適合對(duì)用戶進(jìn)行推薦,而RC-DFM算法在數(shù)據(jù)集較小的時(shí)候推薦效果會(huì)比較差,如圖6所示。

圖5 大數(shù)據(jù)集下不同算法的MAE值

圖6 小數(shù)據(jù)集下不同算法的MAE值
通過(guò)對(duì)音樂(lè)各方面內(nèi)容和所用主流推薦算法進(jìn)行分析,提出MR_CCFI推薦算法緩解數(shù)據(jù)的稀疏性并提高用戶對(duì)于其偏好音樂(lè)獲取的效率,經(jīng)過(guò)對(duì)數(shù)據(jù)集的劃分來(lái)測(cè)試相同用戶在不同大小數(shù)據(jù)集下更適合于用戶的推薦算法。實(shí)驗(yàn)結(jié)果表明,數(shù)據(jù)集較小的情況下,User-Content算法更適合對(duì)用戶進(jìn)行推薦;數(shù)據(jù)集較大的情況下,Item-Content算法更適合對(duì)用戶進(jìn)行推薦。在實(shí)際應(yīng)用中,隨著大量音樂(lè)數(shù)據(jù)的上傳,這種MR_CCFI算法同樣適用。