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