王謝寧, 李玉蒻, 朱志國, 劉琦卿
(東北財經大學 管理科學與工程學院,遼寧 大連 116025)
隨著網絡技術的成熟,互聯(lián)網產品的與日俱增,用戶的選擇范圍不斷增加,個性化推薦系統(tǒng)因其能主動發(fā)掘用戶喜好,向用戶生成有效推薦,在各行業(yè)被廣泛應用。協(xié)同過濾算法雖然是當下最流行使用范圍最廣的推薦算法,其由于算法維度有限問題導致推薦精度有限,針對有時用戶評分無法表示用戶的真實興趣從而使得推薦準確率相對較低的問題始終無法解決[1]。另一方面,由于網絡系統(tǒng)自身存在著明顯的馬太效應,使得系統(tǒng)無法充分發(fā)揮長尾效力,系統(tǒng)中的大部分產品無法被推薦,這直接影響到了系統(tǒng)的經濟效益。
目前的研究主要集中在針對傳統(tǒng)協(xié)同過濾算法的改進,以提高其覆蓋率和推薦精度。董晨露,柯新生[2]考慮評論與評分的基于物品的協(xié)同過濾算法,該算法為目前國內外基于用戶評論進行推薦的主流算法,即利用LDA主題模型計算用戶評論主題相似度并與用戶評分相似度加權進行協(xié)同過濾的推薦算法。然而用戶對物品的評分是多重因素的結果,用戶打分還有可能受到當前推薦系統(tǒng)的影響,同時因系統(tǒng)自身存在的馬太效應導致的長尾問題依舊存在。丁勇,劉菁等[3]以基于位置的社交網絡好友推薦為切入點,對距離, 熟識度,興趣相似性屬性進行多維度集成考慮,劃定不同屬性的線性權重,構建了基于用戶交友偏好的好友推薦模型,一定程度上緩解了單一屬性下推薦機制的冷啟動問題,提升了算法的有效性和實用性。焦富森,李樹青[4]在考慮用戶評分受物品質量和評分偏好影響的基礎上,融合了基于貝葉斯估計的物品質量評估以及用興趣度對相應的用戶評分進行修正的方法,提出了新的協(xié)同過濾算法,有效提高了推薦的效果。羅辛等[5]針對K近鄰模型中預設的K值超出最優(yōu)取值區(qū)間的兩難選擇,提出了相似度支持度這一新的K近鄰度量值,并基于評分相似度和相似度支持度,提出了三種k近鄰模型推薦系統(tǒng)的優(yōu)化策略,有效改善了推薦過程計算的復雜程度,提供了更優(yōu)的推薦效果。而楊陽等[6]通過奇異值矩陣分解的方式解決數據量過大或者過小而導致的時間和空間復雜度提高的問題,借助已有的用戶檔案建立近鄰模型,實現(xiàn)基于矩陣分解與用戶近鄰模型的協(xié)同過濾推薦模型,減少了空間開銷,提高了預測的準確率。陶維成等[7]為解決數據在高維度高稀疏下推薦算法的質量問題,創(chuàng)新的將灰色關聯(lián)聚類應用到協(xié)同過濾算法中,定義了基于用戶的灰色關聯(lián)聚類,總結歸納了相應推薦算法的實現(xiàn)過程,有效地緩解了推薦系統(tǒng)的冷啟動問題。冷瑞等[8]通過引入用戶集聚系數這一統(tǒng)計量,借助經典的基于物質擴散的改進協(xié)同過濾算法,考察二部分圖中用集聚系數對協(xié)同過濾算法的影響,以度量用戶興趣為核心思想,引入目標用戶的集聚系數并賦予合理權重,形成了基于改進后的結合用戶集聚系數的協(xié)同過濾算法。張文等[9]關注用戶評分矩陣存在的全局稀疏性問題,將用戶和商品采取分別聚類的措施,利用分塊評分矩陣劃定目標用戶對商品偏好的局部性特征,并通過奇異值分解,施密特變換借助稠密分塊近似預測用戶對未知商品的評分,建立基于聚類矩陣近似的協(xié)同過濾推薦算法CF-cluMA,提升了推薦系統(tǒng)的穩(wěn)定性和計算效率。與此同時,為了解決新項目新用戶的冷啟動問題導致推薦算法的精確度無法得到保障的問題,于洪等[10]在考慮到以往研究缺少對項目自身的基本信息和用戶評分時效性情況下,對用戶進行分類,建立用戶時間權重的概念,以用戶、項目屬性、標簽等信息為基礎,得到個性化的預測評分值公式,提出了應對新項目冷啟動問題的CUTATime個性化推薦算法。Toledo等[11]通過解決嘈雜評級問題,進一步提高推薦的準確度的同時,緩解了系統(tǒng)冷啟動問題。李聰等[12]以Web日志為研究背景,得到用戶的商品項訪問序列,進而定義了n序訪問解析邏輯,提出了基于改進最頻繁項提取算法的top-N推薦,在一定程度上有效地消除了新用戶冷啟動的問題。
上述文獻雖然從不同角度提升了推薦的準確度,但仍存在某些問題。首先,推薦系統(tǒng)的維度有限問題。評分不是代表用戶興趣的唯一標準,用戶對于物品的喜好不能再簡單以物品評分進行衡量,只有多維度的分析才能使推薦結果更加精準。其次,評論情感傾向劃分單一問題,當前研究多局限于對正負兩極情感傾向的判斷,無法對用戶的中性情感進行分類,對用戶真正情感的判別存在較大程度的誤差,從而使得在推薦過程中,對用戶真正興趣點把握錯誤,降低推薦結果的準確度。再次,推薦系統(tǒng)的長尾問題,即便上述文獻進行了一定程度的長尾優(yōu)化算法中,熱門物品依然更傾向與熱門物品相似,在用戶喜歡熱門物品的情況下,系統(tǒng)依舊很難推薦尾部冷門的物品[13]。
論文研究如何利用LSTM神經網絡模型對用戶情感進行分析以提高推薦系統(tǒng)的準確率,通過對熱門物品進行懲罰從而增加推薦結果的覆蓋率,將用戶情感傾向得分與用戶評分進行有機結合,設計融合用戶評論情感傾向的個性化推薦算法;借鑒經濟學中的基尼系數通過對熱門物品的懲罰,發(fā)掘系統(tǒng)的長尾能力,改進衡量推薦算法覆蓋率的指標,再分別調試用戶情感系數和懲罰系數,利用隨機搜索交叉驗證法得出模型參數的最優(yōu)組合,完成本文個性化推薦模型的構建。
(1)
(2)
考慮不同用戶評分習慣和評分范圍的不同,本文引入物品評分標準差σx,得到用戶u對物品x的標準化評分S(Sux):
(3)
公式(4)中U(x)表示喜歡物品x的用戶集合,U(y)表示喜歡物品y的用戶集合,物品x和物品y之間的相似度表達式如下,從公式中我們可以發(fā)現(xiàn),物品x和物品y越相似則他們同時被越多的用戶喜歡,這就會導致流行物品和其他任何物品的相似度都偏高,在后面我們將引入懲罰函數對其進行處理:
(4)
(5)
基于物品的協(xié)同過濾算法主要分為兩個步驟:(1)計算物品相似度;(2)生成推薦列表。如上所述,物品流行度高的物品對應的用戶數往往很少,如圖1所示,而事實上相對冷門的物品帶來的效益甚至能超過總體效益的四分之一。推薦系統(tǒng)應該為用戶推薦所有用戶可能喜歡的物品,而不應該幾乎只推薦流行度高的物品。只有把握好對于一些冷門物品的適當推薦,才能讓推薦系統(tǒng)在覆蓋率和精準性之間更加均衡科學,讓使用推薦系統(tǒng)的企業(yè)獲得更多收益。流行物品之所以很容易向用戶推薦,是由于流行物品受很多人喜歡,從公式(4)中可以發(fā)現(xiàn),流行物品和任何物品的相似度都很高,他們都共同被很多用戶喜歡,從而很容易被推薦給其他用戶從而引發(fā)推薦系統(tǒng)的馬太效應,使得推薦系統(tǒng)失衡。
圖1 推薦物品流行度的長尾分布
圖2 利用基尼系數衡量物品推薦頻數的平均程度
一個健全的推薦系統(tǒng)除了要有較高的準確率外還要善于發(fā)掘用戶可能的潛在興趣,利用好推薦系統(tǒng)的長尾能力,以更好地實現(xiàn)效益最大化。在本文中利用基尼系數來定義推薦系統(tǒng)的覆蓋率,來衡量一個推薦系統(tǒng)的優(yōu)劣?;嵯禂凳怯脕砗饬恳粋€國家或地區(qū)居民收入差距的常用指標,基尼系數的大小,表示了收入不平等程度的大小,但其實質是對分布均勻度的量化分析,并不是經濟學的專有名詞[15],目前已經應用在其他學科與均勻度方面的相關分析中[16]。不同熱度的商品對于不同用戶的分配推薦場景非常類似于國民收入的差距和均勻程度的分配,因此本文利用基尼系數衡量物品推薦頻數的平均程度,如果基尼系數小,則說明不同流行度的物品被推薦的次數幾乎相同。
如圖2所示,其中橫軸表示物品數量的累積百分比(按流行度從低到高排列),縱軸表示流行度的累積百分比。直線OA代表理想狀態(tài)下,推薦物品完全覆蓋所有物品的情況,曲線OA以上和直線OA圍成的圖形為B,曲線OA以下的圖形和直線OA圍成的圖形為C,那么基尼系數即為SB/(SB+SC),由此可知,基尼系數越小,則SB越小,曲線OA更趨近于直線OA,系統(tǒng)推薦的物品流行度分配也更加平均。系統(tǒng)中衡量覆蓋率的基尼系數表達式如下,其中l(wèi)(itemi)表示物品流行度從小到大排序的物品列表中的第i個物品的流行度:
(6)
同時,為了避免流行物品泛濫和系統(tǒng)的失衡,本文引入懲罰系數對相似度計算公式進行修正。如果物品y是流行物品,受到很多人的喜歡,那么通過提高β的值并除以物品長度函數,就可以懲罰物品y,以減輕物品y在計算中所占的權重,如下所示:
(7)
其中α+β=1,β∈[0.5,1],依據這一步計算所得的物品相似度,預測用戶對物品的評分,并進行排序向用戶進行推薦。
本文使用的數據為馬蜂窩網上爬取的數據,共10841條實驗數據,囊括192個用戶,主要包括兩部分:用戶信息和項目信息。總共爬取用戶信息表三個,項目信息表兩個。清洗、篩選、整理并統(tǒng)一數據格式,保留有評論的用戶數據,調整其格式,使得用戶信息表擁有五個屬性:用戶ID、用戶名、用戶性別、用戶等級和用戶居住地;項目信息表擁有如下七個屬性:用戶ID、旅游城市ID、旅游項目ID、旅游項目名稱、旅游項目評分、旅游項目類型和旅游項目評論。然后隨機將數據集按8:2比例分成訓練集和測試集,分別保存,用戶評論再單獨另存為一個文件。經過處理后的文件即可正常被讀取進行實驗運算。用戶評論的文件將被用于進行情感極性分析,以解決推薦系統(tǒng)維度有限性問題,得到的分析值將與項目信息表進行整合,獲得用戶對物品的重估評分,并在此基礎上增加懲罰函數對推薦算法進行重新構造,從而為用戶生成推薦列表。
為了評估模型性能,本文的改進的基于物品的協(xié)同過濾算法主要與以下三種算法進行對比分析:(1)傳統(tǒng)的基于物品的協(xié)同過濾算法,(2)考慮評論與評分的基于物品的協(xié)同過濾算法,(3)基于用戶評論主題相似度的協(xié)同過濾推薦算法。本文將第一種算法命名為ICF算法,將第二種算法命名為PICET算法,將第三種算法命名為CFRTS推薦算法,將本文改進的算法命名為PICETP算法。
將用戶數據和項目數據,包括用戶ID,項目ID,項目評分,用戶評論等屬性,在為評論計算情感值時,設置epoch=10,測試出準確率最高的參數,該算法選用的主要參數為詞語創(chuàng)建詞字典的最低詞頻,將兩算法不同詞頻值對應的算法準確率統(tǒng)計如表1所示,由表1可以發(fā)現(xiàn),不同的詞頻對于兩類算法的結果影響都較小,二分類和三分類情感分析模型在詞頻設置為10時,均擁有最高的準確率。
表1 不同詞頻對應準確率
雖然將LSTM神經網絡結構模型的loss函數換為categorical_crossentropy函數,激活函數換為softmax函數,輸入三種情感極性的訓練數據構造三分類情感分析模型時,準確率有所降低,但是對于中性情感的分類更加準確,能有效區(qū)分中性評論。從實驗結果來看,該模型對于中性情感評論把握更加準確,這在事實上提升了對用戶評論情感分析的準確性,對于用戶評分的修正也更加可靠。而對于三分類情感分析準確率較低的現(xiàn)象,本文認為主要原因有訓練集中性情感數據的數據量相對較少,訓練語料只有其他兩種情感訓練集的一半,另一方面,由于三分類情感分析目前研究較少,導致中性情感的數據集質量不高,使得訓練結果欠佳。
利用LSTM神經網絡模型計算得出的用戶評論情感傾向值和用戶評分進行加權求和,得到一個新的用戶評分,計算方法如下表所示,其中γ+δ=1:
表2 情感值與用戶評分加權方法
PICETP算法在基于物品的協(xié)同過濾基礎上融合了用戶評論情感傾向值和懲罰系數,從而實現(xiàn)算法的準確率和覆蓋率的提高,故總共有4個參數值需要調整,包括:鄰域個數k[5,10,20,40,80]、推薦個數n[5,10,15,20,25]、情感因素權重Γ[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]、懲罰系數β[0.5,0.6,0.7,0.8,0.9],驗證復雜度達到O(|k|·|n|·|Γ|·|β|·m),如果手動對參數進行調參,將極大地增加實驗的復雜度和實驗時間。另一方面,雖然推薦個數對算法的準確率和覆蓋率會產生一定影響,但本文認為推薦個數對于準確率和覆蓋率的影響不具有代表性,不能說明算法的性能,故本文所有實驗都在推薦個數n=5的情況下進行。最后,利用網格搜索m折交叉法對參數進行調優(yōu),考慮算法的復雜度和實驗時間,選擇m值為10,本文在推薦個數固定為5且未增加懲罰系數的情況下,利用網格搜索方法對上文中的每組參數組合在馬蜂窩數據集上進行了十折交叉驗證。
圖3 n=5時,不同情感系數和鄰域數對應準確率
實驗平均準確率的輸出結果如圖3所示,主坐標軸代表算法的準確率,環(huán)形排列的副坐標軸代表算法中使用的情感系數??梢园l(fā)現(xiàn),鄰域數量為10的情況下,準確率值最高,并且準確率值并不隨著鄰域數量的增長而增長,主要因為鄰域數量較少時,可能未完全包含用戶的興趣,而鄰域數量過多時,可能包含了用戶興趣之外的其他興趣,這兩種情況都會導致推薦的準確率降低。在情感系數取值為0.4時,即用戶評分與用戶評論情感傾向得分按6:4加權計算作為推薦依據的情況下,不同鄰域數量對應的準確率值均最高。同時可以發(fā)現(xiàn)單純以用戶評論情感為依據和單純以用戶評分為依據的準確率均沒有融合兩者得出的準確率高,并且在情感系數取值范圍在0~0.4的情況下,準確率隨著情感系數遞增,這說明了用戶情感傾向得分對用戶評分起到了較優(yōu)的修正作用,使得算法的準確率得以提升,而情感系數取值在0.4~0.9的情況下,準確率隨著情感系數遞減,出現(xiàn)該類現(xiàn)象的原因考慮是本文利用的情感分類模型對評論的情感傾向分析只有三分類,這就導致情感傾向分值并不能完全代表用戶興趣偏好,而如果主要以情感傾向分值作為向用戶推薦的依據則會使得算法的準確率降低。由此可見,考慮情感因素對推薦算法的準確率確實有積極作用,能在一定程度上提高算法的準確率。通過網格搜索交叉驗證法對參數進行的上述實驗可發(fā)現(xiàn),在Γ=0.4時,模型擁有最高的推薦準確率,故此次實驗是在Γ=0.4的情況下對懲罰系數進行調整,分析懲罰系數對推薦覆蓋率的影響,圖3中所示曲線塊為情感因素占比為40%時,不同懲罰系數對應的覆蓋率值。
圖4 n=5,Γ=0.4時,不同懲罰系數和鄰域數對應覆蓋率
由圖4的輸出結果可以發(fā)現(xiàn),在懲罰系數取值為0.6~0.9時,隨著懲罰系數的增大算法的覆蓋率得到了明顯的提升,但當懲罰系數取值為1時,算法的覆蓋率出現(xiàn)了突然地下降,此現(xiàn)象的出現(xiàn)是由于計算物品相似度時,考慮的是物品間的關聯(lián)性,當懲罰系數為1時,將直接導致熱門物品被忽略,從而使得計算物品-物品相似度時最相似的物品為自身,大大降低了算法的覆蓋率。同時,隨著鄰域數量的增加,PICETP推薦算法的覆蓋率逐漸下降,這主要因為推薦系統(tǒng)具有馬太效應和數據的稀疏性,而考慮了更多的鄰域將導致所有物品均更容易與熱門物品相似,所以使得推薦算法的覆蓋率降低。
圖5 n=5,Γ=0.4時,不同懲罰系數和鄰域數對應準確率
圖4為推薦個數為5,情感系數為0,4時,不同懲罰系數對應的算法準確率,結合圖5可以看出,當不添加懲罰系數時,算法的推薦結果是最精準的,但是覆蓋率較低,而當懲罰系數持續(xù)增大時其將導致熱門物品幾乎被忽略,從而使得物品與物品間的關系減弱,從而使得準確率出現(xiàn)明顯下降。并且,推薦系統(tǒng)如果推薦率較低,總是單一重復的推薦流行物品,而不推薦其他物品,不僅不能主動發(fā)掘用戶的其他潛在興趣,還很難推廣推薦系統(tǒng)中的其他產品包括新品,這將很難滿足用戶的個性化需求,同時還會導致推薦系統(tǒng)的經濟價值不能被完全開發(fā)。結合圖3、圖4和圖5,可以發(fā)現(xiàn)融合了用戶評論情感因素的推薦算法擁有更高的準確率,由于未融合用戶評論情感因素的算法,同時,增加了懲罰系數的推薦算法在犧牲較小的準確率的情況下,較大幅度地提升了推薦算法的覆蓋率,并且本文添加懲罰系數犧牲了準確率后其準確率仍高于未融合用戶評論情感傾向的推薦算法。綜上,證明本文所提出的PICETP算法在實驗指標測評結果對比中,在準確率和覆蓋率指標上有了更好的推薦結果。
在上述實驗中,已經測試得出PICETP推薦算法的最佳參數組合,在推薦列表長度為5,鄰域數量為10,情感系數為0.4,懲罰因子為0.6時,擁有較高的準確率,同時有著較高的覆蓋率。本文將對比PICETP推薦算法和其他幾種算法之間結果的差異,主要有以下幾種算法:①ICF算法,即基于物品的協(xié)同過濾算法,②CFRTS算法,利用LDA主題模型計算用戶評論主題相似度并與用戶評分相似度加權進行協(xié)同過濾的推薦算法,③PICET算法,即考慮評論與評分的基于物品的協(xié)同過濾算法,④PICETP算法,即融合了情感因素和懲罰函數的基于物品的推薦算法,該方法即本文提出的實驗方法,參數使用前面實驗得出的最佳參數組合。
圖6 四種算法對應的準確率、召回率和覆蓋率
考慮時間和算法復雜度等其他因素,取推薦長度為固定值5,鄰域數量取固定值為10, 四種推薦算法對應的準確率、召回率和覆蓋率如圖6所示。同ICF推薦算法相比,只考慮評論與和評分的PICET推薦算法由于考慮了用戶評論情感傾向的修正作用,相較于ICF算法擁有更高準確率和召回率,也即其在一定程度上提升了推薦的準確度。而CFRTS算法由于在計算物品相似度時,加權了用戶評論的主題相似度,從多方面挖掘了物品之間的相似度,故其在一定程度上也提升了算法的準確率。然而,由于PICET算法和CFRTS算法對于熱門物品權重未做處理,代表其推薦產品時還是存在網絡系統(tǒng)中由于熱門物品導致的馬太效應,使得其得到的覆蓋率幾乎與ICF算法一致。即融合了用戶評論情感分值的PICET算法和考慮用戶評論主題相似度的CFRTS算法能有效提升算法的準確率,卻無法有效提升算法的覆蓋率。而PICETP算法同時融合了用戶情感因素和熱門物品的懲罰效應,將同時作用于推薦算法的準確率和覆蓋率,在提高推薦算法準確率的同時提升算法的覆蓋率。
綜合上述實驗可以發(fā)現(xiàn),相較于現(xiàn)存的多種算法,PICETP推薦算法在準確率和覆蓋率上均有所提高,證明了評論的情感因素和懲罰系數對于構建性能更佳的推薦模型的有效性。
本文在研究用戶歷史行為的基礎上,考慮熱門物品權重和用戶隱藏情感對用戶未來可能產生行為的影響,在基于物品的推薦方法上進行改進,融入情感因子和懲罰系數,構建PICETP算法,分析其和其他推薦算法間性能的優(yōu)劣。綜合實驗結果,針對用戶評論和評分經常存在不一致現(xiàn)象,企業(yè)在未來的營銷環(huán)節(jié)應該更加注重用戶的真實情感,更多參考用戶的評論價值。同時,根據用戶屬性將用戶分類,對不同類的用戶需要采取不同的推薦手段,以此達到推薦算法的人性化,經濟效益的最大化。相信本文研究結果對日后的個性化推薦方法有借鑒意義。后續(xù)將利用更多的屬性和特征模型對算法進行優(yōu)化與完善。