孫淑娟,過 弋,2,3,錢夢(mèng)薇
1(華東理工大學(xué) 信息科學(xué)與工程學(xué)院,上海 200237)2(大數(shù)據(jù)流通與交易技術(shù)國家工程實(shí)驗(yàn)室 商業(yè)智能與可視化研究中心,上海 200237)3(上海大數(shù)據(jù)與互聯(lián)網(wǎng)受眾工程技術(shù)研究中心,上海 200072)
E-mail:guoyi@ecust.edu.cn
在電商行業(yè)中,為特定用戶推薦其偏好的物品以及解決用戶決策困難的問題一直是一個(gè)熱門而且重要的話題.在許多現(xiàn)實(shí)世界的購物場(chǎng)景中,用戶未來的購買意愿很大程度上受歷史行為序列的影響.例如,購買了手機(jī)之后,可能會(huì)購買相關(guān)配件,諸如手機(jī)殼或者手機(jī)貼膜等物品.如果體驗(yàn)較好,可能還會(huì)購買該商品的周邊衍生產(chǎn)品,例如同款服裝或者紀(jì)念品.目前,該領(lǐng)域傳統(tǒng)的算法模型主要是根據(jù)用戶提供的反饋信息進(jìn)行用戶偏好預(yù)測(cè)[1].隨著深度學(xué)習(xí)技術(shù)在自然語言處理、數(shù)據(jù)挖掘、目標(biāo)檢測(cè)、閱讀理解等多個(gè)人工智能領(lǐng)域取得的顯著進(jìn)展,科研人員也開始在推薦算法領(lǐng)域利用深度學(xué)習(xí)(DL,Deep Learning)技術(shù)進(jìn)行不斷的深入研究和探索[2].基于深度學(xué)習(xí)的推薦模型,其核心思想是將用戶、項(xiàng)目交互特征映射至多維空間中,然后通過多層感知機(jī)網(wǎng)絡(luò)去學(xué)習(xí)特征之間的相關(guān)性,最后通過該模型為用戶提供最佳決策.深度學(xué)習(xí)推薦模型的發(fā)展大致可以分為3個(gè)時(shí)期,如表1所示.
表1 深度學(xué)習(xí)推薦模型的3個(gè)發(fā)展時(shí)期Table 1 Development based on deep learning recommendation model
1)發(fā)展初期.其主要特點(diǎn)是依賴于人工特征工程,模型簡(jiǎn)單、參數(shù)空間較小、性能高.主要算法以多層感知機(jī)(MLP)為和深度協(xié)同過濾為基礎(chǔ),利用深度學(xué)習(xí)技術(shù)在復(fù)雜用戶交互空間中訓(xùn)練出有效的用戶特征向量表示.但由于在實(shí)際購物場(chǎng)景中用戶和商品量級(jí)較大經(jīng)過獨(dú)熱編碼之后,存在一定程度的數(shù)據(jù)稀疏等問題.
2)加速發(fā)展時(shí)期.該階段主要算法有FM(Factorization Machine)、FFM(Field-aware Factorization Machines)、GBDT+LR等.FM是一種基于矩陣分解的推薦算法,通過考慮用戶和項(xiàng)目之間的相互關(guān)系[3],解決了one-hot編碼帶來的特征空間較大和大規(guī)模稀疏矩陣中特征組合的問題,而且該模型可以在稀疏的數(shù)據(jù)中進(jìn)行合理的參數(shù)估計(jì),時(shí)間復(fù)雜度低,優(yōu)化效果好.FFM是Yu-Chin Juan等在FM的基礎(chǔ)上提出的引入類別(field)概念后的升級(jí)版本[4],同樣解決了one-hot編碼帶來的數(shù)據(jù)稀疏問題,該模型與FM的不足之處都在于不能進(jìn)行高階的特征組合.GBDT+LR(Gradient Boost Decision Tree + Logistic Regression)是由GBDT來對(duì)訓(xùn)練集提取特征作為新的訓(xùn)練輸入數(shù)據(jù)[5],LR作為新輸入數(shù)據(jù)的分類器,該模型優(yōu)勢(shì)在于方便處理離散化特征,并且模型簡(jiǎn)單,容易實(shí)現(xiàn)分布式計(jì)算.缺點(diǎn)也很明顯,特征之間進(jìn)行特征交互(例:衣服款式和性別或者年齡交叉),需要大量人工特征工程.
3)深入研究時(shí)期.在加速發(fā)展時(shí)期模型的基礎(chǔ)之上進(jìn)行模型組合同時(shí)與深度學(xué)習(xí)技術(shù)相結(jié)合,對(duì)項(xiàng)目的特征表示從獨(dú)熱編碼處理向嵌入低維稠密向量空間發(fā)展[6],通過融合多維度特征進(jìn)行模型訓(xùn)練,進(jìn)而挖掘上下文信息與目標(biāo)之間的聯(lián)系.其中一類是基于FM或DNN(Deep Neural Networks)進(jìn)行組合的模型[7],NFM[8](Neural Factorization Machine)、AFM[9](Attention Factorization Machine)、Deep Crossing[10]等;此外,隨著深度學(xué)習(xí)推薦算法研究的不斷深入,科研人員開始探索將自然語言處理中的句子序列的處理方法應(yīng)用到推薦算法研究中,如word2vec、GRU[11](Gate Recurrent Unit)、BERT[12](Bidirectional Encoder Representation from Transformers)、Transformer等.基于Word2Vec模型Barkan等人提出Item2vec[13],將用戶購買序列中的商品類比NLP中語言處理方式嵌入到低維稠密向量,把物品視為單詞,行為序列視為集合,很好的表示了序列中物品之間的關(guān)系,提高了模型的泛化能力,但忽略了用戶商品交互之間的上下文信息.目前,有關(guān)序列推薦的模型有較為成熟的MC(Markov Chains),經(jīng)典的TransFM[14](Translation-based Factorization Machines for Sequential Recommendation)和基于BERT的BERT4Rec[15]等,都是通過對(duì)序列中物品之間的關(guān)系進(jìn)行建模.大量文獻(xiàn)表明,基于行為序列的推薦模型能夠很好的捕捉到序列中行為之間的依賴關(guān)系,抽取用戶興趣變化特點(diǎn)的強(qiáng)特征向量表示.
盡管以上深度學(xué)習(xí)推薦算法的研究已經(jīng)取得了顯著的進(jìn)展,但在實(shí)際電商購物中仍存在一定程度的問題.例如,用戶可能在某一段時(shí)間內(nèi)收藏化妝品,而在另一段時(shí)間開始對(duì)衣服感興趣,而現(xiàn)有模型較少考慮這種用戶興趣隨時(shí)間變化呈現(xiàn)多樣性的特點(diǎn);大多數(shù)模型只關(guān)注了行為序列對(duì)結(jié)果的影響,忽略了序列中不同行為之間的興趣強(qiáng)度[16].而在實(shí)際購物場(chǎng)景中,用戶的興趣是動(dòng)態(tài)變化的,并且近期和長(zhǎng)期的行為對(duì)用戶最終的購物目的影響程度也是不同的.綜上所述,可以看出,建立融合上下文信息的序列模型來模擬用戶的興趣變化路徑的多樣性特點(diǎn),幫助用戶在面對(duì)海量商品時(shí)快速?zèng)Q策.
本文貢獻(xiàn):
1)提出用戶興趣衰減因子decay_factor,有效反映用戶行為之間的依賴關(guān)系,模擬用戶興趣路徑隨時(shí)間動(dòng)態(tài)變化的特點(diǎn);
2)將用戶行為序列按照行為習(xí)慣劃分為長(zhǎng)期和短期會(huì)話序列形式,利用文本卷積分類(TextCNN)模型自動(dòng)獲取行為序列特征深層次表示,更細(xì)粒度的挖掘用戶潛在興趣特征向量表示;
3)提出融合上下信息的序列模型,基于多頭注意力機(jī)制抽取長(zhǎng)短期行為序列特征向量的潛在表示,位置向量和并行化計(jì)算有效增強(qiáng)序列之間的依賴性和提升模型的性能.
文本卷積分類(TextCNN)是Yoon Kim等提出的將卷積神經(jīng)網(wǎng)絡(luò)CNN應(yīng)用到文本處理的算法[17].與傳統(tǒng)的圖像識(shí)別領(lǐng)域的CNN網(wǎng)絡(luò)相比,TextCNN模型結(jié)構(gòu)簡(jiǎn)單,參數(shù)量小,在網(wǎng)絡(luò)結(jié)構(gòu)上只通過一層卷積和一層池化層輸出向量拼接,通過softmax函數(shù)激活,從而能夠更好地捕捉局部相關(guān)性.在本文中,使用用戶行為序列預(yù)訓(xùn)練好的嵌入向量輸入到TextCNN模型中捕捉序列的局部特征,自動(dòng)進(jìn)行特征篩選獲得不同抽象層次的序列行為潛在向量表征[18].
2.1.1 卷積層
卷積層是TextCNN模型的核心組成,具有局部感知和參數(shù)共享的特點(diǎn),是由一組可學(xué)習(xí)的卷積單元(kernels)組成.自然語言處理中,嵌入向量矩陣的每一行表示句子中每個(gè)單詞的信息.由于句子中相鄰詞之間的相關(guān)性普遍很高,使用TextCNN進(jìn)行卷積操作時(shí),不僅關(guān)注了句子本身的詞義信息,還考慮了詞序之間關(guān)系及其上下文信息.
在本文中,將用戶歷史行為序列行為類比為自然語言中每個(gè)句子中詞與詞之間的關(guān)系,使用TextCNN對(duì)序列嵌入之后的特征向量進(jìn)行卷積操作,不僅能夠關(guān)注行為序列本身的信息,還可以考慮到序列之間的依賴關(guān)系和行為的上下文信息.卷積操作的輸入是序列經(jīng)過嵌入層后得到矩陣A∈m×n,A[i:j]表示A的第i到第j行,卷積操作過程如公式(1)~公式(3)所示.
xi:i+h-1=w·A[i:i+h-1]
(1)
ci=f(w·xi:i+h-1+b)
(2)
c=[c1,c2,…,cn-h+1]
(3)
其中c∈n-h+1表示特征圖(feature-map),b∈為偏置項(xiàng),f為激活函數(shù),常用的有softmax、sigmoid、tanh和relu等.
2.1.2 池化層
2.1.3 全連接層
全連接層(fully connected layers,F(xiàn)C)是在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)傳播過程中起到對(duì)樣本分類的作用.對(duì)于經(jīng)過卷積層、池化層和激活函數(shù)層的特征向量隱層表示空間映射到樣本標(biāo)記空間(分類空間).其本質(zhì)就是特征從一個(gè)向量表示空間線性映射到另一個(gè)向量表示空間.
Transformer是由是由Ashish Vaswan等人在2017年提出的一個(gè)基于多頭注意力機(jī)制(Multi-Head Attention)的模型結(jié)構(gòu)來處理序列模型相關(guān)問題.其結(jié)構(gòu)由編碼和解碼兩部分組成:編碼器有6個(gè)相同的層堆疊而成,每一層有兩個(gè)子層,一層是多頭注意力機(jī)制,另一層是簡(jiǎn)單的全連接層前饋神經(jīng)網(wǎng)絡(luò),然后又接入殘差連接網(wǎng)絡(luò)并進(jìn)行層標(biāo)準(zhǔn)化操作;解碼器和編碼器結(jié)構(gòu)類似,只不過在兩個(gè)子層結(jié)構(gòu)之上又添加了編碼-解碼注意力層.總的來說,其優(yōu)勢(shì)可以歸結(jié)為:1)位置向量和并行化計(jì)算有效增強(qiáng)序列之間的依賴性和提升模型的性能;2)計(jì)算兩個(gè)位置之間的依賴關(guān)系所需計(jì)算次數(shù)不隨距離變長(zhǎng)而增長(zhǎng).
2.2.1 多頭注意力(Multi-Head Attention)
Multi-Head Attention是Transformer中編碼器和解碼器的重要組成部分.其結(jié)構(gòu)如圖1所示,從圖中結(jié)構(gòu)可以看出,對(duì)于初始的Q,K和V向量矩陣,首先分別經(jīng)過線性變換Linear映射到另一個(gè)特征表示空間,然后做h次縮放點(diǎn)積操作.與注意力機(jī)制不同的是Multi-Head Attention采用自注意力機(jī)制(Scaled Dot-Product Attention),在注意力機(jī)制的基礎(chǔ)之上添加了縮放點(diǎn)積操作,從兩方面提高了注意力層的性能:一方面增強(qiáng)了模型專注于不同位置編碼的能力;另一方面自注意力可以提取序列之間自身的依賴關(guān)系,幫助編碼器在對(duì)每個(gè)行為進(jìn)行編碼時(shí)關(guān)注與之相鄰的行為信息.
圖1 多頭注意力機(jī)制Fig.1 Multi-head attention structure
2.2.2 位置向量
由于模型中沒有任何循環(huán)或者卷積操作,不能學(xué)習(xí)序列中的位置順序信息.也就是說,如果將序列中每個(gè)行為之間的關(guān)系打亂不影響Attention的計(jì)算結(jié)果.為了保持序列中的順序信息,需要將序列中每一項(xiàng)進(jìn)行位置編號(hào),然后每個(gè)編號(hào)位置對(duì)應(yīng)一個(gè)向量,通過對(duì)位置向量和序列嵌入向量進(jìn)行拼接或者相同維度向量加和的方式得到新的含有位置信息的行為序列特征表達(dá),這樣Transformer層就可以分辨出序列中不同位置的行為信息.可以看出,這種方式的優(yōu)勢(shì)在于不管句子中當(dāng)前的詞和其它詞的空間距離有多遠(yuǎn),對(duì)于結(jié)果相關(guān)性的影響都是相同的.另外,Transformer在計(jì)算過程中不僅用到前面的詞向量信息還考慮到后面的詞信息,并且位置向量和并行化計(jì)算有效增強(qiáng)序列之間的依賴性和提升模型的性能.
綜上所述,鑒于TextCNN模型參數(shù)量小,訓(xùn)練速度快并且可以學(xué)習(xí)深層次特征表示的特點(diǎn)和Transformer可以并行化計(jì)算的優(yōu)良性能,本文嘗試將TextCNN應(yīng)用于用戶序列的特征提取和使用Transformer學(xué)習(xí)序列之間的位置關(guān)系,得到序列特征的潛在向量表示用于之后的推薦任務(wù).
融合上下文信息序列的深度學(xué)習(xí)推薦模型DeepSeq結(jié)構(gòu)如圖2所示.該模型包括4部分:1)輸入層;用戶歷史行為長(zhǎng)、短期序列元組嵌入到低維稠密向量空間,行為序列是由用戶歷史長(zhǎng)期和短期的會(huì)話組成序列元組并且設(shè)計(jì)興趣衰減因子decay_factor表示用戶興趣強(qiáng)度隨時(shí)間變化情況,長(zhǎng)期會(huì)話基于用戶在最近一個(gè)月內(nèi)的購物情況分析,短期的會(huì)話聚合用戶在過去的30min內(nèi)的操作情況和行為類型;2)TextCNN層;自動(dòng)獲取得到用戶長(zhǎng)期和短期行為序列特征深層次表示;3)Transfomer層;基于多頭注意力機(jī)制和位置編碼抽取用戶長(zhǎng)、短期行為序列的軌跡向量,位置編碼和多頭注意力機(jī)制不僅降低序列位置對(duì)結(jié)果相關(guān)性的影響,還可以提高模型的計(jì)算性能;4)全連接層;是由用戶項(xiàng)目輔助信息交叉特征向量和行為序列特征向量拼接輸入到深層神經(jīng)網(wǎng)絡(luò).用戶項(xiàng)目輔助交叉信息包括用戶的年齡和性別的交叉(如年輕女性用戶喜歡化妝品款式新穎的衣服)、年齡和職業(yè)交叉、用戶類型和物品的使用周期交叉等;最終通過MLP預(yù)測(cè)用戶偏好的商品.
圖2 模型結(jié)構(gòu)圖Fig.2 DeepSeq model structure
會(huì)話(session-based)是服務(wù)端用來記錄識(shí)別用戶的一種機(jī)制,可以創(chuàng)建session來跟蹤用戶的點(diǎn)擊、瀏覽等情況,構(gòu)造出一組具有時(shí)序關(guān)系的購物記錄長(zhǎng)、短期行為序列.融合上下文信息的用戶長(zhǎng)、短期行為序列構(gòu)造過程圖3所示.
圖3 序列構(gòu)造過程Fig.3 Sequence construction process
首先,對(duì)原始的用戶行為記錄進(jìn)行數(shù)據(jù)預(yù)處理,清洗惰性用戶和爬蟲用戶;然后,一方面根據(jù)采樣區(qū)間提取出用戶行為序列,基于會(huì)話劃分規(guī)則將原始序列分為長(zhǎng)期行為和短期行為;另一方面,在預(yù)處理后的數(shù)據(jù)中提取用戶、物品的上下文信息,融合到用戶長(zhǎng)、短期行為序列當(dāng)中.本文中,把用戶行為e按時(shí)間戳timestamp順序構(gòu)成用戶歷史行為交互序列S,如式(4)~式(6)所示.
Sshort={e1,e2,e3,…,ei}
(4)
Slong={ei+1,ei+2,ei+3,…,ej}
(5)
S={Sshort,Slong}
(6)
其中,Sshort表示短期興趣Slong表示長(zhǎng)期興趣,行為信息e由公式(7)所示.
{e=(item,action,timestamp,context)}
(7)
其中item表示物品信息,如項(xiàng)目 ID 及其相關(guān)屬性,action表示用戶行為類型信息,timestamp表示行為發(fā)生的時(shí)間,decay_factor為興趣衰減因子,context為行為發(fā)生時(shí)所處的情境信息,包括時(shí)間、地點(diǎn)、心情,以及商品生命周期,物品相對(duì)于用戶生命周期,評(píng)分信息,興趣衰減因子等.反映用戶興趣隨時(shí)間動(dòng)態(tài)變化特點(diǎn)的興趣衰減因子decay_factor可由公式(8)所示.
(8)
其中,ti指當(dāng)前交互時(shí)間,tj之前交互時(shí)間,時(shí)間差值越大表明該用戶對(duì)該商品的興趣持續(xù)長(zhǎng)度越久,那么興趣程度也就越高.score表示評(píng)分信息,評(píng)分規(guī)則為:瀏覽(指瀏覽商品詳情頁):1分,點(diǎn)擊:2分,購買:3分,收藏:4分,關(guān)注:5分,加購:6分,購物車刪除:-1分.其中收藏、關(guān)注和加購權(quán)重分?jǐn)?shù)比購買分?jǐn)?shù)高是因?yàn)橛脩魧?duì)某種商品購買之后一段時(shí)間內(nèi)則對(duì)該物品保持較低的關(guān)注度;而收藏、關(guān)注、加購表示用戶對(duì)該物品關(guān)注度是遞增的;刪除表明在該時(shí)刻用戶對(duì)該物品關(guān)注度降低;frequency表示交互的頻率.
本文特征提取部分以TextCNN為基礎(chǔ),將通過Embedding之后得到向量序列作為卷積模型的輸入.具體的向量操作過程如圖4所示.
圖4 TextCNN分類模型Fig.4 TextCNN classification model
從圖4可以看出,用戶行為序列長(zhǎng)度被設(shè)置為n,每個(gè)行為嵌入之后的向量維度為k,則序列中第i個(gè)行為的嵌入向量可以表示為xi∈k.那么,每個(gè)用戶歷史行為序列的向量表示如公式(9)所示.
x1:n=x1⊕x2⊕…⊕xn
(9)
其中,⊕為拼接運(yùn)算符, 拼接之后的向量作為卷積層的輸入,xi∈Rd表示序列中第i個(gè)行為對(duì)應(yīng)的特征向量.文本卷積操作選取3個(gè)不同尺寸的卷積核kernel_sizes=(2,3,4),每個(gè)尺寸的卷積核分別有兩個(gè)輸出 channel,然后經(jīng)過激活函數(shù),得到每個(gè)特征步的向量ci如公式(10)所示.
ci=f(w·xi:i+h-1+b)
(10)
經(jīng)過卷積操作之后,該行為序列可以得到當(dāng)前濾波器所有的輸出feature map表示hi,如公式(11)所示.
hi=[c1,c2,…,cn-h+1]
(11)
其中,向量hi為n-h+1維的向量,h表示卷積核的大小.最后經(jīng)過級(jí)聯(lián)池化操作,選取每個(gè)feature map的最大值表示,來捕獲序列中重要的特征信息.最終的得序列特征向量表達(dá),如公式(12)所示.
(12)
(13)
(14)
(15)
(16)
(17)
(18)
上述Multi-head Self-Attention的過程不能學(xué)習(xí)行為序列的順序信息,即如果將用戶序列中的K,V值打亂,不影響最終的Attention計(jì)算結(jié)果.因此需要在序列中引入位置向量Position Embedding,如公式(19)和公式(20)所示.
PE2i(p)=sin(p/100002i/dpos)
(19)
PE2i+1(p)=cos(p/100002i/dpos)
(20)
X=[Xauxiliary,XP]
(21)
然后,將X輸入到深層神經(jīng)網(wǎng)絡(luò)MLP中進(jìn)行訓(xùn)練,經(jīng)過多個(gè)隱藏層和激活函數(shù)得到最終的預(yù)測(cè)向量.定義隱藏層計(jì)算如公式(22)所示.
H=f(XWh+bh)
(22)
其中,f表示激活函數(shù),X是多層感知機(jī)的輸入,Wh是隱藏層的權(quán)重,H是隱藏層的輸出,最終評(píng)分預(yù)測(cè)值y由公式(23)計(jì)算得到.設(shè)定合適的閾值,為用戶推薦其偏好的物品.
y=HW+b
(23)
其中,W是輸出層的權(quán)重,b輸出層的偏置值.
為了驗(yàn)證本文提出的DeepSeq模型的推薦質(zhì)量,選擇了3個(gè)具有代表性的數(shù)據(jù)集,阿里巴巴Alibaba和京東JD兩個(gè)真實(shí)購物場(chǎng)景中的數(shù)據(jù)集和一個(gè)Kaggle競(jìng)賽Avazu數(shù)據(jù)集.互聯(lián)網(wǎng)行業(yè),阿里巴巴和京東作為代表的大型電商購物網(wǎng)站,在保持高速發(fā)展和沉淀用戶的同時(shí),積累了海量的真實(shí)數(shù)據(jù)用于工業(yè)界和學(xué)術(shù)界的科研工作.對(duì)于以上的每個(gè)實(shí)驗(yàn)數(shù)據(jù)集都由用戶的基本信息表、SKU基本信息表和用戶行為表,用戶訂單表以及評(píng)論分?jǐn)?shù)數(shù)據(jù)表以及日志等信息構(gòu)成.本文實(shí)驗(yàn)為了減少模型的訓(xùn)練時(shí)間,分別從京東、淘寶和Avazu數(shù)據(jù)集中選取了9.8萬、5.3萬和2.6萬個(gè)用戶交互記錄.數(shù)據(jù)集的統(tǒng)計(jì)情況如表2所示.
表2 3個(gè)不同數(shù)據(jù)集的統(tǒng)計(jì)情況Table 2 Statistics of datasets
為了構(gòu)建本文融合上下文信息的行為序列,對(duì)于數(shù)據(jù)每個(gè)用戶點(diǎn)擊過的商品,按時(shí)間戳順序構(gòu)成含有T個(gè)行為信息的序列結(jié)構(gòu),用來預(yù)測(cè)第T+1次的用戶行為類型.由于抽取的原始數(shù)據(jù)中存在臟數(shù)據(jù),清洗掉該部分?jǐn)?shù)據(jù).最終構(gòu)建的京東、淘寶和Avazu數(shù)據(jù)集分別保留了9.5萬、5.1萬和2.42萬條用戶行為序列數(shù)據(jù)信息.對(duì)于構(gòu)建完成的每個(gè)數(shù)據(jù)集,分別選取數(shù)據(jù)集中前70%的數(shù)據(jù)用于模型的訓(xùn)練,后30%用于模型的測(cè)試與評(píng)估.
評(píng)價(jià)指標(biāo)采用推薦系統(tǒng)常用的均方根誤差(RMSE)和在AUC基礎(chǔ)上改進(jìn)的針對(duì)個(gè)性化推薦的評(píng)價(jià)指標(biāo)GAUC.其中RMSE 是在均方誤差基礎(chǔ)上進(jìn)行開方操作,值越小表明模型的損失函數(shù)值越小,即模型效果越好;GAUC表示模型同時(shí)對(duì)正例和負(fù)例的分類能力,則值越大代表模型分類準(zhǔn)確率越高.均方誤差RMSE計(jì)算如公式(24)所示.
(24)
其中,n是測(cè)試集總記錄數(shù),y(i)是真實(shí)的用戶點(diǎn)擊情況,f(X(i))是預(yù)測(cè)的結(jié)果.GAUC計(jì)算過程如公式(25)所示.
(25)
即先計(jì)算每個(gè)用戶的AUC,然后加權(quán)平均,實(shí)際運(yùn)算中權(quán)重可以設(shè)置為每個(gè)用戶瀏覽量或者點(diǎn)擊的次數(shù).
為了驗(yàn)證本文融合上下文信息序列推薦模型的有效性,分別設(shè)置了CCPM、AFM、PNN、DCN、AutoInt和WDL對(duì)比模型:
1)CCPM:Qiang[19]等提出的將卷積神經(jīng)網(wǎng)絡(luò)用于預(yù)測(cè)用戶下一次點(diǎn)擊行為.
2)AFM:Xiao[20]等提出的使用注意力機(jī)制來學(xué)習(xí)不同特征之間交互的重要性.
3)PNN:Qu[21]等提出基于乘法的運(yùn)算來體現(xiàn)特征交叉的網(wǎng)絡(luò)結(jié)構(gòu).
4)DCN:在2017年谷歌提出的自動(dòng)進(jìn)行特征交互的推薦預(yù)測(cè)模型,并且不需要的額外的特征工程[22].
5)AutoInt:Song[23]等人提出的以多頭注意力機(jī)制為基礎(chǔ)在將高維稀疏特征(包括連續(xù)特征和類別特征)映射到低維空間的同時(shí)建模高級(jí)特征交叉.
6)WDL:在2016年Cheng[24]等提出的將線性特征交叉工程與深度模型進(jìn)行聯(lián)合的推薦模型.
4.5.1 參數(shù)分析
本實(shí)驗(yàn)?zāi)康闹饕骄考せ詈瘮?shù)對(duì)深度神經(jīng)網(wǎng)絡(luò)部分的非線性影響能力,常用的激活函數(shù)有sigmoid,relu,tanh和leaky_relu.其中sigmoid和tanh函數(shù)屬于飽和激活函數(shù),relu是修正線性單元,相比relu函數(shù),sigmoid激活函數(shù)計(jì)算量大,反向傳播時(shí)容易出現(xiàn)梯度消失情況,而 leaky_relu的特點(diǎn)在于解決了relu函數(shù)進(jìn)入負(fù)區(qū)間后神經(jīng)元之間不學(xué)習(xí)的問題.以下參數(shù)實(shí)驗(yàn)均在京東數(shù)據(jù)集上進(jìn)行.設(shè)置模型的學(xué)習(xí)率為0.001,丟失率為50%.激活函數(shù)分別選取sigmoid,relu,tanh和leaky_relu,測(cè)試結(jié)果如圖5所示.從圖5結(jié)果可以看出,激活函數(shù)leaky_relu相對(duì)于其它3個(gè)激活函數(shù)損失函數(shù)值最小,并且在較少的迭代次數(shù)下便達(dá)到收斂狀態(tài).當(dāng)選取激活函數(shù)relu和tanh時(shí),模型的損失函數(shù)值趨近一致,但都未達(dá)到leaky_relu的性能表現(xiàn).因此,本文選取leaky_relu作為模型的激活函數(shù).
圖5 不同激活函數(shù)對(duì)模型結(jié)果的影響Fig.5 Effect of different activation function on model results
在確定失活率對(duì)模型結(jié)果的影響時(shí),設(shè)置學(xué)習(xí)率為0.001,激活函數(shù)為leaky_relu.分別測(cè)試dropout值為0.5,0.6,0.7,0.8和0.9時(shí)對(duì)模型準(zhǔn)確率的影響.測(cè)試如圖6所示.由圖中測(cè)試集結(jié)果可以看出,當(dāng)丟失率小于0.7時(shí),模型出現(xiàn)過擬合現(xiàn)象;當(dāng)隨機(jī)丟失率大于0.7時(shí),模型出現(xiàn)欠擬合現(xiàn)象.因此在本文實(shí)驗(yàn)中選取隨機(jī)丟失率為0.7,使模型達(dá)到最優(yōu).
圖6 dropout對(duì)模型結(jié)果的影響Fig.6 Effect of different dropout on model results
在訓(xùn)練模型時(shí)其它超參數(shù)不同也會(huì)對(duì)實(shí)驗(yàn)結(jié)果產(chǎn)生相應(yīng)的影響,但這些參數(shù)選取不是本文研究的重點(diǎn),通過實(shí)驗(yàn)測(cè)試可知其它參數(shù)設(shè)置如表3所示.
表3 模型參數(shù)Table 3 Model parameter
4.5.2 增加項(xiàng)目輔助信息消融實(shí)驗(yàn)分析
為了驗(yàn)證項(xiàng)目輔助信息對(duì)DeepSeq模型的影響,設(shè)計(jì)增加了輔助項(xiàng)目信息的消融實(shí)驗(yàn).輔助項(xiàng)目信息,包括用戶年齡、性別、職業(yè)、用戶等級(jí)、項(xiàng)目使用周期、項(xiàng)目類型和評(píng)論等信息,交叉信息包括年齡和性別、年齡和職業(yè)、用戶類型和項(xiàng)目的使用周期交叉等.該實(shí)驗(yàn)對(duì)比了本文模型增加輔助信息后分別在京東、淘寶和avazu 3個(gè)不同數(shù)據(jù)集上的性能表現(xiàn).實(shí)驗(yàn)結(jié)果如圖7所示,其中original表示未添加輔助項(xiàng)目信息,auxiliary表示增加了項(xiàng)目輔助信息,從圖7結(jié)果可以看出,增加項(xiàng)目輔助信息auxiliary使得DeepSeq模型在京東、淘寶和avazu 3個(gè)數(shù)據(jù)集上的GAUC值均有明顯提升.
4.5.3 不同序列長(zhǎng)度和衰減因子decay_factor對(duì)比分析
為了探究用戶行為序列長(zhǎng)度對(duì)模型結(jié)果的影響,本文在以上參數(shù)實(shí)驗(yàn)和項(xiàng)目輔助信息消融實(shí)驗(yàn)基礎(chǔ)之上進(jìn)一步實(shí)驗(yàn).分別設(shè)計(jì)了20,30,40,50,60,5種不同長(zhǎng)度的序列,實(shí)驗(yàn)結(jié)果如圖8所示.圖8結(jié)果顯示,當(dāng)序列長(zhǎng)度為50時(shí),模型的損失函數(shù)值最低,模型的預(yù)測(cè)效果達(dá)到最優(yōu).另外,可以看出當(dāng)序列越長(zhǎng)時(shí),模型性能反而降低,推測(cè)可能隨著序列長(zhǎng)度的增加,序列中噪聲增多,從而導(dǎo)致模型準(zhǔn)確率降低.
圖7 增加項(xiàng)目輔助信息模型結(jié)果的影響Fig.7 Effect of increase auxiliary information on model results
圖8 序列長(zhǎng)度對(duì)結(jié)果的影響Fig.8 Effect of different sequence lengths on model results
為了進(jìn)一步驗(yàn)證衰減因子decay_factor對(duì)模型結(jié)果的影響.在以上參數(shù)實(shí)驗(yàn)基礎(chǔ)之上,設(shè)計(jì)未添加興趣衰減因子的Base模型和在序列中融合興趣衰減因子之后的模型對(duì)比分析,通過評(píng)價(jià)指標(biāo)值GAUC值反饋模型性能變化情況.實(shí)驗(yàn)結(jié)果如表4所示,可以看出,融合興趣衰減因子之后,模型在3個(gè)不同數(shù)據(jù)集上分別得到了0.28%、0.46%和0.12%的提升.
表4 增加decay_factor模型性能變化Table 4 Comparison of model performance
4.5.4 模型分析
通過表3設(shè)置的預(yù)訓(xùn)練參數(shù)和以上優(yōu)化后的參數(shù)值搭建本文的DeepSeq序列推薦深度學(xué)習(xí)模型,采用訓(xùn)練集對(duì)模型進(jìn)行訓(xùn)練得到分類器,然后使用測(cè)試集對(duì)訓(xùn)練好的模型進(jìn)行性能評(píng)估.為了進(jìn)一步驗(yàn)證本文序列深度推薦模型相對(duì)于現(xiàn)有模型的有效性,分別選取了CCPM、AFM、PNN、DCN、AutoInt和WDL模型與本文提出的DeepSeq模型在3個(gè)數(shù)據(jù)集上進(jìn)行對(duì)比分析,測(cè)試結(jié)果如表5所示.從表中結(jié)果可以看出,本文序列推薦模型在評(píng)價(jià)指標(biāo)RMSE和GAUC在3個(gè)數(shù)據(jù)集上均得到了優(yōu)化.并且,在RMSE評(píng)價(jià)指標(biāo)上至少降低了0.21%,在GAUC評(píng)價(jià)指標(biāo)上提升值均超過了0.59%.
表5 不同模型對(duì)比結(jié)果Table 5 Model test results
隨著用戶購物習(xí)慣呈現(xiàn)的興趣多樣性和動(dòng)態(tài)性,現(xiàn)有的推薦模型已經(jīng)不能滿足用戶的購物需求,為了解決該問題.本文建立一種融合上下文信息的個(gè)性化序列推薦深度學(xué)習(xí)模型,可以在序列中融合用戶和項(xiàng)目的輔助信息,將位置向量和序列向量結(jié)合并行化計(jì)算有效增強(qiáng)序列之間的依賴性和提升模型的性能,并且能夠模擬用戶興趣隨時(shí)間動(dòng)態(tài)變化的特點(diǎn),解決傳統(tǒng)推薦模型中存在的數(shù)據(jù)稀疏和冷啟動(dòng)問題,深入挖掘用戶興趣.
近年來,隨著知識(shí)圖譜和圖神經(jīng)網(wǎng)絡(luò)嵌入技術(shù)的發(fā)展,基于知識(shí)圖譜和社交網(wǎng)絡(luò)的智能推薦算法也逐漸成為該領(lǐng)域研究的熱點(diǎn).以知識(shí)圖譜和社交網(wǎng)絡(luò)作為邊信息生成推薦的價(jià)值在于一方面可以引入更多的語義關(guān)系,發(fā)現(xiàn)用戶的深層次興趣;另一方面通過知識(shí)圖譜中不同對(duì)象之間的鏈接關(guān)系,有利于推薦結(jié)果的發(fā)散.利用知識(shí)圖譜和社交網(wǎng)絡(luò)豐富的信息表示與推薦系統(tǒng)結(jié)合將是未來該領(lǐng)域研究的熱門方向.