王偉玉
(1.中國科學院計算技術研究所 北京 100190)(2.中國科學院大學 北京 100190)
推薦系統主要根據用戶的歷史行為記錄來分析并挖掘用戶的興趣偏好,預測用戶的行為,從而對用戶做出相應推薦。推薦系統在網絡和電子商務領域得到了廣泛應用。
電商平臺會產生并記錄下海量的用戶購物行為數據,這些行為數據通常是按照時間順序被記錄下來,因此可以從中挖掘時序、用戶偏好等有價值的特征用于為用戶提供個性化推薦。但在現實生活中,用戶一般是在不同時間(可能為某時間點或較短時間段)購買一系列的商品。由于時間間隔較短,這些購物行為通常無明顯的時序特征。另一方面,對于用戶的拼單行為,很多購物行為會同時發生,這些購物行為就不能按時序進行分析。所以,需要將用戶購物歷史數據按時間順序切分到不同的購物籃,把購物籃內的商品當作一個整體,忽略內部的時間順序,只研究購物籃之間的時間順序[1]。
推薦系統的大多相關研究側重于把每個商品看作獨立整體,對其單獨進行推薦,未考慮商品間的時序相關性。但在真實情況中,用戶的購物籃里往往同時含有幾件商品,它們很可能是有聯系的,而非彼此獨立。有研究表明用戶購物籃中的商品會影響其下一個購物籃中的商品,即用戶的歷史交易記錄對用戶的下次購買行為有較強的關聯性。
下一個購物籃推薦[2~3](next basket recommen?dation)就是基于上述背景提出的,在推薦系統中,已成為備受關注且有重大意義的任務。
下一個購物籃推薦根據用戶的歷史購買記錄(通常是交易序列)預測用戶下一時刻的購買行為,旨在給用戶推薦下次購物籃中可能想購買的一些商品。下一個購物籃推薦是基于用戶隱性反饋行為(如點擊或購買等)的推薦系統的一個典型應用。
從對用戶反饋行為數據建模的不同角度出發,下一個購物籃推薦的建模方法主要分為三種:總體推薦模型[4~7]、時序推薦模型[8~9]和混合推薦模型[10~14]。
總體推薦模型把用戶歷史購買的商品都放入一個集合中,根據用戶的整個購物歷史做出推薦,學習總體偏好,不考慮用戶行為的時序特征。
時序推薦模型將用戶的購物交易視為時間序列,根據用戶之前的購物歷史預測下一次購買,捕獲用戶的時序行為進行推薦。
混合推薦模型同時考慮用戶的時序行為和總體偏好,綜合上述兩種模型的特點,以獲得更好的推薦。
在實際應用中,上述方法均有可取之處,同時也存在不足。本文對下一個購物籃推薦算法整理分析,闡述每種方法的優勢和不足,并貫穿了該算法的發展情況、存在問題和研究現狀。最后對下一個購物籃推薦的發展進行總結,并提出了四點其未來可研究發展的方向,加以展望。
為了實現下一個購物籃推薦的目標,從不同角度對用戶反饋行為數據進行建模。表1 總結了現有的下一個購物籃推薦算法。接下來對下一個購物籃推薦算法進行詳細介紹。
總體推薦模型(General Recommender)是指根據用戶的整個購物歷史記錄來預測用戶下一時刻的購買行為,通過學習挖掘出用戶通常感興趣的商品,產生推薦結果[12,16]。該模型不考慮用戶行為的時序特征,能捕獲到用戶的總體偏好。其中最廣泛使用的是協同過濾推薦。
協同過濾(Collaborative Filtering,CF)推薦算法[15]被認為是當前最廣泛認可和采用的推薦技術之一,協同過濾的目標是根據用戶先前的喜好和其他志趣相投的用戶意見推測該用戶感興趣的信息對其進行個性化推薦。在下一個購物籃推薦系統中,可用該算法對用戶下次的購物做預測。
協同過濾推薦算法主要分為兩類[4]:基于記憶的(Memory-based)和基于模型的(Model-based)協同過濾算法。基于記憶的協同過濾算法為用戶選擇興趣相近的鄰居用戶,根據鄰居用戶對其他商品的評分預測此用戶對商品的喜好程度。其中基于記憶的算法又包含了基于用戶和基于項目的協同過濾算法[15]。基于用戶的協同過濾算法主要是找相似的用戶,基于項目的協同過濾算法關鍵在于找相似的商品。Goldberg等[5]的工作屬于基于用戶的協同過濾算法。基于模型的協同過濾算法通過訓練出用戶評分模型,利用此模型預測未知數據,來進行推薦[17],該算法通常應用貝葉斯網絡、聚類、矩陣分解、基于規則等模型[4],其中矩陣分解(Matrix Factorization,MF)是成功的協同過濾模型[6],它是分解由用戶整個歷史購物記錄數據構建的用戶-項目矩陣,用戶的總體偏好可以由潛在向量表示,再據此預測用戶下次可能買入的商品。例如,某運動員總是買各種運動器材,通過潛在向量可能看出他對運動感興趣,因此對其推薦運動用品。雖然該模型相對簡單直接,易于實現,預測效果較好,但由于用戶評過分的項目往往有限,使得用戶-項目矩陣具有稀疏性,對推薦質量造成不好的影響。

表1 現有的下一個購物籃推薦算法總結
Lee 等[7]提出一種將二元邏輯回歸模型與主成分分析相結合的協同過濾推薦模型,其中對購物籃數據(二元評分矩陣)中的項目做主成分分析,使用主成分作為預測變量,用二元邏輯回歸模型進行分類。該模型有助于解決稀疏性問題,推薦效果有明顯改進。但對于在線推薦系統,需要定期更新模型。
協同過濾模型的優勢是能捕獲用戶的總體偏好,但難以考慮用戶歷史購物交易記錄的時序特征。
由于用戶的行為會受其歷史行為的影響,因此研究人員逐漸認識到序列信息在推薦系統中的重要性[18]。時序推薦模型(Sequential Recommender)將用戶的交易行為視為時間序列,旨在根據用戶之前的交易信息預測下一次想購買的商品(如用戶購買了一個茶壺,下一次可能會為其推薦買了該茶壺用戶買過的茶葉)。時序推薦模型的主要優勢是能捕獲用戶的時序行為,即交易商品間的時序關系,來進行推薦。
由于馬爾可夫鏈是一種研究狀態轉移和變化的理論,很多研究將其應用在時間序列分析中,通過分析變量的最近或現在的變化情況預測其未來變化狀態。在時序推薦模型中基于馬爾可夫鏈模型對用戶進行下次所需項目的推薦是典型方法。
在一個隨機過程中,如果事件發生概率在t 時刻所處的狀態為已知時,它在t+1 時刻只與t 時刻的狀態有關,則稱該過程具有馬爾可夫性。時間和狀態都是離散的馬爾可夫過程稱為馬爾可夫鏈(Markov Chain,MC)[21]。基于馬爾可夫鏈的時序推薦模型是根據用戶上一時刻的交易行為來預測用戶下一時刻的交易行為,充分利用時序行為數據,考慮用戶行為的時序特征來進行推薦。
Shani等[19]提出一種基于n-gram[20]的馬爾可夫鏈預測模型,并表明馬爾可夫鏈預測模型對下一個購物籃推薦是有效的。
隱馬爾可夫嵌入(Latent Markov Embedding,LME)模型[8]將用戶現有的音樂播放列表作為訓練數據,學習歌曲的向量表示,用來為用戶自動生成音樂播放列表。隱馬爾可夫嵌入算法不需要歌曲的內容特征,而是通過使用歐幾里得距離嵌入,自動從樣本播放列表中學習歌曲及歌曲序列的一般向量表示(類似于協同過濾的矩陣分解方法,使用用戶歷史行為來做未來推薦)。在隱空間中播放列表視為馬爾可夫鏈,每首歌曲被學習表示為該空間中的點。實證表明,該模型優于n-gram 序列模型,精確度更高,因為它未將序列元素看作原子,而是提供了在歐幾里得空間里歌曲的一般表示。
個性化馬爾可夫嵌入(Personalized Markov Embedding,PME)模型[9]對LME 模型[8]進行了擴展,用于對在線卡拉OK 用戶進行下一首歌曲推薦。個性化馬爾可夫嵌入模型能有效地將歌曲向量表示和用戶偏好結合,根據用戶唱的最后一首歌,對候選歌曲的向量表示打分排序產生下一首推薦歌曲。他們首次提出將歌曲和用戶一起嵌入到歐幾里得空間中。在該空間里,歌曲和用戶的距離反映它們的關系度。個性化馬爾可夫嵌入模型可以在不需要歌曲任何內容信息,僅憑與用戶唱歌的互動史的情況下捕獲用戶偏好。
基于馬爾可夫鏈的時序推薦模型能從用戶的歷史交易數據中捕獲用戶時序偏好,但由于隨機過程的馬爾可夫性,總體偏好很難獲得,而且該類模型是對相鄰的時序行為進行建模,研究相鄰狀態間的聯系,捕獲的是用戶交易的局部時序特征,還不能提取全局時序特征。
由于用戶下一次購買的商品不僅受之前所交易商品的影響,還與用戶的興趣(喜歡什么商品)密切相關。因此,可通過同時考慮用戶交易序列的時序特征和用戶總體偏好,綜合總體推薦模型和時序推薦模型的特點,構建混合推薦模型(Hybrid Rec?ommender),達到更好的推薦效果。其中,分解個性化馬爾可夫鏈模型[10]將馬爾可夫鏈與矩陣分解相結合,在對時序行為建模的同時捕獲了用戶的總體偏好,朝此方向邁進了一步。
分解個性化馬爾可夫鏈模型[10](Factorizing Personalized Markov Chains,FPMC)為每個用戶先創建獨立轉移矩陣,再通過這些轉移矩陣得到轉移矩陣立方體,對立方體進行張量分解可得到用戶、商品間的關系。因為分解時考慮了用戶整個購物歷史,而且可以對每兩個相鄰購物籃之間的時序行為進行建模,所以FPMC 模型綜合考慮了用戶總體偏好(通過用戶和商品的相互影響)和局部時序行為(通過相鄰購物籃間商品的相互影響)。實驗結果表明它比單獨的總體推薦模型和時序推薦模型推薦效果更好。但由于FPMC 模型基于馬爾可夫鏈假設,只研究了相鄰兩個購物籃的聯系,所以仍不能提取用戶行為的全局時序特征。而且,FPMC模型是矩陣分解(Matrix Factorization,MF)和非個性化馬爾可夫鏈(Factorizing unpersonalized Markov chain,FMC)的線性組合,它只能對多個因素進行線性操作,不能捕獲因素間的復雜關聯。然而,在實際情況中,影響用戶下次購買有多個關聯因素,描繪他們間的相互作用很有價值。
近年來,隨著人工神經網絡被廣泛應用于計算機視覺、語音識別和自然語言處理等領域,并取得了突破性進展。很多研究者也將神經網絡模型應用到下一個購物籃推薦系統中,表現甚佳。
神經網絡模型用于下一個購物籃推薦的優勢主要體現在:神經網絡模型自身結構是層次化和序列化的,其中包括多層次的非線性操作,能自動地從輸入特征中學習到更高級抽象的特征,捕獲到因素間的復雜聯系。能有效地利用大規模數據的優勢和高性能計算能力,通過神經網絡模型靈活的結構,學習到更豐富的數據表示。
2015 年蘭艷艷等[11]首次提出將神經網絡用于下一個購物籃推薦。該神經網絡模型NN-Rec 由輸入層、隱藏層和輸出層構成。首先,輸入層將用戶向量和用戶購物歷史里的(近k 個購物籃里的)商品向量拼接來獲得特征向量。然后隱藏層通過非線性操作將得到的特征向量進行空間轉換,最后輸出層通過softmax 函數的映射得到候選商品的概率來進行預測推薦。可以看出,NN-Rec 模型融合了用戶總體偏好和時序行為(即,商品間的時序依賴)。該模型與FPMC 模型相比效果更好:NN-Rec模型可以通過改變輸入層的k 來捕獲最近多個購物籃產生的影響,而FPMC 模型僅能捕獲最近1 個購物籃產生的影響,即NN-Rec 模型可以捕獲更長的時序依賴。而且在輸入層可以在不改變模型框架的情況下加入其它特征,相對靈活。NN-Rec 模型可通過選擇能捕獲更長時序依賴的神經網絡,加入其它特征來進行改進。
由于現實生活中用戶的興趣因素和交易序列因素并非各自獨立地對下一次購買產生影響。例如,用戶通常喜歡看科幻類型的電影,但是近期迷上了一個喜劇明星,看了該喜劇明星出演的喜劇電影,綜合用戶興趣和時序特征,下一次更好地推薦是該喜劇明星出演的科幻電影。然而基于興趣因素和時序因素假設獨立的情況下,僅對兩者進行線性組合,理想的更好推薦可能無法獲得較高的推薦分數,得不到期待的推薦效果。因此,基于神經網絡的層次表達模型(Hierarchical Representation Model,HRM)[12]被提出來更好地解決下一個購物籃推薦中遇到的問題:該模型不僅能綜合考慮買一件商品導致買另一件商品的這種時序行為和用戶的總體偏好,而且通過在層間對表示向量使用非線性的聚合操作,能捕獲到用戶興趣向量和商品特征向量的非線性關系,即能對不同因素間的復雜聯系建模,捕獲到這些因素間的潛在影響。此模型有三層:第一層對用戶上一個購物籃里的商品向量進行聚合操作,得到交易向量;第二層對用戶向量和第一層得到的交易向量進行聚合,得到混合向量;第三層將得到的混合向量與候選商品向量進行點積操作,再通過softmax 函數的映射,得到該候選商品出現在下一個購物籃中的概率。從而達到預測并推薦的目的。但該模型的不足是只能在每兩個相鄰籃子之間建立局部時序行為,而有時兩個相鄰籃子間可能不存在關聯。
為了在訓練模型中獲得更好地特征表達,更充分地挖掘因素間的復雜聯系,練緒寶等[13]利用了用戶多種不同類型的隱性反饋行為(點擊、收藏、加入購物車等),通過使用深度學習里的卷積神經網絡對下一個購物籃推薦問題進行建模。依據時間順序把從多角度刻畫后的用戶行為特征變換為二維平面作為卷積神經網絡的輸入,多窗口卷積層獲取其局部特征,池化層獲取其總體特征,來進行模型訓練。從而充分挖掘用戶和商品特征間的內在聯系,將用戶對商品的時序行為和偏好相結合。與協同過濾推薦算法、基于馬爾可夫鏈的時序推薦模型不同,該模型把在下一時刻用戶是否購買某商品作為二元分類問題,實驗結果表明該分類方法對預測將來固定時間內的購買行為更有效。
循環神經網絡(RNN)是一種用于序列建模的深度學習方法,已被證明可以有效地捕獲用戶時序行為[22],并具有對用戶整個歷史交易信息建模的能力。為了能挖掘出購物籃間的全局聯系,一種基于RNN 的新模型-動態循環籃子模型(Dynamic RE?current bAsket Model,DREAM)[14]被提出,采用RNN對反映購物籃間相互作用的全局時序特征建模,并使用RNN 的隱狀態表示用戶隨時間變化的興趣動態。DREAM 模型不僅學習用戶特征向量的表達、考慮了用戶興趣,還能對用戶所有時序的購物籃之間建立全局時序特征。它是通過使用迭代的方法學習用戶的向量表達,所以新的用戶的特征向量表達可以基于當前向量來更新。而層次表達模型HRM 需要對新建的用戶商品矩陣進行分解來獲得用戶的向量表示。DREAM模型在輸入層使用了非線性(最大池化)操作來學習購物籃的向量表示,表明非線性的聚合操作確實能很好地捕獲商品多因素間的關聯,獲得更好的推薦效果。循環協同過濾模 型(Recurrent Collaborative Filtering,RCF)[16]將RNN 和矩陣分解相結合,也捕獲了用戶的總體偏好和交易的全局時序特征。
由此可見,基于神經網絡的混合推薦模型不僅能考慮用戶偏好,還能捕獲用戶交易的全局時序特征,通過其非線性操作來學習影響購買的因素間的關聯性,提高了下一個購物籃推薦系統的性能,能對用戶產生更加準確的推薦結果,還有很大的發展完善空間。
雖然現有的下一個購物籃推薦算法有很多優點,但仍存在問題,有很大的發展潛力。本節對下一個購物籃推薦的未來研究方向加以展望。
1)更好地學習交易的時序特征。循環神經網絡RNN 雖然在處理序列數據獲得了很好的效果,由于其網絡結構中存在閉環,使得之前的信息特征得以保留,理論上可以處理長期的時序依賴問題。但是傳統RNN 在信息訪問當前處理單元之前,需按順序通過所有之前的單元,隨著網絡層數增多,信息變長,RNN 在訓練過程中易遭受梯度消失或梯度爆炸問題,這樣就很難學到長期的時序特征。在下一個購物籃推薦中隨著用戶歷史交易信息的增加,傳統RNN 捕獲用戶交易的時序特征的全面性可能會下降,影響推薦效果。因此,如何更好地學習用戶交易的時序特征,值得被研究。為了解決RNN 中的梯度問題,長短期記憶網絡(Long Short-Term Memory,LSTM)和門控循環單元(Gat?ed Recurrent Unit,GRU)被提出,它們通過在輸入和循環輸入上使用門來調節網絡中的信息流,從而能捕獲更長的時序依賴。IndRNN[23]已被證明可以處理比現有RNN 更長的序列。可嘗試將LSTM、GRU 和IndRNN 等能學習長期依賴的神經網絡模型應用到下一個購物籃推薦系統中,能捕獲更長的用戶交易時序特征。
2)引入更精細豐富的用戶和商品特征。提供準確的推薦需要對用戶的興趣和真正需求,以及商品的特征有深入的了解[24]。現有的下一個購物籃推薦模型往往忽略了對用戶和商品的屬性特征進行建模,比如對用戶的年齡、性別,商品的類型、價格,這些對用戶做出的購買決定都非常重要。為了在下一個購物籃推薦中引入重要的商品屬性,屬性感知神經注意力模型(Attribute-aware Neural Atten?tive Model,ANAM)[25]被提出,通過使用聯合學習函數,將分別采用了注意力機制的商品和其類別信息進行整合,有效地捕獲了用戶的興趣動態,并驗證了屬性信息可提高推薦效果。未來的研究中可考慮在建模時進行用戶畫像,更細致地考慮不同類型用戶的偏好特點。另一方面,模型中引入更詳細的商品信息,如評論信息、價格信息等,來更好地捕捉用戶對商品的興趣變化,并研究多因素對用戶購買決策的影響[25]。
3)多維度推薦研究。當前的下一個購物籃推薦大多是基于用戶和商品兩個維度進行研究。然而用戶對商品的選擇通常會受到很多外界因素的影響,比如在特定的節日、地理位置購買有特定意義的商品,某商品在某時間段內非常流行等,這些因素僅從用戶和商品自身特征是無法捕獲的。有研究表明,將傳統的二維用戶-項目推薦方法擴展到多維很有意義[26]。因此,可以根據具體場景和實際情況,將除了用戶和商品以外的維度信息(如地理維度)考慮進下一個購物籃推薦的研究中。
4)推薦的可解釋性。相關研究發現恰當的推薦理由可以提高用戶對給出的推薦結果的接受程度和對系統的信任度[27],獲得更高的推薦成功率。基于協同過濾的下一個購物籃推薦模型可以通過以相似用戶的購買,例如“購買了該產品的用戶也購買了”,為推薦理由對用戶進行推薦,有一定的可解釋性。然而,神經網絡模型本身缺乏可解釋性,用其進行可解釋性推薦是項艱巨的任務。基于神經網絡的下一個購物籃推薦模型對于模型中所學習出來的特征向量,如用戶偏好向量和商品屬性向量難以直觀地解釋。如何向用戶解釋推薦結果,給出個性化多樣的推薦理由而不只是基于單一、無新意的理由模版及解釋可視化展示都值得進行更好的研究。
所以還需對下一個購物籃推薦算法進一步地研究和改進,這對該領域的發展有重要的意義。
本文首先闡述了下一個購物籃推薦與普通推薦系統的區別、內涵及研究意義,并對其做基本介紹,然后對下一個購物籃推薦主要的三種方法:總體推薦模型、時序推薦模型和混合推薦模型進行分析,其中總體推薦模型主要介紹了基于協同過濾的總體推薦模型,時序推薦模型介紹了基于馬爾可夫鏈的時序推薦模型,混合推薦模型介紹了分解個性化馬爾可夫鏈模型[10]和基于神經網絡的混合推薦模型,闡述了每種方法的優勢和不足,并貫穿了下一個購物籃推薦算法的發展情況、存在問題和研究現狀,最后提出了四點下一個購物籃推薦未來可研究和改進的方向。本文的撰寫希望為該領域的人員及后續研究提供有益的參考。