黎丹雨
(中山大學(xué)新華學(xué)院信息科學(xué)學(xué)院,廣州510000)
隨著互聯(lián)網(wǎng)與信息科技的快速發(fā)展,網(wǎng)上交易業(yè)務(wù)逐漸增多,越來越多的用戶及物品信息形成海量數(shù)據(jù)。用戶要在如此龐大的商品數(shù)據(jù)中找到自己感興趣的內(nèi)容,已成為各個商家及研究人員的熱點(diǎn)問題。推薦系統(tǒng)的誕生在一定程度上解決了該問題,推薦系統(tǒng)的性能也越來越完善。目前,有很多商家已成功將推薦功能融入到網(wǎng)站或應(yīng)用程序中,例如天貓、京東、美團(tuán)、今日頭條、網(wǎng)易云音樂等,這些網(wǎng)站或應(yīng)用程序能很好地向用戶推薦商品、美食、新聞、視頻、音樂等信息。除此之外,還有一些較好的推薦系統(tǒng),例如Amazon 電子商務(wù)推薦系統(tǒng)[1]、Netflix 視頻推薦系統(tǒng)、Last.fm音樂推薦系統(tǒng)[2]等。
推薦的目的就是根據(jù)用戶和物品的屬性信息,以及兩者之間的交互行為,為用戶提供最滿意的物品。推薦系統(tǒng)最常用的算法大致可分為以下幾種:基于內(nèi)容的推薦算法[3],該方法根據(jù)物品之間的相似性進(jìn)行推薦?;谥R的推薦方法[4]能夠?qū)⒂脩舻男枨笥成涞疆a(chǎn)品上?;陉P(guān)聯(lián)規(guī)則的推薦算法[5],該方法根據(jù)已經(jīng)購買的歷史商品,推薦與之最具有相關(guān)性的其他商品。協(xié)同過濾推薦算法[6],該方法依據(jù)對商品的評分來向用戶推薦商品,是應(yīng)用最廣泛的推薦方法之一。
目前,關(guān)于推薦系統(tǒng)的研究還在繼續(xù),劉振鵬[7]將深度學(xué)習(xí)應(yīng)用到推薦系統(tǒng)上,利用深度神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)提取出用戶和項(xiàng)目的隱性特征向量,再將特征向量經(jīng)過改進(jìn)的神經(jīng)協(xié)同過濾得出推薦。吳瓊[8]利用改進(jìn)的聚類算法,結(jié)合Apriori 關(guān)聯(lián)規(guī)則算法和SimRaiik 相似度算法,搭建了高校就業(yè)推薦系統(tǒng)。未翠翠[9]針對AvgSim 算法、KHM 聚類算法和關(guān)聯(lián)規(guī)則FP-Growth 算法進(jìn)行改進(jìn),實(shí)現(xiàn)電影推薦功能。黃賢英等人[10]得到用戶-關(guān)鍵詞偏好矩陣,在該矩陣上進(jìn)行聚類,并利用Logistic 函數(shù)得到用戶-項(xiàng)目的興趣度,在同一簇中,根據(jù)興趣度像用戶推薦項(xiàng)目。高茂庭[11]提出一種融合用戶社交關(guān)系和時(shí)間因素的主題模型推薦算法。王建洋[12]、李佳[13]、汪加林[14]等人將深度學(xué)習(xí)與推薦系統(tǒng)相結(jié)合,在一定程度上提高了推薦性能。鄧旭明[15]在旅游服務(wù)上研究了推薦系統(tǒng)的應(yīng)用。劉奕[16]在音樂推薦上進(jìn)行了研究,提出了基于內(nèi)容語義的推薦模型—卷積循環(huán)神經(jīng)網(wǎng)絡(luò)推薦模型CRNN,該模型學(xué)習(xí)同一音軌文件不同段落之間聯(lián)系的特征,統(tǒng)計(jì)出用戶對于不同類型歌曲的偏好,進(jìn)行音樂推薦。王雨辰[17]利用挖掘的圖像特征和文本信息相結(jié)合的方式進(jìn)行推薦。本文在深入了解推薦模型的原理和性能后,對建立推薦模型的重要因素,用戶和物品,進(jìn)行分析。研究了影響推薦系統(tǒng)性能的多種因素,并進(jìn)行了相應(yīng)的處理和改進(jìn)。
推薦系統(tǒng)可以描述為擬合用戶對物品的滿意度函數(shù)關(guān)系。該函數(shù)的輸入有多個維度,例如用戶畫像、物品特征、時(shí)間、地理位置等,下文將從每個維度對推薦系統(tǒng)性能的影響做系統(tǒng)地分析。
用戶畫像生成的目的就是給用戶加標(biāo)簽,標(biāo)簽可以認(rèn)為是用戶的特征描述的關(guān)鍵。好的特征標(biāo)簽不僅可以使對用戶的刻畫變得更加豐富,還能提升算法的效果。用戶的標(biāo)簽的來源大致可分為兩類。
一類包括用戶的性別、年齡、所在地等,這些信息通常在用戶注冊時(shí)可得到。若用戶在注冊時(shí)未輸入這些內(nèi)容,則系統(tǒng)也可根據(jù)用戶之后的行為預(yù)測出來。一般,不同性別,不同年齡段的用戶感興趣的物品不太一樣,不同所在地的用戶所關(guān)心的內(nèi)容也會有所不同,例如在廣州和武漢的用戶關(guān)心的政策和新聞有差別。另外,這些信息隨時(shí)間變化緩慢,在推薦系統(tǒng)中可用離線處理,當(dāng)數(shù)據(jù)量很大時(shí),也可用Hadoop 集群進(jìn)行批量處理。
另一類信息的來源比較豐富,包括用戶的點(diǎn)擊率、瀏覽、收藏、分享、評論等,標(biāo)識著用戶的興趣所在,這類信息的處理是一項(xiàng)龐大的工程。
用戶畫像的最終生成是結(jié)合這兩類信息構(gòu)建高級標(biāo)簽,可以用簡單的數(shù)據(jù)統(tǒng)計(jì),也可以是復(fù)雜的機(jī)器學(xué)習(xí)模型,這些標(biāo)簽作為推薦系統(tǒng)的依據(jù)之一,標(biāo)識著用戶感興趣的類別、主題、關(guān)鍵詞,等等。
利用機(jī)器學(xué)習(xí)和自然語言處理方法,能夠提煉出用戶的主題、關(guān)鍵詞等標(biāo)簽信息[18],提煉過程是根據(jù)用戶對某些物品產(chǎn)生的行為進(jìn)行建模。
建模過程要考慮粒度問題,例如用戶瀏覽了一個NBA 體育新聞,在一定程度上表明該用戶對體育感興趣。但是用體育這個標(biāo)簽,顯然粒度太粗,用戶可能只對籃球有興趣。若該新聞關(guān)鍵詞和內(nèi)容是關(guān)于詹姆斯的,用人名這個標(biāo)簽,粒度又顯得太細(xì),因?yàn)榻酉聛淼男侣勚锌赡軟]有關(guān)于詹姆斯的,就無法再進(jìn)行推薦,所以選擇合適的粒度非常重要。
標(biāo)簽的選擇要能夠反映用戶的特征,帶有較強(qiáng)的行業(yè)性。例如在新聞推薦中,標(biāo)簽?zāi)軌蚍从吵鲇脩羰菍δ念愔黝}感興趣。在電商服裝推薦中,用戶的偏好是當(dāng)季爆款或是新品多于經(jīng)典款(時(shí)尚度);還是低價(jià)或打折商品(價(jià)格敏感度);或者是高價(jià)商品或限量版(反向價(jià)格敏感度)。
標(biāo)簽要根據(jù)具體情況實(shí)時(shí)處理,假設(shè)給用戶推薦的物品沒有被用戶查看,則要懲罰相關(guān)特征。用戶的標(biāo)簽權(quán)重也要時(shí)刻關(guān)注,用戶隨著時(shí)間的增加,對物品的行為也會發(fā)生變化,可適當(dāng)調(diào)整標(biāo)簽的權(quán)重,例如增加新行為產(chǎn)生的特征權(quán)重,降低舊行為產(chǎn)生的權(quán)重。
與時(shí)間有關(guān)的用戶標(biāo)簽:
(1)點(diǎn)擊與停留
對于電商網(wǎng)站來說,總會存在一些用戶沒有點(diǎn)擊具體的商品,點(diǎn)擊的大部分是目錄網(wǎng)頁,這樣的用戶在電商網(wǎng)站上“瞎逛”。還有一些用戶具體點(diǎn)擊了某個商品,但是該用戶的停留時(shí)間非常短暫,原因可能是誤點(diǎn)或者點(diǎn)進(jìn)去發(fā)現(xiàn)不是自己想要的商品。對于模型建立有用的點(diǎn)擊數(shù)據(jù)是那些被點(diǎn)擊的商品,且停留時(shí)間相對較長和點(diǎn)擊次數(shù)較多的商品。停留時(shí)間的長短和點(diǎn)擊次數(shù)在一定程度上反映了用戶對商品的興趣度。需要注意的是,有些用戶可能在點(diǎn)擊完商品之后,處理其他的事情,導(dǎo)致停留時(shí)間過長。這類數(shù)據(jù)不能反映用戶的真實(shí)興趣,并且該部分?jǐn)?shù)據(jù)所占比例比較少,在預(yù)處理時(shí)可以清除。
由于點(diǎn)擊次數(shù)和停留時(shí)間長短都能夠反映用戶對商品的興趣度,聯(lián)合兩種因素得到商品點(diǎn)擊次數(shù)和停留時(shí)間聯(lián)合因素:
其中,Pij是聯(lián)合因子,表示商品x 被點(diǎn)擊的次數(shù)是j 次,訪問時(shí)停留的時(shí)間是i。α和β分別是停留時(shí)間和點(diǎn)擊次數(shù)的權(quán)重。商品訪問停留的時(shí)間越長,點(diǎn)擊次數(shù)越多,P 值越大,表示用戶對該商品的興趣度越高。
設(shè)T 是商品詳情頁面的停留時(shí)間,則ti是商品i 頁面的停留時(shí)間,N 是商品的點(diǎn)擊次數(shù),nj商品i 的點(diǎn)擊次數(shù)。對停留時(shí)間進(jìn)行離散化處理,0 表示時(shí)間極短,1表示時(shí)間較短,2 表示時(shí)間中等,3 表示時(shí)間較長,4 表示時(shí)間極長。
其中,i 表示停留時(shí)間,j 表示點(diǎn)擊次數(shù),x、m、n 表示商品,P(x)ij表商品x 的停留時(shí)間與點(diǎn)擊次數(shù)的共同影響值。
(2)興趣衰減
用戶對商品的興趣度在一定程度上是隨著時(shí)間進(jìn)行衰減的,即興趣度是隨著時(shí)間動態(tài)變化的。故可引入時(shí)間因素,減少用戶評分的時(shí)間差異性。用戶的收藏、購買商品反映了用戶的興趣度所在,利用收藏商品之間的相似性,可找出用戶的感興趣的商品類型。但是對收藏商品的興趣度可能也會隨著時(shí)間削弱。另外,如果用戶近期再次瀏覽或收藏的商品,則用戶購買該商品的欲望變大。這些都是通過時(shí)間因素來體現(xiàn)的,假設(shè)用戶收藏商品隨時(shí)間的衰減度為γ,其值越大表示衰減越快,γ=0 時(shí)表示不衰減,則用戶興趣度在t天后的衰減程度為(1-γ)t。
同一個用戶具有的很多標(biāo)簽,這些標(biāo)簽的權(quán)重會隨著時(shí)間的變化。這是由于用戶的興趣會隨著時(shí)間的遷移,用戶的特征會在不同階段有不同的表現(xiàn)。可對用戶的每個標(biāo)簽的權(quán)重進(jìn)行計(jì)算。假設(shè)W(U ,t )表示標(biāo)簽t標(biāo)記在用戶U 上的比重,W(U ,t )計(jì)算方式見公式(3)[19]。
其中,w(U,t)表示標(biāo)簽t 用在用戶U 上的次數(shù),ti為i 個標(biāo)簽。
用P(U,t)表示標(biāo)簽t 出現(xiàn)的概率,則:
Uj∈全部用戶,ti∈全部標(biāo)簽,該式分子表示全部用戶的全部標(biāo)簽之和,分母為所有標(biāo)簽為t 的用戶之和。
至此可得,用戶標(biāo)簽的權(quán)重為:用戶標(biāo)簽權(quán)重=行為類型權(quán)重×?xí)r間衰減×(W(U ,t )×P(U ,t ))×行為次數(shù)。行為類型包含用戶的點(diǎn)擊率、瀏覽、收藏、分享、評論等,不同行為可賦予不同的權(quán)重值。
推薦系統(tǒng)還應(yīng)具有實(shí)時(shí)更新標(biāo)簽的能力,用戶的某些信息隨著時(shí)間更新較快,這就要求推薦系統(tǒng)能隨時(shí)捕捉用戶的行為,推薦模型也要及時(shí)更新。通常的處理辦法是進(jìn)行流式處理,利用Spark 或Storm 實(shí)時(shí)更新。
(1)物品特征處理
不同網(wǎng)站主營的業(yè)務(wù)不同,所面對的物品也不一樣,商家需要考慮提取平臺上物品的特征,根據(jù)物品特征找到相似內(nèi)容的物品關(guān)鍵詞和主題,并與用戶標(biāo)簽進(jìn)行匹配,從而進(jìn)行推薦。提取物品特征可以分為文本分析、圖片分析、語音分析、視頻分析等。
對于文本來說,可對其進(jìn)行自然語言處理[20],抽取語義標(biāo)簽,并為該文本打上標(biāo)簽。圖片分析主要是分析識別圖片中的目標(biāo)[21],并標(biāo)記。語音分析[22],可通過訓(xùn)練模型,使其具有語言理解和情緒偵測的能力。
(2)其他因素
一個好的推薦系統(tǒng)融合了多種算法推薦算法,因?yàn)槟壳斑€沒有一個算法能夠適用于所有的推薦場合。另外,物品的推薦次數(shù)和頻率也會影響著用戶對推薦系統(tǒng)的喜愛程度。推薦頻率過高和過低,都會給用戶帶來不好的體驗(yàn)。推薦系統(tǒng)還應(yīng)具有信息過濾的功能,對于一些不健康的負(fù)面物品,要及時(shí)過濾。有時(shí),推薦系統(tǒng)在推薦物品的同時(shí),也要考慮環(huán)境和季節(jié)等因素,否則會做出無效推薦。
基于前人的研究以及成功商家的推薦案例,本文對推薦系統(tǒng)的工作過程和影響推薦系統(tǒng)的性能因素進(jìn)行了研究,并對用戶標(biāo)簽的形成過程進(jìn)行建模。具有標(biāo)簽的用戶和提取出來的物品特征(主題、關(guān)鍵詞等)進(jìn)行匹配,將匹配程度高的物品推薦給當(dāng)前用戶。對推薦系統(tǒng)中的實(shí)時(shí)處理進(jìn)行了說明,為后續(xù)研究提高推薦系統(tǒng)的性能打下基礎(chǔ)。