林振榮,黃虹霞,舒?zhèn)ゼt,劉承啟
(南昌大學信息工程學院,江西 南昌 330031)
在一些協(xié)同過濾算法中,物品或其他用戶之間的相似度系數計算常是影響推薦效果的重要因素。通常在數學研究中,余弦相似度和皮爾森系數是較為常用到的計算公式。但是由于用戶-物品矩陣存在數據稀疏等問題,使得上述相似度計算方法存在著相似度失真的現象,進而導致推薦結果不準確,很大程度上影響了用戶體驗。
為了提升用戶對推薦物品的體驗感,近年來,隨之提出對相似度計算改進的理論逐步增多。張俐提出的一種自適應局部和全局融合的協(xié)同過濾算法理論,通過增加自適應加權系數來提高用戶之間相似性度量的準確性??孪杳艉完惤岢鲆环N改進的基于興趣相似度的推薦算法,提出了逆流行度和共同興趣2個定義,通過對用戶興趣權重采用事物流行度進行分配,并將用戶共同偏好的事物數量運用到相似度計算中,建立一種新的推薦模型。程小林和熊焰將基于物品與基于用戶的兩種推薦方法進行融合,通過利用預測置信度進行加權得出結果,該模型的優(yōu)點是使得推薦的準確度提高了,但同時也帶了時間等資源消耗的問題,在實際生活中難以運用。
綜上可以看出,很多推薦算法的研究都試圖從各個方面對相似度計算進行改進,但是對物品特征的考慮不足,即物品具有的特征對相似的程度是有影響的,不能夠單純只考慮用戶對物品的評價信息。例如在日常生活中,人們對于同一類商品中,不同品種的商品喜歡某一類是具有一定偏好的,比如在購物時,用戶對某一色彩更加喜愛,在選擇時往往偏向于購買該色彩的商品?;谏鲜龅乃伎?,本文將充分的利用物品的特征信息,建立相關模型。
本文在先介紹熟知的基于用戶的推薦算法之后,接著介紹提出的基于TF-IDF(term frequency-inverse document frequency,Inverse Document Frequency詞頻-逆文本頻率指數)與用戶聚類的推薦算法:通過介紹TF-IDF算法,用該算法計算得到用戶-物品-特征TF值矩陣,使用該矩陣與用戶身份屬性信息合并后進行聚類,產生較小的用戶數據集,緊接著計算物品特征的TF-IDF值,利用該值通過加權的方式修改評分數據用來改進相似度計算公式;最后,為用戶生成推薦列表。然后,進行相關的實驗去驗證所提出的算法模型。最后總結了本文的工作和研究展望。
基于用戶的協(xié)同過濾算法的思路是通過收集目標用戶以往對物品進行過評價的數據,分析出目標用戶感興趣的項,并將此信息與其他用戶的此類信息進行比較,找出與目標用戶興趣相似的用戶,互相之間可以進行物品推薦。其算法步驟主要有2個:
1) 比較目標用戶與其他用戶興趣的相似程度,得到與目標用戶相似的用戶集合
2) 在相似用戶集合中,通過一定的比較方法,將相似用戶偏好的物品推薦給目標用戶。
R
*如下表所示,表中m
是用戶個數,m
={x
,x
,x
…x
},n
是物品數,n
={i
,i
,i
…i
}。用戶-物品評分矩陣的數據表示用戶對物品的打分值,取值為區(qū)間[1,5]的整數值,值越高,意味著用戶對該項更加喜愛;0值則表示該用戶未進行評分,見表1。表1 用戶-物品評分矩陣
在上文介紹到的算法中,找到興趣相似的用戶集合至關重要,普遍研究中,使用到的是余弦相似度計算。其計算公式使用下列式(1)所示。該公式需要篩選出需要進行比較的用戶x,y共同評分過的物品集合n,i表示物品集合中具體的某個物品,r,r分別表示兩者對物品i的評分值。
(1)
由于上式計算結果大小意味著兩用戶之間的相似程度高低,因此,對用戶集合通過相似度公式計算后得到的多個結果進行降序排序,并選取一定數量的用戶,便可以組成相似用戶集合m。
Δ
n為目標用戶需要預測評分的物品集合,Δ
n={i,i,i……},使用下列式(2)將Δ
n中的物品依次進行評分值預測。(2)
式(2)中sin
(x,y)為目標用戶x與用戶集m中用戶y之間的利用式(1)計算得到的值,r是相似用戶y對集合Δ
n中物品i的實際評分值,結果值G是目標用戶預測值。目標用戶利用式(2)在對集合Δ
n中所有項預測之后,預測評分值越高意味著目標更容易感興趣,將該值降序排序,其相對應的物品取排序較前的N個即TOP-N項進行推薦。上文中在利用余弦相似度計算得出了相似用戶集時,該方法只考慮用戶對同一物品進行打分,而忽略了用戶之間身份屬性信息的相似度;并且在推薦某個物品時,沒有充分考慮到該物品特征的重要性,基于上述的問題,本文將提出相應的方法予以解決。
首先為建立用戶-物品-特征數據集,需要收集物品所擁有的全部特征及某用戶所評分過的物品所具有的特征。
假設收集到的全部物品所擁有的特征個數為F,用戶評分過n個物品;當該用戶評分過的物品不具有該特征時,值為0;值為1則表示物品具有該特征。
因此,某用戶所具有的用戶-物品-特征數據集可以用一個向量表來統(tǒng)計,其值如表2所示。
表2 用戶-物品-特征數據集
TF-IDF是一種統(tǒng)計方法。TF是詞頻,表示在一份文章中統(tǒng)計某一個詞出現的頻率。求解某個關鍵詞w的TF值需要兩個重要參數:一是規(guī)定的關鍵詞w出現的次數;二是該文檔的總詞數。將這兩個參數相除便可以得到結果。其公式如下式(3)所示。
(3)
為了更好的將文檔之間類別進行區(qū)分,如果包含關鍵字w的文檔較少,則意味著關鍵字w具有良好的類別區(qū)分能力。用IDF(逆文本頻率指數)概念來解釋,該值的計算方法是假設在一個文檔庫中,統(tǒng)計包含關鍵字w的文章數目,并且也統(tǒng)計該文檔庫中文章總數,按照下列式(4)進行計算:
(4)
對于關鍵字w,如果其預測主題的能力越強,其權重也隨之增強,反之,一個較弱的關鍵詞所具有的權重就越低。由此計算一個詞的TF-IDF的式(5)如下所示
(TF
-IDF
)=TF
*IDF
(5)
根據上述TF-IDF的定義,在本文中為了充分利用用戶所評分過的物品所具有的特征,設S為某一物品所擁有的全部特征個數,對于某用戶評分過的所有物品中某一特征w的TF式(6)如下:
(6)
式中num
(w
)表示在用戶評分過的物品中,物品特征w
出現的次數,∑num
(s
)表示物品全部的S
個特征出現的次數之和。TF
為物品特征w
在所有評分過的物品中出現的次數除以用戶評分過的物品全部的S
個特征出現的總次數,該值可用來表示目標用戶對于某一特征的偏好。TF
值大小與用戶感興趣程度呈正相關。運用該式(6),結合上文所說的用戶-物品-特征數據集,由此便可以獲得用戶-物品-特征TF
值矩陣。同樣對于目標用戶所評分過的所有物品中某一特征w
的IDF
定義式(7)如下:(7)
該公式能得到物品的代表特征,更好地將物品之間做區(qū)分。計算方法是先統(tǒng)計某一用戶評分過的物品總數,在其中統(tǒng)計包含特征w
的物品數,根據上述公式計算后便可以得到該特征的IDF
的值。根據式(6)(7),對于某用戶來說,其所評分過的物品含有的特征的TF
-IDF
值式(8)如下P
=TF
*IDF
(8)
式中P
為特征w
的TF值與IDF值乘積,根據以上公式,用戶評分過的物品特征都可以計算出該特征的TF
-IDF
值P
。本文對用戶采用融合物品特征TF值的聚類方法去為目標用戶縮小需要比對用戶集合數目,做法如下:將用戶身份屬性信息及上文提到的用戶-物品-特征TF值矩陣合并,采用K-means算法進行聚類分析。
該算法的流程圖如圖1所示。
圖1 算法流程圖
(9)
其中β
*=∑∈P
*r
*在上式中,類似地,在n
′中找到共同評分過的物品集合,該集合設為n
″,n
″={i
,i
,i
…},F
則表示集合n
″中每個物品i
所含有的特征個數,F
={f
,f
,f
…},P
表示該物品每一個特征TF
-IDF
值。β
*等于該物品所具有的每一個特征的P
值求和,再乘上用戶的原始評分r
*。同理可得用戶y
的改進后β
*。最后,在計算得出相似度值后,需要修改評分預測公式,將P
值添加進上文的式(2),推出新的式(10)如下(10)
new
sin(x
,y
)為上文式(9)所求得到的相似度值。同樣,選取N
個排序較前的物品形成了TOP-N項,將TOP-N項進行推薦。本文的實驗環(huán)境如下:ASUA筆記本,8G內存,8核處理器,win10 64位系統(tǒng)旗艦版。
本文實驗采用的是Grouplens網站上發(fā)布的MovieLens-1M數據集,該數據集包括了users,movies,ratings.dat三個數據文件。在文件movie.dat文件中對電影的類型已經做好了類別區(qū)分,該分類有效的區(qū)分了各種電影,所以,可以將所有特征的IDF值都設為固定值。
1) 精確度(Precision)
精確度是指在TOP-N項中,將用戶所感興趣的物品個數與推薦物品個數N的相除計算得到。精確度值可以用來衡量推薦性能的高低,并且二者呈正相關。
精確度計算式(11)如下
(11)
式中,l
由用戶感興趣的物品與TOP-N中取交集后產生的個數。2) 召回率(Recall)
召回率是指在TOP-N項中,將用戶感興趣的物品數量與TOP-N項中用戶感興趣物品數量相除計算得到。并且召回率與推薦性能呈正相關。召回率計算式(12)如下:
(12)
式中,N
表示在TOP-N項中,用戶感興趣的物品數。3) F-Measure
在使用評價指標精確度和召回率時往往會出現相矛盾的情況,通常會分析F-Measure曲線來綜合考慮它們之間的關系??捎肍-Measure來衡量推薦的性能高低,并且該值越大,說明推薦的性能越優(yōu)。F-Measure的計算式(13)如下
(13)
通常使用的F1就是當參數a取值為1時,其式(14)如下
(14)
本文中實驗采用TOP-N方法進行推薦。實驗分為訓練集的60%和測試集的40%。
實驗過程主要分為二大類:
1) 參數對推薦模型的影響
利用K-means算法得到不同簇的情況下,相鄰用戶一定時K=35(這里K指與目標用戶相鄰的用戶個數),推薦列表的長度變化的影響。
圖2 簇為5的TOP-N折線圖
圖3 簇為15的TOP-N折線圖
圖4 簇為45的TOP-N折線圖
由圖2,圖3,圖4可知,在聚類所分簇數一定的情況下,隨著TOP-N的數目增加,精確度在不斷的下降,之所以產生這種現象,是因為隨著推薦數目的增多,系統(tǒng)將會把排序越后的物品也進行推薦,但該物品極有可能是目標用戶不喜歡的物品。但是,召回率在不斷上升。因此,采用觀察在所分簇數不同的情況下各圖F1值,由圖2,圖3,圖4可知均呈上升趨勢。由此可以推出,各簇的推薦準確度不斷上升。
如圖圖5是簇為5、簇為15和簇為45的情況下,各F1值比較圖線。由圖5可以推出,隨著聚類所分的簇數越多,所產生的F1值在推薦數目大于15個之后,逐漸上升,推薦效果越好。因此,可以得出通過用戶身份屬性及用戶-物品-特征的TF值矩陣所產生的聚類生成簇數越多的情況下,形成的比對用戶集中需要比對的數目越小,更能夠為目標用戶找到相似的用戶,再利用改進后的融合物品特征的相似度計算公式,其最終產生的推薦效果更優(yōu)。
圖5 不同簇的F1折線圖
2) 與傳統(tǒng)協(xié)同過濾方法的比較
將比較本文提出的方法在不同簇的情況下與傳統(tǒng)的余弦相似度的方法進行F1值的比較。圖6中是聚類所分簇為5、簇為15和簇為45的F1值隨推薦數目不同的曲線與該情況下余弦相似度F1值得到的F1-cos 曲線。根據圖6可以得出,在TOP-N取值逐步上升時,本文所分簇類F1值均高于傳統(tǒng)的余弦相似度的計算。
圖6 不同簇的F1值與傳統(tǒng)協(xié)同過濾方法的比較折線圖
通過實驗可以得出:本文提出的一種基于TF-IDF與用戶聚類的推薦算法,在相似度計算和使用聚類算法時充分利用物品的特征信息,能夠有效提高推薦的精確度。但在研究中,對于用戶不同時期的特征偏好,以及外部原因的影響,如社交媒體的宣傳,時尚流行度等,使得用戶對某一特征偏好的改變不能夠進行及時修正,下一步將進行完善研究。