◆浩慶波 徐 巖 萬曙靜
面向大數(shù)據(jù)矩陣分解的推薦系統(tǒng)的研究
◆浩慶波 徐 巖 萬曙靜
(曲阜師范大學(xué)網(wǎng)絡(luò)信息中心 山東 273100)
隨著互聯(lián)網(wǎng)應(yīng)用范圍的不斷擴大和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)為人們提供了豐富且數(shù)量龐大的信息資源,但同時也造成了互聯(lián)網(wǎng)信息過載等問題。推薦系統(tǒng)的產(chǎn)生則能夠有效解決信息過載這類問題。推薦系統(tǒng)無需太多干預(yù)用戶正常的互聯(lián)網(wǎng)使用習(xí)慣,通過挖掘用戶偏好,構(gòu)建用戶畫像,從而針對不同用戶提供個性化服務(wù)。本文研究了基于矩陣分解推薦系統(tǒng)的核心技術(shù),并對推薦方法和評價方法進行研究闡述,最后對推薦系統(tǒng)的下一步研究方向作出展望。
大數(shù)據(jù);協(xié)同過濾;矩陣分解
面對互聯(lián)網(wǎng)中存在的數(shù)量龐大且種類繁雜的數(shù)據(jù)資源,即便借助數(shù)據(jù)庫技術(shù)和搜索引擎的關(guān)鍵字過濾技術(shù),處理后的結(jié)果仍然有很大的數(shù)據(jù)級,人們很難在如此大量的數(shù)據(jù)中找到自身真正需要的數(shù)據(jù)信息。我們稱上述問題為互聯(lián)網(wǎng)信息過載[1]。推薦系統(tǒng)的應(yīng)用則能夠有效地解決信息過載這類問題[2]。而推薦系統(tǒng)是一種無需干預(yù)用戶瀏覽行為,根據(jù)用戶的自身屬性、瀏覽歷史、情境等信息來建立用戶的興趣模型,通過建立的興趣模型從而為用戶推薦其所需的網(wǎng)絡(luò)信息資源。

推薦系統(tǒng)按照推薦方法大致可分為以下幾類[3,4]:基于內(nèi)容的推薦、基于協(xié)同過濾的推薦以及混合推薦三種推薦方法[5,6,7]。
基于內(nèi)容的推薦方法思想是:根據(jù)用戶已經(jīng)瀏覽過的項目的內(nèi)容,在推薦數(shù)據(jù)集中查找相似的項目內(nèi)容,并將查找到的內(nèi)容推薦給該目標用戶。這種方法的局限性是無法發(fā)現(xiàn)用戶新出現(xiàn)的興趣點,推薦的新穎性不足。
相比于基于內(nèi)容的推薦方法,基于協(xié)同過濾的推薦方法使用更為廣泛,其思想為:首先根據(jù)目標用戶的訪問興趣點,在用戶集中尋找與目標用戶興趣點相似的用戶。然后查找相似用戶的訪問記錄,找到相似用戶瀏覽過的且目標用戶沒有瀏覽過的信息資源。最后將這些資源推薦給目標用戶。協(xié)同過濾推薦方法在保證推薦準確性的基礎(chǔ)上兼顧了推薦的新穎性。但該推薦算法中若目標用戶沒有瀏覽記錄或目標用戶沒有相似用戶,就產(chǎn)生了冷啟動問題。
為了解決冷啟動問題,提出了混合推薦方法?;旌贤扑]的本質(zhì)是將多種推薦技術(shù)進行混合,使其相互彌補不同推薦方法中的缺點,從而獲得更好的推薦效果。常用的混合策略包括:特征組合、加權(quán)、合并、轉(zhuǎn)換等等。其中最常見的方法是將協(xié)同過濾的推薦與其他方式的推薦進行結(jié)合。
用戶的基本偏好會在該用戶的社會屬性中進行一定程度的表現(xiàn),而用戶在使用網(wǎng)絡(luò)過程中所產(chǎn)生的瀏覽行為往往反映了其個人偏好。對于推薦系統(tǒng)來說,這些用戶的社會屬性信息和瀏覽行為可以用來描述用戶畫像[8]。針對不同的推薦場景,推薦系統(tǒng)有不同的用戶行為記錄,例如在新聞推薦中,用戶點擊、瀏覽、停留時間、收藏等。在音樂推薦中,用戶行為有收聽、收藏、評論等。推薦系統(tǒng)將用戶行為映射成喜好評分(1-5),比如新聞推薦中收藏映射成5(非常喜歡),短時間內(nèi)關(guān)閉映射成1(興趣不高)。推薦系統(tǒng)可以借助這種方式對用戶行為數(shù)據(jù)進行預(yù)處理,為用戶建立用戶喜好畫像。
推薦系統(tǒng)根據(jù)預(yù)處理后的用戶畫像與物品組成的用戶-物品矩陣(User-Item矩陣),生成推薦列表。在Netflix Prize推薦算法競賽中,涌現(xiàn)出一批優(yōu)秀的推薦方法,矩陣分解方法是最流行和成功的方法。矩陣分解方法的本質(zhì)是將User-Item稀疏矩陣分解成為兩個低維隱含向量矩陣,這兩個矩陣分別是用戶-隱含向量和隱含向量-物品矩陣,通過將這兩個低維矩陣相乘,得到原矩陣的一個相似非稀疏矩陣,用這個矩陣中的元素代表原User-Item矩陣中的缺失元素,得到一個top-k的推薦列表,推薦給用戶。圖1表明了矩陣分解應(yīng)用在推薦系統(tǒng)的原理。

圖1 矩陣分解應(yīng)用在推薦系統(tǒng)
在物品推薦中,用戶與物品相互作用產(chǎn)生的文本、情境信息中往往蘊藏著反映用戶對物品的偏好程度的最本質(zhì)信息,挖掘與探索這些信息對提高推薦結(jié)果有積極影響。而在自然語言處理情景中,LDA(Latent Dirichlet Allocation)則為發(fā)現(xiàn)文檔集合主題的方法,作為發(fā)現(xiàn)用戶隱含偏好的方法應(yīng)用在推薦系統(tǒng)中,取得了非常優(yōu)秀的效果。類似的做法還有奇異值分解(SVD)、非負矩陣分解等。
傳統(tǒng)基于協(xié)同過濾的推薦,僅考慮User-Item兩個維度的數(shù)據(jù)。而現(xiàn)實世界中,顯而易見的是,用戶與物品的上下文信息(context)對用戶評價物品有非常大的影響。例如在廣告推薦中,如果廣告的內(nèi)容與用戶正在瀏覽的網(wǎng)頁內(nèi)容高度契合,那么用戶有很大的可能去點擊瀏覽這個廣告。上下文信息是指一切作用在用戶與物品交互時候的信息。例如物品在頁面中的位置,物品與其他物品的關(guān)系,用戶瀏覽物品的時間、地點,以及用戶的社交關(guān)系等信息。在推薦中引入上下文信息稱之為情境感知推薦(CARS,context-aware recommender system)。實踐表明上下文信息的引入對推薦效果的提高具有顯著作用。在考慮上下文信息的推薦中,通常有三種做法:將上下文信息用來過濾user-item矩陣的方式稱為前過濾;在傳統(tǒng)推薦系統(tǒng)產(chǎn)生推薦列表后,用上下文信息對推薦列表進行匹配處理,稱為后過濾;將上下文信息應(yīng)用到推薦系統(tǒng)參數(shù)化模型建模的方式稱為中過濾。
在中過濾方法中,引入上下文信息的方式主要有兩種,一種是概率方法,通過貝葉斯概率等方法將上下文信息轉(zhuǎn)化成現(xiàn)象概率,來預(yù)測在已知上下文信息條件下,用戶與物品相互作用的概率,將預(yù)測高概率的物品集合生成top-k推薦列表;另一種方式是將傳統(tǒng)的user-item二維矩陣擴展成user-item-context三維張量,如圖2通過張量分解的方法將張量分解成三個低維矩陣,再擴展成原張量的相似張量生成推薦列表。圖3表明了CP張量分解。

圖2 CP張量分解

圖3 基于張量分解方法的推薦
在評價推薦系統(tǒng)的評價指標中,通常使用準確率(精度)、召回率(查全率)兩個指標評價推薦系統(tǒng)算法。將推薦的資源數(shù)據(jù)隨機的分割成為兩組數(shù)據(jù)集:訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。準確率是指在完成訓(xùn)練后的推薦系統(tǒng)推薦正確的結(jié)果占整個測試數(shù)據(jù)的比例,反映了推薦系統(tǒng)的準確度;召回率是指推薦系統(tǒng)推薦正確的結(jié)果占推薦中結(jié)果的比例,反映了推薦系統(tǒng)的查全率。召回率與準確率兩個指標相互制約,若只考慮準確率,則系統(tǒng)的覆蓋程度不夠,反之亦然。為了平衡兩者關(guān)系,提出了F-measure值來綜合描述兩者的關(guān)系。
在大數(shù)據(jù)環(huán)境下,推薦系統(tǒng)作為解決信息過載的有效途徑正在受到越來越多學(xué)者的關(guān)注。本文介紹了推薦系統(tǒng),并對推薦系統(tǒng)的核心技術(shù)做了一個初步的介紹,總結(jié)了推薦系統(tǒng)研究中的問題。在推薦系統(tǒng)未來的研究中,應(yīng)對以下方面進行重點關(guān)注:
在過往的推薦系統(tǒng)研究中,針對特定的物品,根據(jù)其特征分析,提出的種種信息融合方式的推薦往往不能推廣到一般,提出的方法缺乏魯棒性。
基于內(nèi)容的推薦在某些領(lǐng)域取得了一定效果,但是不同的待推薦物品對于內(nèi)容的敏感程度是不同的,如何對內(nèi)容的粒度進行有效過濾是一個值得研究的方向。
[1]Peng M,Zeng G,Sun Z, et al. Personalized app recommendation based on app permissions[J]. World Wide Web-internet & Web Information Systems,2017.
[2]Chua T S,Chua T S,Chua T S,et al.Cross-Platform App Recommendation by Jointly Modeling Ratings and Texts[J].Acm Transactions on Information Systems,2017.
[3]劉華鋒,景麗萍,于劍.融合社交信息的矩陣分解推薦方法研究綜述[J].軟件學(xué)報,2018.
[4]余永紅,高陽,王皓,孫栓柱.融合用戶社會地位和矩陣分解的推薦算法[J].計算機研究與發(fā)展,2018.
[5]Sundermann C V,Domingues M A,Conrado M D S, et al. Privileged contextual information for context-aware recommender systems[J]. Expert Systems with Applications An International Journal,2016.
[6]李慧,馬小平,施珺,李存華,仲兆滿,蔡虹.復(fù)雜網(wǎng)絡(luò)環(huán)境下基于信任傳遞的推薦模型研究[J].自動化學(xué)報,2018.
[7]朱天宇,黃振亞,陳恩紅,劉淇,吳潤澤,吳樂,蘇喻,陳志剛,胡國平.基于認知診斷的個性化試題推薦方法[J].計算機學(xué)報,2017.
[8]Xu X,Dutta K,Datta A, et al. Identifying functional aspects from user reviews for functionality‐based mobile app recommendation[J].Journal of the Association for Information Science & Technology,2017.