顧亦然 王 雨 楊海根
①(南京郵電大學(xué)自動化學(xué)院、人工智能學(xué)院 南京 210023)
②(南京郵電大學(xué)智慧校園研究中心 南京 210023)
③(南京郵電大學(xué)寬帶無線通信技術(shù)教育部工程研究中心 南京 210003)
根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(China internet Network Information Center, CNNIC)發(fā)布的第47次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》,中國短視頻用戶規(guī)模達(dá)8.73億人,人均單日刷視頻時長達(dá)125 min,可見短視頻受到了越來越多的人的喜歡。隨著短視頻的發(fā)展,短視頻的數(shù)量越來越多,大量冗余的短視頻信息遠(yuǎn)超用戶的個人需求,導(dǎo)致了信息過載問題。為了解決信息過載的問題,推薦系統(tǒng)應(yīng)運(yùn)而生,點(diǎn)擊率(Click Through Rate, CTR)預(yù)測就是推薦系統(tǒng)的一個關(guān)鍵性問題[1]。
CTR預(yù)測任務(wù)主要用于預(yù)測用戶點(diǎn)擊推薦物品的概率,目前主要的研究方法分為基于機(jī)器學(xué)習(xí)模型的方案[2–4]和基于深度學(xué)習(xí)的方案[5–9]。在傳統(tǒng)的機(jī)器學(xué)習(xí)模型中,最早用于解決點(diǎn)擊率預(yù)測問題的是文獻(xiàn)[2]提出的邏輯回歸模型。為了學(xué)習(xí)到特征間的非線性關(guān)系,文獻(xiàn)[3]則提出了混合邏輯回歸模型(Mixed Logistic Regression, MLR),它是對邏輯回歸模型的改進(jìn),進(jìn)一步提升了模型的精度。然而這類模型存在稀疏特征帶來維度災(zāi)難的問題。為了解決現(xiàn)實(shí)場景中存在的數(shù)據(jù)稀疏性的問題,Rendle等人[4]提出了因子分解機(jī)模型(Factorization Machine, FM),該模型使用分解參數(shù)對所有特征變量交互進(jìn)行建模,將2階的組合特征的權(quán)重分解為兩個隱含向量的點(diǎn)積,有效緩解了數(shù)據(jù)稀疏性的困擾。隨著深度學(xué)習(xí)在計算機(jī)視覺、自然語言處理等領(lǐng)域取得巨大成功,越來越多的學(xué)者利用深度學(xué)習(xí)算法進(jìn)行CTR預(yù)測。Cheng等人[5]提出了一種將線性模型和深度學(xué)習(xí)模型融合的模型Wide&Deep(Wide&Deep Learning for Recommender Systems),不僅考慮了低階特征攜帶的信息,而且考慮了高階特征的交互信息,然而Wide部分依賴人工交叉特征。Guo等人[6]在Wide&Deep模型的基礎(chǔ)上,將線性模型換成FM模型,提出了DeepFM(DeepFM: A Factorization-Machine based Neural Network for CTR Prediction)模型,該模型解決了Wide&Deep模型需要手動交叉特征的缺點(diǎn),可以自動學(xué)習(xí)到低階和高階特征的交互,但是該模型忽略了用戶的行為本質(zhì)上是一個動態(tài)序列的事實(shí)。文獻(xiàn)[7]提出的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)及其文獻(xiàn)[8]提出的變種長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)和文獻(xiàn)[9]提出的門控循環(huán)單元(Gated Recurrent Unit, GRU)被廣泛用于用戶行為序列建模,捕獲用戶行為序列間的依賴關(guān)系。然而該類方法受限于循環(huán)結(jié)構(gòu),缺失低階特征交互信息。
本文提出了一種基于用戶行為序列的短視頻用戶點(diǎn)擊行為預(yù)測模型。用戶的行為序列蘊(yùn)含了用戶的行為習(xí)慣、不同行為之間的順序依賴關(guān)系以及用戶興趣偏好隨時間推移而發(fā)生變化的內(nèi)在模式等重要信息[10],因此本文對用戶的歷史行為進(jìn)行分析,將用戶的歷史點(diǎn)擊行為按照點(diǎn)擊時間先后順序進(jìn)行排序,得到用戶的歷史行為序列,將用戶的歷史行為序列作為文本輸入,利用詞向量模型Word2Vec[11–13]進(jìn)行特征提取,提取出一系列序列特征信息用來表征用戶的動態(tài)興趣偏好,通過FM模型和深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNN)模型分別學(xué)習(xí)到低階和高階特征交互信息,最終完成用戶對短視頻進(jìn)行點(diǎn)擊行為的預(yù)測。在一個真實(shí)的短視頻平臺數(shù)據(jù)集上的實(shí)驗結(jié)果表明,本文提出的用戶行為預(yù)測模型優(yōu)于其他幾個深度學(xué)習(xí)模型。
本文的主要工作總結(jié)如下:
(1)提出一種用于預(yù)測短視頻用戶對不同視頻內(nèi)容的發(fā)生點(diǎn)擊行為的概率的模型,包含預(yù)測用戶對視頻的點(diǎn)贊、查看視頻評論、點(diǎn)擊頭像及轉(zhuǎn)發(fā)視頻的概率。
(2)根據(jù)用戶歷史行為發(fā)生的時間先后順序構(gòu)建用戶歷史行為序列,利用詞向量模型Word2Vec提取出一系列的序列特征用來表征用戶的偏好;將融合視頻文本、聲音和圖像的多模態(tài)特征向量通過主成分分析模型(Principal Component Analysis,PCA)進(jìn)行數(shù)據(jù)降維處理得到低維稠密的視頻特征。
(3)在一個真實(shí)的短視頻平臺進(jìn)行實(shí)驗,本文設(shè)計的模型性能相較于其他深度學(xué)習(xí)模型的性能都有著不同程度的提升。
假設(shè)有n個用戶與視頻的交互實(shí)例記作 (x,y),x包含與用戶產(chǎn)生交互的視頻特征,y表示用戶與視頻已產(chǎn)生的交互行為,包括查看視頻評論、點(diǎn)贊、點(diǎn)擊頭像及轉(zhuǎn)發(fā)行為,y∈{0,1}(y=1表明用戶與視頻產(chǎn)生該交互行為,否則y=0)。x可能包含與用戶產(chǎn)生交互的視頻ID、作者ID及視頻時長等基礎(chǔ)特征,也可能包含用戶觀看視頻總和、停留視頻時長平均值等交互特征及用戶序列特征。短視頻用戶點(diǎn)擊行為預(yù)測的任務(wù)就是建立一個預(yù)測模型y?i=F(x){i=read_comment, like, click, forward}來預(yù)測用戶對推送的視頻產(chǎn)生點(diǎn)擊行為的概率,其中read_comment, like, click, forward分別表示用戶查看視頻評論、點(diǎn)贊、點(diǎn)擊頭像和轉(zhuǎn)發(fā)行為。
用戶序列特征就是根據(jù)用戶的歷史交互行為產(chǎn)生的,因此對用戶序列特征的表示就是對用戶的偏好進(jìn)行了表征。為了提取出用戶對視頻的偏好,本文提出一種基于用戶行為序列的短視頻用戶多行為點(diǎn)擊預(yù)測模型(USer multi behavior Click Prediction model, USCP),模型結(jié)構(gòu)自下而上主要由輸入層、因子分解機(jī)層、深度神經(jīng)網(wǎng)絡(luò)層和輸出層4部分組成。模型結(jié)構(gòu)如圖1所示。

圖1 模型結(jié)構(gòu)圖
2.2.1 輸入層
輸入層主要由ID特征、用戶歷史行為特征、視頻特征及融合視頻文本、圖像、聲音等信息的多模態(tài)特征4部分組成。其中ID類特征包括用戶ID、視頻ID、視頻作者ID、背景音樂歌手ID和背景音樂ID等5個ID類特征;用戶歷史行為特征包括用戶播放視頻時長、停留視頻時長和用戶點(diǎn)贊、轉(zhuǎn)發(fā)、查看評論、點(diǎn)擊頭像等4種歷史行為;視頻特征包括視頻時長、視頻關(guān)鍵字、視頻標(biāo)簽等特征;視頻多模態(tài)特征包含視頻圖像、聲音、文本的多模態(tài)特征信息。
首先將ID類特征和視頻特征進(jìn)行合并后組成基礎(chǔ)特征;為了進(jìn)一步挖掘出用戶對視頻不同特征如視頻作者、視頻背景音樂、視頻標(biāo)簽等的偏好,本文對N天內(nèi)用戶對視頻的不同特征之間的交互進(jìn)行交叉統(tǒng)計,得到交互特征。最后將經(jīng)過處理后的特征送至因子分解機(jī)層和深度神經(jīng)網(wǎng)絡(luò)層來分別學(xué)習(xí)低階和高階特征交互。
2.2.2 因子分解機(jī)層
為了捕獲基礎(chǔ)特征和交互特征間1階和2階的特征交互信息,本文利用因子分解機(jī)FM模型進(jìn)行低階特征交互。首先,考慮到現(xiàn)實(shí)場景中很多特征都是互相關(guān)聯(lián),彼此聯(lián)系的,如“高跟鞋”和“女性”、“冬天”和“羽絨服”等,因此在線性模型的基礎(chǔ)上引入2階特征組合項xi和xj,得到2階多項式模型


2.2.3 深度神經(jīng)網(wǎng)絡(luò)層
僅通過FM模型得到1階和2階的特征交互信息顯然是不夠的,生活中還存在很多需要深入分析才能得到特征間的相關(guān)性的場景,比如啤酒和尿布的關(guān)系[14],從表面上看兩者的屬性似乎沒有任何關(guān)系,但是商家通過對1年多的交易記錄進(jìn)行分析發(fā)現(xiàn)了這對神奇的組合,因此需要更加深入地挖掘特征間的關(guān)系。
2.2.3.1 用戶動態(tài)興趣偏好表征
在現(xiàn)實(shí)生活中,用戶的交互行為通常可以看成一個序列,并且前后不同的交互行為通常存在著一定的依賴關(guān)系,如:一位用戶觀看了吉他彈唱視頻,并且點(diǎn)贊了該視頻,顯然用戶此時表達(dá)了對音樂類視頻有著一定的興趣,本文猜測接下來用戶想觀看歌曲演唱視頻的概率應(yīng)該是大于美食視頻的,因為歌曲演唱視頻和吉他彈唱視頻都屬于音樂類視頻,彼此之間存在一定的關(guān)聯(lián)性。首先本文對用戶的歷史行為進(jìn)行序列建模,由于用戶的歷史行為發(fā)生的時間點(diǎn)都是不同的,將用戶的歷史行為按照時間先后順序排成一個序列,用Su=(bu1,bu2,...,bun)表示用戶u的行為序列,1
本文選用Word2Vec模型中的Skip-Gram模型進(jìn)行訓(xùn)練,輸入用戶u的行為序列Su,以用戶當(dāng)前行為bui為中心詞,最終預(yù)測出用戶u當(dāng)前行為bui窗口兩側(cè)的行為的概率分布,Skip-Gram的模型結(jié)構(gòu)圖如圖2所示。



圖2 Skip-Gram 模型圖

2.2.3.2 DNN網(wǎng)絡(luò)
DNN網(wǎng)絡(luò)是由3層結(jié)構(gòu)組成的一個多層感知機(jī),分為輸入層、隱藏層和輸出層,每層結(jié)構(gòu)中包含多個神經(jīng)元節(jié)點(diǎn)[15]。本文利用DNN網(wǎng)絡(luò)來學(xué)習(xí)用戶與視頻之間的高階特征交互信息,使模型具有較強(qiáng)的泛化能力[16]。
DNN網(wǎng)絡(luò)部分的輸入包含3部分:稠密嵌入向量、序列嵌入向量和多模態(tài)嵌入向量。由于稀疏特征里包含高維稀疏的one-hot向量,需經(jīng)過稠密嵌入層轉(zhuǎn)化為低維稠密嵌入向量,送入DNN網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。此外,本文將經(jīng)過Word2Vec提取到的6種序列嵌入向量和經(jīng)過降維后的視頻多模態(tài)嵌入向量輸入至DNN網(wǎng)絡(luò)中學(xué)習(xí)高階特征交互。
假設(shè)DNN網(wǎng)絡(luò)的輸入為a(0)=[e0,e1,...,ed](d為輸入的個數(shù)),則DNN網(wǎng)絡(luò)第l層的輸出為

其中,yi為樣本i的 真實(shí)標(biāo)簽,p(yi)是預(yù)測出樣本i的概率。
本文采用的優(yōu)化算法是自適應(yīng)梯度算法(Adaptive Gradient, AdaGrad),該優(yōu)化算法記錄了歷史梯度的逐元素累積平方和,并使用該累積和的平方根的逆作為學(xué)習(xí)率權(quán)重,解決了不同參數(shù)應(yīng)該使用不同的更新速率的問題,自適應(yīng)地為各個參數(shù)分配不同的學(xué)習(xí)率,具體如式(10)、式(11)所示


本文的數(shù)據(jù)集來源于某短視頻平臺官方公開的數(shù)據(jù)集,通過脫敏和采樣處理后,該數(shù)據(jù)集包含20000個真實(shí)用戶和106444個視頻產(chǎn)生的7317882條歷史數(shù)據(jù),這些數(shù)據(jù)包括14天內(nèi)用戶查看評論、點(diǎn)贊、點(diǎn)擊頭像和轉(zhuǎn)發(fā)視頻等歷史行為數(shù)據(jù)表和含視頻作者、背景音樂、視頻簡介、關(guān)鍵字、標(biāo)簽和多模態(tài)內(nèi)容等視頻信息表。本文選取前13天的數(shù)據(jù)作為訓(xùn)練集,第14天的數(shù)據(jù)作為測試集。
本文的實(shí)驗代碼是利用Python3基于深度學(xué)習(xí)框架Pytorch1.5和Tensorflow2.5進(jìn)行開發(fā),所用操作系統(tǒng)為Windows10,實(shí)驗所用服務(wù)器為4核32 GB顯存的Tesla V100。
(1)Wide&Deep[5]。Wide&Deep模型是由谷歌研究人員提出的,該模型巧妙地將線性模型和深度學(xué)習(xí)模型進(jìn)行融合,不僅考慮了低階特征攜帶的信息,也考慮了高階特征的交互信息。
(2)MMOE[17]。多任務(wù)學(xué)習(xí)模型(Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts, MMOE)也是由谷歌研究員提出的,主要是解決傳統(tǒng)的多任務(wù)網(wǎng)絡(luò)在任務(wù)相關(guān)性不強(qiáng)的情況下效果不佳的情況,常被用于推薦系統(tǒng)任務(wù)中。
(3)DeepFM[6]。模型在Wide&Deep的基礎(chǔ)上,將線性模型替換為FM模型,無需手動交叉特征且可以同時學(xué)習(xí)到低階和高階特征的交互信息。
在CTR預(yù)測任務(wù)中,A UC(Area Under Curve)是最常用的評價指標(biāo),它反映的是整體樣本間的排序能力,但實(shí)際上有時這并不能真正反映模型的好壞,這是因為A UC并沒有考慮到不同用戶或不同場景下的情況。為此,阿里團(tuán)隊提出了G AUC[18]用來衡量不同用戶對不同廣告之間的排序能力。針對復(fù)雜的短視頻應(yīng)用場景,不同的用戶對于推送的視頻進(jìn)行點(diǎn)贊、轉(zhuǎn)發(fā)等行為的情況是錯綜復(fù)雜的,因此,本文采用G AUC作為評價指標(biāo)。本文首先計算不同用戶下的A UC 的平均值uAUC

其中,n為測試集中用戶的個數(shù)。 A UCi為第i個用戶預(yù)測結(jié)果的AUC。
為了區(qū)分不同行為的重要性,本文統(tǒng)計用戶過去13天內(nèi)點(diǎn)擊視頻的次數(shù)用來表征用戶的活躍度,本文對篩選出來的活躍度高的用戶的歷史行為進(jìn)行分析,發(fā)現(xiàn)用戶查看評論、點(diǎn)贊、點(diǎn)擊頭像和轉(zhuǎn)發(fā)行為在用戶歷史行為序列的占比依次降低,因此本文對將要預(yù)測的用戶查看評論、點(diǎn)贊、點(diǎn)擊頭像、轉(zhuǎn)發(fā)行為這4個行為的u AUC分配不同的權(quán)重,進(jìn)行加權(quán)平均,最后得到最終的G AUC值。計算如式(14)所示。

其中,ωi={4,3,2,1}表示權(quán)重值,i=1,2,3,4依次代表了用戶查看評論、點(diǎn)贊、點(diǎn)擊頭像和轉(zhuǎn)發(fā)視頻4個點(diǎn)擊行為。
本文通過調(diào)用genism函數(shù)庫來使用Word2Vec模型,將用戶的歷史行為序列輸入至Word2Vec模型,進(jìn)而提取用戶的序列特征。向量維數(shù)為16表示生成16維的用戶序列特征向量,sg=1表示采用Skip-Gram算法,具體參數(shù)設(shè)置如表1所示。

表1 Word2Vec模型參數(shù)
多模態(tài)視頻特征數(shù)據(jù)包含經(jīng)過脫敏后的視頻描述的文本識別信息、視頻圖像的圖像識別信息和視頻背景音樂的語音識別信息,為了利用PCA算法將512維多模態(tài)視頻特征向量降維成32維稠密的向量,本文通過調(diào)用scikit-learn的decomposition模塊進(jìn)行PCA降維,將n_components設(shè)置為32,表示降維至32維,其余參數(shù)為默認(rèn)值。
對于DNN網(wǎng)絡(luò)的參數(shù)設(shè)置,本文采用4層全連接層,每層的節(jié)點(diǎn)數(shù)為(256, 256, 256, 128);每個field的稠密嵌入維數(shù)為16;batch_size的大小為256;激活函數(shù)為ReLU;優(yōu)化器為Adagrad;dropout為0.3。
本文將基線模型和本模型進(jìn)行了對比實(shí)驗,實(shí)驗結(jié)果如表2所示。
從表2可以看出,Wide&Deep模型的效果最差,遠(yuǎn)遠(yuǎn)差于DeepFM的效果。MMOE多任務(wù)模型對于用戶的多行為點(diǎn)擊預(yù)測任務(wù)有著一定的優(yōu)勢,相較于Wide&Deep模型GAUC提升了2.2%。Deep-FM模型是在Wide&Deep的基礎(chǔ)上,將線性模型部分換成了FM,可以同時自動低階和高階的特征交互,效果有著明顯的提升,相較于MMOE模型,DeepFM模型的GAUC提高了0.5%。本文提出的模型在DeepFM的基礎(chǔ)上加入用戶行為序列信息,學(xué)習(xí)用戶的動態(tài)興趣偏好,相較于DeepFM模型,本模型的GAUC提高了1.4%。

表2 模型性能比較
在模型的訓(xùn)練過程中,本文發(fā)現(xiàn)某些超參數(shù)的大小對模型性能影響較大。因此,本文選擇了以下幾個超參數(shù)進(jìn)行研究。
3.7.1 DNN網(wǎng)絡(luò)的層數(shù)
隨著DNN網(wǎng)絡(luò)的層數(shù)的增加能在一定程度上增強(qiáng)模型的學(xué)習(xí)能力和泛化性能,但如果網(wǎng)絡(luò)的層數(shù)過大會出現(xiàn)模型過擬合的問題,影響模型的性能。具體如圖3(a)所示。
3.7.2 dropout的大小
dropout是指在深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練過程中,對于神經(jīng)網(wǎng)絡(luò)單元,按照一定的概率將其暫時從網(wǎng)絡(luò)中丟棄。dropout可以比較有效地緩解模型過擬合的問題,在一定程度上達(dá)到正則化的效果。本文將dropout從0增加到0.6,可以看出模型在dropout為0.3時,性能達(dá)到最好。如圖3(b)所示。

圖3 USCP模型的超參數(shù)研究
3.7.3 batch_size的大小
batch_size即1次訓(xùn)練所抓取的數(shù)據(jù)樣本數(shù)量,適當(dāng)?shù)腷atch_size能使模型更快地收斂到全局最優(yōu)值。本文通過不斷地調(diào)整batch_size的大小從而使模型更好的收斂,發(fā)現(xiàn)模型在batch_size為270時達(dá)到最優(yōu)的性能。具體如圖3(c)所示。
在推薦系統(tǒng)領(lǐng)域,用戶的興趣偏好是一個動態(tài)變化的過程,根據(jù)用戶的行為的變化學(xué)習(xí)出用戶的興趣變化,可以提高推薦質(zhì)量。本文提出了基于用戶行為序列的多行為點(diǎn)擊預(yù)測模型,該模型可以同時學(xué)習(xí)到用戶與視頻的低階和高階特征信息,并且對用戶的歷史行為進(jìn)行序列化建模,構(gòu)造用戶的序列特征,進(jìn)而表征出用戶的興趣變化。最后,本文在某短視頻平臺上公開的數(shù)據(jù)集進(jìn)行了實(shí)驗,比較了不同的方案,結(jié)果證明本文提出的模型的性能都優(yōu)于其他幾個模型。后續(xù),本文會將用戶的興趣進(jìn)行細(xì)粒劃分,進(jìn)一步探究用戶的興趣表示。