黎丹雨
(中山大學新華學院信息科學學院,廣州510000)
隨著互聯網與信息科技的快速發展,網上交易業務逐漸增多,越來越多的用戶及物品信息形成海量數據。用戶要在如此龐大的商品數據中找到自己感興趣的內容,已成為各個商家及研究人員的熱點問題。推薦系統的誕生在一定程度上解決了該問題,推薦系統的性能也越來越完善。目前,有很多商家已成功將推薦功能融入到網站或應用程序中,例如天貓、京東、美團、今日頭條、網易云音樂等,這些網站或應用程序能很好地向用戶推薦商品、美食、新聞、視頻、音樂等信息。除此之外,還有一些較好的推薦系統,例如Amazon 電子商務推薦系統[1]、Netflix 視頻推薦系統、Last.fm音樂推薦系統[2]等。
推薦的目的就是根據用戶和物品的屬性信息,以及兩者之間的交互行為,為用戶提供最滿意的物品。推薦系統最常用的算法大致可分為以下幾種:基于內容的推薦算法[3],該方法根據物品之間的相似性進行推薦?;谥R的推薦方法[4]能夠將用戶的需求映射到產品上。基于關聯規則的推薦算法[5],該方法根據已經購買的歷史商品,推薦與之最具有相關性的其他商品。協同過濾推薦算法[6],該方法依據對商品的評分來向用戶推薦商品,是應用最廣泛的推薦方法之一。
目前,關于推薦系統的研究還在繼續,劉振鵬[7]將深度學習應用到推薦系統上,利用深度神經網絡和卷積神經網絡提取出用戶和項目的隱性特征向量,再將特征向量經過改進的神經協同過濾得出推薦。吳瓊[8]利用改進的聚類算法,結合Apriori 關聯規則算法和SimRaiik 相似度算法,搭建了高校就業推薦系統。未翠翠[9]針對AvgSim 算法、KHM 聚類算法和關聯規則FP-Growth 算法進行改進,實現電影推薦功能。黃賢英等人[10]得到用戶-關鍵詞偏好矩陣,在該矩陣上進行聚類,并利用Logistic 函數得到用戶-項目的興趣度,在同一簇中,根據興趣度像用戶推薦項目。高茂庭[11]提出一種融合用戶社交關系和時間因素的主題模型推薦算法。王建洋[12]、李佳[13]、汪加林[14]等人將深度學習與推薦系統相結合,在一定程度上提高了推薦性能。鄧旭明[15]在旅游服務上研究了推薦系統的應用。劉奕[16]在音樂推薦上進行了研究,提出了基于內容語義的推薦模型—卷積循環神經網絡推薦模型CRNN,該模型學習同一音軌文件不同段落之間聯系的特征,統計出用戶對于不同類型歌曲的偏好,進行音樂推薦。王雨辰[17]利用挖掘的圖像特征和文本信息相結合的方式進行推薦。本文在深入了解推薦模型的原理和性能后,對建立推薦模型的重要因素,用戶和物品,進行分析。研究了影響推薦系統性能的多種因素,并進行了相應的處理和改進。
推薦系統可以描述為擬合用戶對物品的滿意度函數關系。該函數的輸入有多個維度,例如用戶畫像、物品特征、時間、地理位置等,下文將從每個維度對推薦系統性能的影響做系統地分析。
用戶畫像生成的目的就是給用戶加標簽,標簽可以認為是用戶的特征描述的關鍵。好的特征標簽不僅可以使對用戶的刻畫變得更加豐富,還能提升算法的效果。用戶的標簽的來源大致可分為兩類。
一類包括用戶的性別、年齡、所在地等,這些信息通常在用戶注冊時可得到。若用戶在注冊時未輸入這些內容,則系統也可根據用戶之后的行為預測出來。一般,不同性別,不同年齡段的用戶感興趣的物品不太一樣,不同所在地的用戶所關心的內容也會有所不同,例如在廣州和武漢的用戶關心的政策和新聞有差別。另外,這些信息隨時間變化緩慢,在推薦系統中可用離線處理,當數據量很大時,也可用Hadoop 集群進行批量處理。
另一類信息的來源比較豐富,包括用戶的點擊率、瀏覽、收藏、分享、評論等,標識著用戶的興趣所在,這類信息的處理是一項龐大的工程。
用戶畫像的最終生成是結合這兩類信息構建高級標簽,可以用簡單的數據統計,也可以是復雜的機器學習模型,這些標簽作為推薦系統的依據之一,標識著用戶感興趣的類別、主題、關鍵詞,等等。
利用機器學習和自然語言處理方法,能夠提煉出用戶的主題、關鍵詞等標簽信息[18],提煉過程是根據用戶對某些物品產生的行為進行建模。
建模過程要考慮粒度問題,例如用戶瀏覽了一個NBA 體育新聞,在一定程度上表明該用戶對體育感興趣。但是用體育這個標簽,顯然粒度太粗,用戶可能只對籃球有興趣。若該新聞關鍵詞和內容是關于詹姆斯的,用人名這個標簽,粒度又顯得太細,因為接下來的新聞中可能沒有關于詹姆斯的,就無法再進行推薦,所以選擇合適的粒度非常重要。
標簽的選擇要能夠反映用戶的特征,帶有較強的行業性。例如在新聞推薦中,標簽能夠反映出用戶是對哪類主題感興趣。在電商服裝推薦中,用戶的偏好是當季爆款或是新品多于經典款(時尚度);還是低價或打折商品(價格敏感度);或者是高價商品或限量版(反向價格敏感度)。
標簽要根據具體情況實時處理,假設給用戶推薦的物品沒有被用戶查看,則要懲罰相關特征。用戶的標簽權重也要時刻關注,用戶隨著時間的增加,對物品的行為也會發生變化,可適當調整標簽的權重,例如增加新行為產生的特征權重,降低舊行為產生的權重。
與時間有關的用戶標簽:
(1)點擊與停留
對于電商網站來說,總會存在一些用戶沒有點擊具體的商品,點擊的大部分是目錄網頁,這樣的用戶在電商網站上“瞎逛”。還有一些用戶具體點擊了某個商品,但是該用戶的停留時間非常短暫,原因可能是誤點或者點進去發現不是自己想要的商品。對于模型建立有用的點擊數據是那些被點擊的商品,且停留時間相對較長和點擊次數較多的商品。停留時間的長短和點擊次數在一定程度上反映了用戶對商品的興趣度。需要注意的是,有些用戶可能在點擊完商品之后,處理其他的事情,導致停留時間過長。這類數據不能反映用戶的真實興趣,并且該部分數據所占比例比較少,在預處理時可以清除。
由于點擊次數和停留時間長短都能夠反映用戶對商品的興趣度,聯合兩種因素得到商品點擊次數和停留時間聯合因素:

其中,Pij是聯合因子,表示商品x 被點擊的次數是j 次,訪問時停留的時間是i。α和β分別是停留時間和點擊次數的權重。商品訪問停留的時間越長,點擊次數越多,P 值越大,表示用戶對該商品的興趣度越高。
設T 是商品詳情頁面的停留時間,則ti是商品i 頁面的停留時間,N 是商品的點擊次數,nj商品i 的點擊次數。對停留時間進行離散化處理,0 表示時間極短,1表示時間較短,2 表示時間中等,3 表示時間較長,4 表示時間極長。

其中,i 表示停留時間,j 表示點擊次數,x、m、n 表示商品,P(x)ij表商品x 的停留時間與點擊次數的共同影響值。
(2)興趣衰減
用戶對商品的興趣度在一定程度上是隨著時間進行衰減的,即興趣度是隨著時間動態變化的。故可引入時間因素,減少用戶評分的時間差異性。用戶的收藏、購買商品反映了用戶的興趣度所在,利用收藏商品之間的相似性,可找出用戶的感興趣的商品類型。但是對收藏商品的興趣度可能也會隨著時間削弱。另外,如果用戶近期再次瀏覽或收藏的商品,則用戶購買該商品的欲望變大。這些都是通過時間因素來體現的,假設用戶收藏商品隨時間的衰減度為γ,其值越大表示衰減越快,γ=0 時表示不衰減,則用戶興趣度在t天后的衰減程度為(1-γ)t。
同一個用戶具有的很多標簽,這些標簽的權重會隨著時間的變化。這是由于用戶的興趣會隨著時間的遷移,用戶的特征會在不同階段有不同的表現??蓪τ脩舻拿總€標簽的權重進行計算。假設W(U ,t )表示標簽t標記在用戶U 上的比重,W(U ,t )計算方式見公式(3)[19]。
其中,w(U,t)表示標簽t 用在用戶U 上的次數,ti為i 個標簽。
用P(U,t)表示標簽t 出現的概率,則:

Uj∈全部用戶,ti∈全部標簽,該式分子表示全部用戶的全部標簽之和,分母為所有標簽為t 的用戶之和。
至此可得,用戶標簽的權重為:用戶標簽權重=行為類型權重×時間衰減×(W(U ,t )×P(U ,t ))×行為次數。行為類型包含用戶的點擊率、瀏覽、收藏、分享、評論等,不同行為可賦予不同的權重值。
推薦系統還應具有實時更新標簽的能力,用戶的某些信息隨著時間更新較快,這就要求推薦系統能隨時捕捉用戶的行為,推薦模型也要及時更新。通常的處理辦法是進行流式處理,利用Spark 或Storm 實時更新。
(1)物品特征處理
不同網站主營的業務不同,所面對的物品也不一樣,商家需要考慮提取平臺上物品的特征,根據物品特征找到相似內容的物品關鍵詞和主題,并與用戶標簽進行匹配,從而進行推薦。提取物品特征可以分為文本分析、圖片分析、語音分析、視頻分析等。
對于文本來說,可對其進行自然語言處理[20],抽取語義標簽,并為該文本打上標簽。圖片分析主要是分析識別圖片中的目標[21],并標記。語音分析[22],可通過訓練模型,使其具有語言理解和情緒偵測的能力。
(2)其他因素
一個好的推薦系統融合了多種算法推薦算法,因為目前還沒有一個算法能夠適用于所有的推薦場合。另外,物品的推薦次數和頻率也會影響著用戶對推薦系統的喜愛程度。推薦頻率過高和過低,都會給用戶帶來不好的體驗。推薦系統還應具有信息過濾的功能,對于一些不健康的負面物品,要及時過濾。有時,推薦系統在推薦物品的同時,也要考慮環境和季節等因素,否則會做出無效推薦。
基于前人的研究以及成功商家的推薦案例,本文對推薦系統的工作過程和影響推薦系統的性能因素進行了研究,并對用戶標簽的形成過程進行建模。具有標簽的用戶和提取出來的物品特征(主題、關鍵詞等)進行匹配,將匹配程度高的物品推薦給當前用戶。對推薦系統中的實時處理進行了說明,為后續研究提高推薦系統的性能打下基礎。