沈 鵬,李 濤
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
推薦系統(tǒng)是向用戶推薦或建議適當(dāng)?shù)氖挛锏臋C器軟件。推薦系統(tǒng)主要由三個重要階段組成,分別是目標(biāo)數(shù)據(jù)收集,相似性判定和預(yù)測計算[1]。另外,市場上的推薦系統(tǒng)[2]主要基于三大方法[3]?;趦?nèi)容[4]的方法充分利用物品的甚至是用戶的內(nèi)容(屬性)。而文中方法使用了題材和標(biāo)簽。因此,使用這種方法可以發(fā)現(xiàn)一部電影的內(nèi)容與用戶喜歡的其他電影的內(nèi)容之間的相似性[5]。為了預(yù)測目標(biāo)用戶的偏好,協(xié)同過濾也考慮了目標(biāo)用戶的近鄰,用來發(fā)現(xiàn)鄰居和目標(biāo)用戶之間的相似性,以便選擇最相似的鄰居并且將他們的評分和偏好推薦給目標(biāo)用戶[6]。因此,用戶的偏好推薦將取決于在活躍用戶的鄰居中存在的其他用戶。此外,協(xié)同過濾的領(lǐng)域依賴特性可能使其易受稀疏性和冷啟動的影響。這種類型的推薦系統(tǒng)可以分為基于記憶的,基于模型的[7]以及兩者的混合[8]。由于協(xié)同過濾在很大程度上取決于用戶的評分,因此,如果域中的用戶數(shù)量與事物相對比較低,則可能導(dǎo)致冷啟動[9]。文中提出的混合方法是基于內(nèi)容屬性和協(xié)同過濾算法的[10]。在后面的章節(jié)中,將討論混合協(xié)同過濾算法如何優(yōu)于純協(xié)同過濾算法[11]和基于內(nèi)容屬性的算法[12]。
梅爾維爾等提出過一種內(nèi)容提升的混合協(xié)同過濾算法,將內(nèi)容和協(xié)同過濾算法結(jié)合起來提供推薦。用戶-事物評分矩陣的稀疏度為97.4%,偽評級矩陣是使用了借鑒用戶畫像的基于內(nèi)容的過濾算法計算出來的。內(nèi)容提升的混合協(xié)同過濾算法中使用的樸素貝葉斯文本分類器對不同電影的內(nèi)容進行比較和分類,并通過協(xié)同過濾方式生成的偽評分矩陣進行預(yù)測。對于兩部電影之間的相似性,作者使用了Pearson相關(guān)性[13]進行度量。而文中方法修改了基于內(nèi)容的算法部分,使用了一個簡單的比較器,而不是根據(jù)樸素貝葉斯進行文本匹配,它可以比較和匹配在Movielens數(shù)據(jù)集上測試的兩部電影的標(biāo)簽和題材,并與SVD和純CF進行比較。此外還確定,與以前的模型相比,用戶項目評分矩陣中的初始稀疏度較高。
為了測試修改后的混合內(nèi)容推薦方法,使用了推薦系統(tǒng)的標(biāo)配實驗數(shù)據(jù)─Movielens數(shù)據(jù)集[14]。數(shù)據(jù)集中包含用戶為特定電影提供的個人評級。該數(shù)據(jù)集中總共包含100 004個評分,這些評分由671個用戶給出,針對9 125部電影,評分范圍從0到5。電影的題材總數(shù)為20。用戶和電影組成了671*9 125的用戶-事物評分矩陣,其中行表示用戶,列表示電影。Movielens數(shù)據(jù)集包含以下屬性:userId,movieId,標(biāo)題,評分,標(biāo)簽和題材。緊接著數(shù)據(jù)集被過濾,用文中算法對稀疏度為98.36%的用戶評分矩陣進行了測試。數(shù)據(jù)集中最初提供的評分?jǐn)?shù)量為100 004。在這些評分中,將2 000個評分分開,用于之后測試文中算法的準(zhǔn)確性。分離這些評級后,留下了訓(xùn)練數(shù)據(jù)集,構(gòu)成了98 004個評分,其稀疏度為98.3%?,F(xiàn)對于進一步的讀數(shù)設(shè)置,從稀疏度增加的方向隨機刪除訓(xùn)練數(shù)據(jù)集中一定比例的評分,并用對預(yù)測評分進行測試。通過這種方式,總共采集了六次讀數(shù),其中的稀疏度從98.3%到99.8%不等。
文中提出的算法考慮了數(shù)據(jù)集中指定的標(biāo)簽和題材,并且對基于內(nèi)容的預(yù)測,應(yīng)用了一組匹配比較器。該比較器返回兩部電影之間公共屬性的數(shù)量。這里的屬性一詞是指標(biāo)簽和題材。對于每部特定的電影,標(biāo)簽和題材都合并到一個集合中。這給了每部電影龐大的內(nèi)容,而更多的內(nèi)容則可以產(chǎn)生更好的預(yù)測。獲取一組通用屬性后,計算每部電影的權(quán)重。
一旦將權(quán)重分配給每個組,則它們將被用于使用先前比較的額定電影來提供未評級電影的評級。首先在該方法中,分配給用戶的每部電影所打上的標(biāo)簽都要使用,并且將其轉(zhuǎn)換為單個列表。每部電影的題材都附加到相同的標(biāo)簽列表中。該最終列表被稱為特定電影的屬性。將為每部有效影片設(shè)置的屬性與數(shù)據(jù)集中每部其他影片的屬性集進行比較,并將成功匹配的對象分配到一組。該組的長度用于預(yù)測評分,預(yù)測的公式如下所示:
R=M*(Hr/M')
其中,R為有效電影的評分;M為普通對象的數(shù)量;M'為數(shù)據(jù)集中任意兩部電影之間匹配對象的最大數(shù)量;Hr(highest_rating)為可以分配給一部電影的最大評分,在該例中是5。如果評級大于2.5(閾值等于最低和最高評級的平均值),那么可以將該電影及其計算的評級分配給相似的一部有效電影的電影集。接下來,使用數(shù)據(jù)集構(gòu)建用戶評分矩陣。這個矩陣的稀疏度為98.36%。使用形成的相似電影列表,減少了用戶評分矩陣的稀疏性。對于用戶評分矩陣中的每個非零條目,使用上述步驟中形成的列表找到與其類似的影片。一旦來自用戶評分矩陣的稀疏性降低,就使用Pearson相關(guān)性來應(yīng)用CF,并據(jù)此為用戶生成最終的預(yù)測。
算法流程見圖1。
圖1 改進的電影推薦混合協(xié)同過濾算法流程
在評估提出方法時,采用兩種傳統(tǒng)推薦方法作比較,即Pure CF和SVD。用這兩種方法在相同的Movielens數(shù)據(jù)集但不同的稀疏度上進行測試。此外,選擇這兩種方法進行評估和測試的原因在于,此前提出的內(nèi)容提升的CF[10]的方法也是與這兩種方法進行了比較。由于文中算法是為了比較梅爾維爾等所做的改進而設(shè)計的[10],因此,采用了前者在其工作中使用的相同評估方法進行測試。另外,憑借這種評估,可以清楚地看到提出的方法的結(jié)果和功效的差異。該模型使用平均絕對誤差(MAE)進行評估。平均絕對誤差是一個強大的評估模型,它是平均誤差的更自然的度量。此外,維度評估和相互比較模型應(yīng)該使用MAE作為評估指標(biāo)[12],它是預(yù)測值與實際值的偏差。為了計算MAE,考慮了預(yù)測評分和實際評分。MAE值是在用戶-事物矩陣的稀疏度級別不同上計算的,并針對所有三種算法分別進行了計算。此外,這里用于測試和評估的數(shù)據(jù)集要優(yōu)于第二節(jié)提到的類似方法中使用的數(shù)據(jù)集。盡管用戶總數(shù)較少,但是電影數(shù)量掩蓋了這一事實,并且由于電影數(shù)量更多,因此允許算法在更稀疏的用戶評分矩陣上運行,因此在下一節(jié)中提供的結(jié)果是合理的。
與Pure CF和SVD的方法進行比較的結(jié)果如表1所示。
表1 混合CF、純CF和SVD的MAE值
與Pure CF相比,發(fā)現(xiàn)文中方法對高稀疏度的有效性比Pure CF更好,MAE值比Pure CF產(chǎn)生的要稍高。原因是Pure CF算法取決于用戶評分矩陣可用的數(shù)據(jù),在高度稀缺的情況下,可用數(shù)據(jù)較少,因此Pure CF的性能表現(xiàn)不佳。另一方面,文中方法的主要興趣領(lǐng)域是通過應(yīng)用物-物比較來減少稀疏水平,因此,在這種情況下基于內(nèi)容的過濾之后使用的CF比純CF在更高的稀疏性的情況下使用效果更好。在圖2中可以看出,在稀疏水平為98.5%左右時,Pure CF和文中方法結(jié)果幾乎沒有差異,但在稀疏性進一步增加到99%左右的情況下,用Pure CF產(chǎn)生的結(jié)果的差異增加。如圖3所示,當(dāng)文中方法與SVD進行比較時,在稀疏度水平介于98%到100%的情況下,發(fā)現(xiàn)改進的混合CF推薦算法表現(xiàn)的比SVD更有效。從表1可以清楚地看出,在98.3%的稀疏度時,MAE是2.520,隨著稀疏度的增加,MAE值也隨之增加,兩種算法的MAE值的差異是巨大的。由于數(shù)據(jù)稀疏性較低,SVD無法有效執(zhí)行。表2顯示了提出的方法是如何成功地降低了給定用戶-事物評分矩陣的稀疏性的。
表2 應(yīng)用混合CF之后改善的稀疏性 %
圖2 Hybrid CF和Pure CF的MAE值與稀疏性的比較
圖3 混合CF和SVD的MAE值與稀疏性增加的比較
文中方法是一種新穎的替代方法,描述了一種可以在基于內(nèi)容的過濾中使用集合交集來找到兩個特征之間的相關(guān)性的簡單方法,該方法可以找出兩個事物
之間的相似性并使用CF預(yù)測它們的推薦。以前相關(guān)的方法在基于內(nèi)容的算法中使用了樸素貝葉斯等文本分類器,而文中算法進一步測試并與Pure CF和SVD進行了比較。評估后生成的MAE值提供了成功的比較。雖然混合內(nèi)容推薦可產(chǎn)生更好的MAE值,并將數(shù)據(jù)集的稀疏性提高了1%~2%,但使用較大的數(shù)據(jù)集進行測試時,結(jié)果可能會有所不同。