王屯屯
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
隨著信息化的快速發(fā)展,我們已經(jīng)從信息匱乏時(shí)代轉(zhuǎn)化到了信息過載的階段,推薦系統(tǒng)是為信息提供方和信息消費(fèi)者進(jìn)行友好對接的一個(gè)有效方式。推薦系統(tǒng)幫助商家將自己的產(chǎn)品推銷給合適的用戶,同時(shí)也可以幫助用戶找到自己需要的商品。信息化的快速發(fā)展雖然給我們帶來了信息過載問題,但同時(shí)也為我們提供了大量的數(shù)據(jù),這使得深度學(xué)習(xí)模型再次進(jìn)入人們的視野。本文我們將利用深度學(xué)習(xí)模型為用戶進(jìn)行商品推薦。
我們已經(jīng)熟知的、比較成熟的推薦算法有很多,例如基于協(xié)同過濾的推薦算法[1]、基于內(nèi)容的推薦算法[2]、基于模型的推薦算法[3]等,利用這些推薦算法都能夠給用戶推薦商品。但這些經(jīng)典的推薦算法在根據(jù)用戶歷史購買行為進(jìn)行推薦時(shí),無法考慮用戶購買商品的順序,也就是說,在一般情況下,用戶購買了一個(gè)奶粉,推薦系統(tǒng)認(rèn)為用戶會(huì)同時(shí)奶粉和玩具,于是會(huì)為用戶推薦各種兒童玩具。然而實(shí)際情況是,該用戶可能幾年后才會(huì)購買玩具,現(xiàn)在沒有購買需求,不會(huì)購買推薦系統(tǒng)為其推薦的玩具商品,導(dǎo)致推薦系統(tǒng)準(zhǔn)確率不高。
假設(shè)某個(gè)用戶兩年前開始購買嬰幼兒奶粉,我們認(rèn)為該用戶家庭中添加了一位寶寶。一年前開始購買適合一歲嬰兒穿的衣服,現(xiàn)在對其進(jìn)行商品推薦。從用戶的歷史購物行為分析,發(fā)現(xiàn)該用戶家庭中的寶寶已經(jīng)兩歲了,我們需要為其推薦適合兩歲嬰兒的商品,例如衣服、奶粉、玩具等。傳統(tǒng)的推薦系統(tǒng)雖然也會(huì)為其推薦衣服和奶粉,但是我們提出的模型會(huì)更加準(zhǔn)確地為其推薦適合兩歲嬰兒穿的衣服和奶粉;雖然其他推薦系統(tǒng)也會(huì)為用戶推薦玩具,但是我們的推薦算法會(huì)在合適的時(shí)間進(jìn)行推薦。
本文提出的模型(LSTMBaseRec),主要利用長短期記憶人工神經(jīng)網(wǎng)絡(luò)[4](Long-Short Term Memory,LSTM)進(jìn)行推薦。LSTM模型是一種改進(jìn)的時(shí)間循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),可以學(xué)習(xí)時(shí)間序列長短期依賴信息,由于神經(jīng)網(wǎng)絡(luò)包含時(shí)間記憶單元,比較適合于對時(shí)間序列中的間隔和延遲事件進(jìn)行處理和預(yù)測。
LSTM提出四層門控制的概念,解決了長期依賴問題,分別為輸入門、忘記門、更新門和輸出門。如圖1所示。
輸入門主要包含兩部分,第一部分通過sigmoid函數(shù)決定需要輸入值,第二部分會(huì)通過tanh函數(shù)創(chuàng)建一個(gè)候選值向量并加入到狀態(tài)Ct中,計(jì)算公式如下:
圖1 LSTM四層門控制
忘記門會(huì)讀取上一層的輸入ht-1和當(dāng)前時(shí)間點(diǎn)的輸入xt,輸出數(shù)值ft并賦值給當(dāng)前神經(jīng)元的狀態(tài)Ct-1中,計(jì)算公式如下:
更新門主要用來對舊神經(jīng)元的狀態(tài)進(jìn)行更新,將Ct-1改為 Ct,公式如下:
輸出門主要分為兩部分,首先利用sigmoid函數(shù)決定神經(jīng)元輸出哪個(gè)部分,接著通過tanh函數(shù)對當(dāng)前狀態(tài)進(jìn)行處理,并將其與第一步的輸出相乘。計(jì)算公式如下:
經(jīng)過上面的四個(gè)步驟,可以有效地對時(shí)序信息進(jìn)行處理和預(yù)測。
本文采取準(zhǔn)確性評價(jià)指標(biāo)對模型進(jìn)行評估,主要評價(jià)指標(biāo)包括:平均準(zhǔn)確率(MAP)和召回率(Recall)。其定義如下:
其中U表示系統(tǒng)中所有用戶的集合,hit(u)表示推薦列表中,用戶u購買的商品數(shù)量,H(u)表示用戶u購買的所有商品數(shù)量。
基于物品的協(xié)同過濾算法(ItemCF)給用戶推薦與其之前喜歡的物品相似的物品,通過分析用戶的行為記錄計(jì)算物品之間的相似度,該算法認(rèn)為物品A和物品B具有較高的相似性使用為兩者經(jīng)常同時(shí)出現(xiàn)在同一個(gè)用戶的購買列表中。
協(xié)同過濾算法存在很明顯的問題:數(shù)據(jù)稀疏性和冷啟動(dòng)問題。針對該問題,可以使用物品的內(nèi)容信息解決這兩個(gè)問題。物品的內(nèi)容可以通過向量空間模型表示,該模型會(huì)把物品表示成一個(gè)關(guān)鍵詞向量。基于物品內(nèi)容的推薦算法(ContentBaseKNN),通過計(jì)算物品間的相似度,將與用戶歷史購買商品最相似的前K個(gè)商品推薦給用戶。
基于模型的推薦算法(ModelBaseRank),通過特征工程階段,提取盡可能多的特征對用戶和商品進(jìn)行畫像描述,對于某個(gè)用戶,按照潛在購買概率對所有商品進(jìn)行排序,將前K個(gè)商品推薦給用戶。
實(shí)驗(yàn)數(shù)據(jù)來自于2017年京東大數(shù)據(jù)比賽公開的數(shù)據(jù)集中。該數(shù)據(jù)包括用戶3月至5月的行為動(dòng)作歷史記錄。通過數(shù)據(jù)預(yù)處理以及特征工程后,對于每條訓(xùn)練數(shù)據(jù),均包含200個(gè)特征,如果當(dāng)前用戶對購買了當(dāng)前商品,將類別設(shè)置為1,否則設(shè)置為0。實(shí)驗(yàn)采取離線實(shí)驗(yàn)方法,將數(shù)據(jù)分為訓(xùn)練集,測試集以及驗(yàn)證集,訓(xùn)練集用來對模型進(jìn)行訓(xùn)練,通過模型在測試集的性能來對模型的參數(shù)進(jìn)行設(shè)置,最后將所有的對比模型在驗(yàn)證集上運(yùn)行,對其性能進(jìn)行比較。在將數(shù)據(jù)代入模型前,對其進(jìn)行Softmax歸一化操作。
基于Keras深度學(xué)習(xí)框架,搭建三層RNN神經(jīng)網(wǎng)絡(luò)模型,每一層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中均包含LSTM神經(jīng)元。輸入層的神經(jīng)元個(gè)數(shù)需要與特征數(shù)量保持一致,所以輸入層的神經(jīng)元為200個(gè)。輸出層只需要輸出類別信息,這里只有兩類,所以輸出層的輸出單元為2。需要重點(diǎn)考慮的是隱藏層的神經(jīng)元個(gè)數(shù),這個(gè)可以通過實(shí)驗(yàn)獲取。
設(shè)置每個(gè)神經(jīng)元的激活函數(shù)為常用的sigmoid函數(shù),模型的誤差函數(shù)設(shè)置為均分誤差MSE。根據(jù)這個(gè)誤差函數(shù),模型不斷地進(jìn)行迭代,直到神經(jīng)元之間的連接權(quán)值保持不變或者基本不變。根據(jù)MAP定義公式和Recall定義公式,可以得到如下實(shí)驗(yàn)對比結(jié)果如圖2、圖3所示。
由圖2和圖3可知,本文提出的基于LSTM的推薦算法能夠更加準(zhǔn)確的為用戶進(jìn)行商品推薦。用戶購買下一個(gè)商品與之前的購買行為有著非常緊密的聯(lián)系,但是其他三個(gè)模型沒有考慮到這一點(diǎn)。本文提出的模型,可以隱形地對用戶歷史購買行為進(jìn)行時(shí)序建模,能夠更加準(zhǔn)確地對用戶行為進(jìn)行分析,因此具有較高的準(zhǔn)確性。
圖2 模型的平均準(zhǔn)確率
圖3 模型的召回率
本文提出了基于LSTM的商品推薦模型,基于大數(shù)據(jù)比賽公開的數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn)對比,根據(jù)MAP和Recall等準(zhǔn)確性評價(jià)指標(biāo)的實(shí)驗(yàn)結(jié)果,證明了該模型能夠更好地對用戶進(jìn)行商品推薦。該算法具備一定的擴(kuò)展性,不僅可以用于在線商城的商品推薦,同樣適用于視頻網(wǎng)站的視頻推薦以及音樂網(wǎng)站的音樂推薦。
參考文獻(xiàn):
[1]JB Schafer,F Dan,J.Collaborative Filtering Recommender Systems[J].Web,2007,22(1):291-324.
[2]江周峰,楊俊,鄂海紅.結(jié)合社會(huì)化標(biāo)簽的基于內(nèi)容的推薦算法[J].威者軟件,2015(1):1-5.
[3]李鵬飛,吳為民.基于混合模型推薦算法的優(yōu)化[J].計(jì)算機(jī)科學(xué),2014,41(2):68-71.
[4]K Greff,RK Srivastava,J Koutnik.LSTM:A Search Space Odyssey.IEEE Transactions on Neural Networks&Learning Systems,2017,28(10):2222-2232.