黃劍波,陳方靈,丁友東,吳利杰
(上海大學,上海 200072)
近年來,移動互聯(lián)網飛速發(fā)展,網絡數據過載,生活節(jié)奏加快,如何實現精準高效推薦成為亟待解決的問題。傳統(tǒng)的推薦方法,將用戶評分作為評判用戶傾向性的重要指標。其假設相似評分的用戶具有類似喜好,而近鄰用戶并不能完全客觀、真實地反映用戶自身的偏好[1]。用戶評分數據在一定程度可以代表用戶對商品的態(tài)度,但用戶評分產生差異的原因得不到合理解釋,而評論為心中所想,更能反映用戶心理。且心理學研究表明大多數人都有從眾心理,人們對物品的喜好或情感狀態(tài)會受多數人的情感影響[2]。因此,為了實現精準推薦,挖掘用戶評論的情感就變得尤為重要。
文中運用自然語言處理等技術,分析電影評論文本,將其應用到個性化電影推薦中,挖掘用戶情感信息,提高推薦的準確性。具體方法如下:首先抓取網絡公開電影基本信息和影評數據,然后使用多人人工交叉標注部分影評數據集,為影評情感傾向性打分,訓練情感分析模型。將情感值與用戶評分結合,作為用戶的喜好程度,消除用戶評分標準不一的影響,能更加真實地反映用戶的偏好。最后,使用點擊率預測模型,對用戶觀影歷史行為進行訓練,并預測每個用戶對未觀看的電影的點擊率,排序選取前N個數據為用戶推薦。實驗結果表明此方法有更好的性能。
Resnick等[3]在20世紀90年代首次提出個性化推薦的概念,經過了二十多年的積累和沉淀,推薦系統(tǒng)逐漸成為一門獨立學科在學術研究和業(yè)界應用中取得了很多成果。其背后的技術大致可以劃分為三類:基于內容的模型、基于協(xié)同過濾的模型,以及混合模型[4]。
基于內容的推薦模型主要在于分別建立用戶和物品的檔案資料,計算用戶或物品之間的相似度[5]。物品的檔案通常由它的各種屬性資料構成,以服裝領域為例,包括價格、品牌、類別、顏色、風格、款式、尺寸等。內容推薦雖然是推薦系統(tǒng)的孩童時代,但依然適用于各個領域,主要原因在于,首先只要得到物品或者用戶的檔案,就可以處理冷啟動問題,其次,檔案都是顯式特征,模型有很好的可解釋性。
協(xié)同過濾的提出,極大地推動了推薦系統(tǒng)的研究和發(fā)展[6]?;趨f(xié)同過濾的推薦模型不需構建任何檔案資料,只收集用戶的歷史行為記錄,就可挖掘用戶與用戶、物品與物品之間潛在的相似性,并基于這種群組相似性完成推薦。其包括基于鄰居的方法和基于模型的方法?;卩従拥姆椒ê诵脑谟诟鶕v史行為記錄,構建用戶與用戶,或者物品與物品的相似度矩陣,能在廣泛的興趣范圍中推薦出熱門物品,但缺少個性化?;谀P偷耐扑]最常用的是隱因子模型,典型的是Koren Y等[7]提出的矩陣分解。在這類模型中,用戶和物品都被嵌入到一個低維向量表示,用戶和物品的相關性體現于它們對應隱向量的點積關系。這種方法效率高,一旦訓練出模型,用戶和物品的關系就能很方便地通過點積計算出來,同時準確度也好于鄰居模型。但缺點也很明顯,不能解決冷啟動問題,同時學習出的隱向量不方便解釋。
綜上,不同推薦算法在應用中有不同效果。因此,工業(yè)界常用的是混合模型,結合多種推薦模型,取長補短,能得到更好的推薦效果。
近年來,隨著眾多學者對點擊率(click-through rate estimation,CTR)預估模型的研究,CTR模型在推薦系統(tǒng)中得到廣泛應用,解決了矩陣分解技術在高度稀疏的數據場景下不適用的問題。2011年Steffen Rendl等[8]提出的因子分解機(factorization machine,FM)模型,采用特征組合的方式,解決了推薦數據稀疏的問題。2016年Juan Yu-Chin等[9]提出場感知分解機(field-aware factorization machine,FFM)模型,在FM的基礎上引入場的概念,將具有相同性質的特征歸為同一個場。2017年Guo Huifeng等[10]提出了深度因子分解機(a Factorization-Machine based neural network,DeepFM)模型,可同時學習低階和高階特征,提高排序能力。
基于情感分析的個性化電影推薦主要分為以下3個步驟:數據采集與預處理,模型訓練,預測及電影推薦,流程如圖1所示。
圖1 基于影評情感分析的電影推薦流程
(1)數據采集與預處理。從網絡公開數據收集足夠的電影相關數據,然后進行數據的清洗處理。對于影評數據,還需采用多人人工交叉精確標注,影評根據情感傾向程度進行標注為1~5,其中1~5喜愛度依次遞增。文中采用BERT[11]對影評數據有監(jiān)督多分類訓練,并保存訓練模型,對新的情感預測時,載入保存好的訓練模型,直接進行預測。
(2)模型訓練。使用CTR預估模型DeepFM,對處理好的數據進行訓練,并保存相應模型。
(3)電影推薦。加載模型,根據用戶歷史行為信息,預測用戶對未觀看電影的CTR、排序,選取前N個數據,實現個性化推薦。
文中數據集主要來源于網絡公開數據的抓取,包括電影數據集、用戶數據集以及影評數據集。其中電影數據集包含電影ID、電影名、演員、導演、類型、編劇、時長等字段。用戶數據集包含用戶ID、用戶常居地、用戶名等字段。影評數據集含有電影ID、電影名、用戶ID、用戶評論、用戶評分等字段。對抓取數據首先進行清洗操作,影評數據集還需要多人人工交叉標注,然后進行情感模型的訓練。
文中情感分析采用BERT模型。BERT采用的是Transformer[12]的雙向編碼器結構,Transformer不需要循環(huán),而是并行處理序列中的所有單詞或符號,同時利用自注意力機制將上下文與較遠的單詞結合起來。BERT的雙向為深度雙向,與傳統(tǒng)雙向有所不同。傳統(tǒng)雙向是從左到右與從右到左的結合,但是兩個方向的損失計算相互獨立,其本質還是單向的,只是一種簡單融合,而BERT的深度雙向充分結合了上下文信息。BERT模型可同時用作預訓練模型和下游任務模型,且不需要做任何的修改就能實現文本分類。對影評做情感分析時,上下文的語義尤為重要,要充分考慮到上下文的關系,因此采用BERT模型能更精確的分類。
傳統(tǒng)的情感分析方法分為正向和負向兩類,文中的情感分類分為5個等級。采用BERT模型進行中文文本情感分析的過程如圖2所示。
圖2 中文文本情感分析的流程
利用訓練好的BERT模型預測影評情感值,將影評情感值和用戶評分相結合,表示用戶的整體傾向性,可以寫成:
y=w1y1+w2y2
(1)
其中,y1和y2分別為用戶影評情感值和用戶評分,w1,w2為各自的權重,w1+w2=1,文中w1和w2的取值設為0.5。
對于CTR預估模型,低階組合特征和高階組合特征都會影響最終的結果,學習用戶行為背后隱含特征組合極其重要。而DeepFM模型可以從原始數據中同時學習低維與高維特征。因此,文中推薦模型采用CTR預估模型DeepFM。
DeepFM分為神經網絡部分和因子分解機部分。DeepFM模型將DNN和FM并行組合,同時具有FM在推薦中的優(yōu)勢和深度學習在特征學習的優(yōu)勢。模型結構如圖3所示,因子分解機部分和神經網絡部分分別負責提取低階特征和高階特征,共享權重矩陣,即共享嵌入層。這樣可以從原始數據中同時學習到低維與高維特征,不再需要人為設計特征工程,訓練效率更高效。DeepFM模型的預測結果可以寫成
圖3 DeepFM模型結構
(2)
模型訓練采用對數似然損失(logarithmic loss function,LogLoss)進行參數更新。LogLoss采用KL(Kullback-Leibler)[13]散度來計算,預測分布越接近真實分布,其值越小。假設樣本的真實分布為P,預測分布為Q,則KL散度定義[14]如下:
(3)
在CTR預估中,概率分布為二項分布。設真實的點擊率為tctr,預測的點擊率為pctr。因此真實的二項分布P(tctr,1-tctr),預測的二項分布Q為(pctr,1-pctr)。因此損失函數可以寫成如下形式:
(4)
為了適應電影推薦這類稀疏數據,參數優(yōu)化方法采用Adagrad優(yōu)化方法[15]。Adagrad算法在訓練中自動更新學習率,采用較大的學習率調整出現次數較少的參數。
DeepFM模型輸入數據為特征經過獨熱編碼橫向拼接而成的高維稀疏向量。首先,各個特征加權求和得到一次項。然后,將原始輸入的特征經過嵌入層,一方面兩兩內積,求和得二次項,另一方面作為輸入全連接到DNN,實現低維和高維特征的結合。
文中加載訓練好的模型,對于給定的用戶及其歷史行為,對其未觀看電影預測CTR,按照從大到小排序選取前N個數據,實現個性化的電影推薦。
實驗采用的操作系統(tǒng)為Ubuntu 16.04,64位,基于TensorFlow框架,編程語言為Python3.5。所有的訓練均采用NVIDIA-GTX-TitanX顯卡。
根據Zhou Guorui等[16]提出的數據處理方法,為了適用CTR預測任務,將數據轉換為二分類數據。用戶的偏好值是從0到5的連續(xù)值。將偏好值為4和5的樣本標記為1,其余為0。將227 424個樣本劃分為訓練集,其余46 036個樣本為測試集。目標是根據歷史行為預測用戶是否對給定電影的偏好值高于3(為1)。
文中采用LogLoss、AUC、MAP作為模型評價指標。LogLoss更關注和觀察數據的吻合程度,AUC更關注排序。MAP是反映系統(tǒng)在全部相關文檔上性能的單值指標,系統(tǒng)檢索出來的相關文檔越靠前,MAP就可能越高[17]。圖4對比了DNN,FFM,DeepFM三個模型在測試集上的AUC表現。三個模型的預測結果如表1所示。
實驗結果表明,基于情感分析的個性化電影推薦是可行的,由圖4和表1可知深度因子分解機具有較好的預測結果。
圖4 不同模型AUC
表1 不同模型預測結果對比
選取兩名用戶分別為其推薦10部電影,如表2所示。從表中看出,用戶B的歷史評分最高分為3分,沒有表現出明顯的傾向性,而評論卻表現出明顯的喜好傾向。對比兩種推薦方法的推薦結果,可以看出基于情感分析的推薦更符合用戶的心理。
表2 不同用戶電影推薦對比
對于三部不同類型的電影,將CTR作為推薦指數,用戶的推薦值數如表3所示??芍獙τ谕徊侩娪?,不同的用戶表現出了明顯的差異,表明了提出的個性化電影推薦方法的可行性。
表3 用戶電影推薦指標
文中還采集了25個不同年齡階段的歷史的信息記錄,參與模型訓練,為其推薦5部電影,并調研反饋信息。如表4所示??梢钥闯鲋挥?%的人不喜歡推薦的電影,表明了該推薦方法的有效性。
表4 用戶反饋調研
提出了一種基于影評情感分析的個性化電影推薦方法。首先,爬取網絡公開電影、用戶數據、影評數據,然后將影評數據集進行人工交叉標注,使用BERT模型進行情感分析,情感分析結果和用戶評分相結合,采用DeepFM點擊率預估模型進行預測。最后,根據DeepFM預測的結果,按照CTR排序,選取前N個數據實現線下推薦,提高了推薦的質量。然而在研究中還發(fā)現了一些問題:(1)對中文影評情感多分類難度較大,因此采用強大的BERT模型,依然不能有很高的準確率;(2)BERT模型訓練時間消耗很大,對于影評數據句子稍長,需要耗費大量的時間。在下一步的工作中,可以采用混合推薦的方法,評估整體的效果。