衛(wèi) 剛,邵 偉,王志成
(同濟(jì)大學(xué)電子與信息工程學(xué)院,上海 201804)
如今MSN新聞和谷歌新聞等平臺(tái)吸引了大量用戶[1-2],這些平臺(tái)從各個(gè)渠道獲取了海量的新聞。海量的新聞導(dǎo)致了嚴(yán)重的信息過載[3]。新聞的個(gè)性化推薦算法能夠挖掘每個(gè)人的興趣愛好和新聞的語義,能夠緩解信息過載的問題[4-6]。
基于協(xié)同過濾的推薦算法往往根據(jù)新聞的歷史點(diǎn)擊情況對(duì)用戶進(jìn)行推薦,然而最新的新聞缺乏用戶點(diǎn)擊記錄,因此基于協(xié)同過濾的推薦算法只能適用于熱門新聞,對(duì)最新的新聞(冷啟動(dòng))效果不佳。緩解新聞冷啟動(dòng)問題的關(guān)鍵在于優(yōu)化文本信息的利用方式。對(duì)文本信息的利用方式直接影響了最新的新聞的曝光機(jī)會(huì)。這是本文優(yōu)化文本特征提取的直接動(dòng)機(jī)。此外標(biāo)題和摘要信息往往是吸引用戶的關(guān)鍵因素之一,這是另一個(gè)優(yōu)化文本特征提取的動(dòng)機(jī)。
在推薦系統(tǒng)中有一些邊信息,如多級(jí)類別信息、圖像信息、社交信息等。大多數(shù)的新聞推薦模型先提取文本特征,后結(jié)合邊信息通過推薦網(wǎng)絡(luò)對(duì)新聞打分和推薦。文本特征提取和推薦2個(gè)任務(wù)在網(wǎng)絡(luò)結(jié)構(gòu)中是割裂的。NLP(自然語言處理)領(lǐng)域的文本特征提取網(wǎng)絡(luò)的設(shè)計(jì)初衷是出于更好的文本特征提取,而推薦網(wǎng)絡(luò)的設(shè)計(jì)初衷是為了更好的推薦效果。兩部分優(yōu)化目標(biāo)是不同的,很難做到兩者同時(shí)最優(yōu)。給出2個(gè)案例來說明將邊信息融合到文本特征提取過程的必要性。
例如有一個(gè)新聞?wù)篈公司已召回了所有的可能感染細(xì)菌的蘋果。如果這是一個(gè)健康類別的新聞,“細(xì)菌”是用戶重點(diǎn)關(guān)注的詞;如果是投資類別的新聞,“A公司”將是用戶重點(diǎn)關(guān)注的詞。在新聞推薦的任務(wù)中,每個(gè)詞的重要程度隨著類別這種邊信息而改變。而NLP領(lǐng)域的文本特征提取網(wǎng)絡(luò)則對(duì)這些詞一視同仁,它的任務(wù)是盡可能把摘要中所有語義放入特征中。而將邊信息(類別信息)融合到文本特征提取過程中,對(duì)不同詞語產(chǎn)生不同的關(guān)注度,可以縮小2個(gè)任務(wù)的目標(biāo)差異,能將文本特征提取的優(yōu)化目標(biāo)對(duì)齊到更好的推薦上。
邊信息除了影響不同詞語的關(guān)注度以外,還影響詞語的語義。比如“跳水”這個(gè)詞,在運(yùn)動(dòng)類別的新聞中表示一種運(yùn)動(dòng)的語義,在投資中則表示了股價(jià)迅速大幅度下滑的意思。又比如“唐山大地震”在電影類的新聞里,表示一部災(zāi)難片的語義,而在其他新聞中表征的語義可能就是一場(chǎng)地震。同一個(gè)詞在不同領(lǐng)域會(huì)有不同語義。因此類別這種邊信息應(yīng)該融合到短語的特征提取中,使得同一個(gè)短語也能產(chǎn)生出不同的特征。
上述2個(gè)例子顯示了將邊信息融合到文本特征提取中的重要性。但是目前絕大多數(shù)算法都并沒有在邊信息的指導(dǎo)下融合文本特征?,F(xiàn)在有很多主流的新聞推薦網(wǎng)絡(luò)都是用了CNN(卷積神經(jīng)網(wǎng)絡(luò))作為文本特征提取器,如NPA[7](Neural News Recommendation with Personalized Attention)、LSTUR[8](Neural News Recommendation with Long-and Short-term User Representations)、NAML[9](Neural News Recommendation with Attentive Multi-View Learning)等。在本文中,SIACNN的設(shè)計(jì)是為了解決上述2個(gè)例子中的問題,將邊信息類別信息融合到文本特征中。
新聞推薦系統(tǒng)[10-15]的技術(shù)涉及NLP和數(shù)據(jù)挖掘領(lǐng)域。隨著信息過載問題越發(fā)嚴(yán)重,新聞推薦系統(tǒng)也越來越廣泛地被研究。早期新聞推薦系統(tǒng)主要是靠繁雜的特征工程[4,16-18]。Liu等[13]使用不同類型新聞的點(diǎn)擊分布來構(gòu)建用戶的長(zhǎng)短期興趣特征。Phelan等[17]結(jié)合了推特上的內(nèi)容和RSS(Really Simple Syndication)新聞的投放數(shù)據(jù)流來提高推薦效果。這些方法都需要基于先驗(yàn)的知識(shí)來設(shè)計(jì)特征。在近些年,深度學(xué)習(xí)降低了特征工程的難度,被廣泛應(yīng)用于新聞推薦中。目前大多數(shù)深度學(xué)習(xí)模型都基于自動(dòng)編碼器、CNN[19]、RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))和transformer來提取文本特征(如標(biāo)題和摘要)。Okura等[20]使用帶有弱監(jiān)督的自動(dòng)編碼器來獲取文本特征。還有用SDAE(stacked denoising autoencoder)自動(dòng)編碼器來提取文本特征[21]。DKN[22](Deep Knowledge-Aware Network)利用CNN將文本特征和知識(shí)圖譜信息融合。Wang等[23]將新聞標(biāo)題、類別和二級(jí)類別拼接成單詞序列,并用3D卷積來 提 取 文 本 特 征。Lee等[24]使 用BIGRU(Bidirectional Gated Recurrent Unit)來提取文本特征。Wu等[25]用transformer對(duì)標(biāo)題和摘要分別進(jìn)行特征提取,還使用BERT(Bidirectional Encoder Representations from Transformers)提取文本特征,并用模型蒸餾來縮減模型復(fù)雜度[26]。
比起NLP的任務(wù),新聞推薦系統(tǒng)有額外的邊信息。大多數(shù)模型沒有很好地利用邊信息提取文本特征。比如NPA[7]使用CNN提取單詞之間的局部特征,再將局部特征聚合成新聞的文本特征。LSTUR[8]用類似的方法提取文本特征后簡(jiǎn)單地將類別信息拼接在新聞特征上。在NAML[9]中,分別提取標(biāo)題、摘要的文本特征還有類別特征,然后將三者用注意力機(jī)制聚合成新聞特征。在DAN[27](Deep Attention Neural Network)中,新聞特征由標(biāo)題特征和實(shí)體特征卷積后拼接而成。這些模型的共同點(diǎn)是文本特征提取過程中沒有融合邊信息,而在推薦網(wǎng)絡(luò)中才使用到了邊信息。文獻(xiàn)[28]提出了CSCNN(Category-Specific CNN)的概念,證明了提前將邊信息融合到圖像特征提取的過程中也有利于推薦系統(tǒng)。受此啟發(fā),本文設(shè)計(jì)SIACNN以替換NPA、NAML、LSTUR等模型的CNN部分。
有少數(shù)模型已在文本特征提取過程中融合了邊信息,如Wang等[23]將類別作為單詞序列拼接在標(biāo)題后,并用3D卷積將文本信息和邊信息融合。但是這種融合方式過于簡(jiǎn)單直接,并不是所有邊信息都可以變成單詞序列。DKN使用不同大小的卷積核對(duì)文本和知識(shí)圖譜共同卷積,并用max over time pooling來提取新聞特征。在本文中方法可以視作對(duì)DKN文本特征提取模式的擴(kuò)充和改進(jìn)。
SIACNN (Side Information Aggregated Convolutional Neural Network)由SWANN(Single Word Attention Neural Network)、CNN 和MWACNN(Multiple Words Attention Convolutional Neural Network)組成。
先給出NPA、NAML等模型的共有結(jié)構(gòu)。如圖1,第1部分是單詞嵌入層。隨機(jī)初始化一個(gè)嵌入矩陣WE,WE∈RV×D,其中V為單詞總量,D為單詞特征的維度。每個(gè)單詞wi通過查表的方式從嵌入矩陣中獲取到它對(duì)應(yīng)的單詞特征向量ei。第2個(gè)部分是卷積層。卷積層共享權(quán)重的特點(diǎn)有助于提取相鄰單詞之間的局部特征。每個(gè)單詞特征ei通過卷積層得到結(jié)合局部特征的ci。最后一部分是將這些單詞特征聚合成新聞的文本特征。如求和聚合,又如NPA使用用戶信息生成的權(quán)重聚合等。NPA、LSTUR、NAML等模型大致遵從這個(gè)結(jié)構(gòu),也有一些微小的差別。如LSTUR將類別特征拼接在了聚合后的新聞文本特征后,而NAML則是對(duì)標(biāo)題和摘要分別使用這樣的結(jié)構(gòu)提取文本特征,最后再將兩者合并起來。
圖1 新聞推薦中文本特征提取的通用結(jié)構(gòu)Fig.1 General structure of text feature extraction in news recommendation
圖1里虛線框中的部分被置換成了SIACNN,如圖2。SIACNN比普通的卷積層多了2個(gè)模塊:SWANN和MWACNN。SWANN結(jié)合了邊信息和單詞特征,根據(jù)不同的新聞?lì)愋?,給予不同單詞不同關(guān)注度。MWACNN將邊信息融合到詞組的特征提取中,這使得同一個(gè)詞組在不同類型的新聞中有不同的語義。SIACNN的2個(gè)子結(jié)構(gòu)分別針對(duì)上文提及的2個(gè)案例做出優(yōu)化。
圖2 SIACNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of SIACNN
圖2是SIACNN的結(jié)構(gòu)圖。每個(gè)單詞的特征向量ei作為單詞特征輸入,經(jīng)過fSWANN后,每個(gè)單詞獲得一個(gè)關(guān)注度權(quán)重ui,將ui和對(duì)應(yīng)的ei相乘,每個(gè)單詞ei被映射成結(jié)合邊信息的單詞特征ti,對(duì)應(yīng)公式見式(1):
式中:ui∈R,ti、ei∈RD,i∈[1,m];vsideinformation為邊信息;m為句子單詞數(shù)量。
緊接著,{ti|i∈[1,m]}組成了一張圖,在這張圖上利用CNN來捕獲相鄰單詞的局部特征,見式(2):
式中:t(i-lt):(i+lt)是由以第i個(gè)單詞為中心的、連續(xù)2lt+1個(gè)單詞特征拼接成的圖,大小為(2lt+1)×D;Ft∈RNf×(2lt+1)D代表Nf個(gè)卷積核,每個(gè)卷積核的大小為(2lt+1)×D;bt為每個(gè)卷積核的偏置。
最后每個(gè)特征向量ci都會(huì)根據(jù)MWACNN模塊得到一個(gè)修正向量ki。最終的每個(gè)特征向量與修正向量相乘得到結(jié)合邊信息的文本特征fi,見式(3):
式中:Kj為 不同詞組長(zhǎng)度;c(i-Kj):(i+Kj)為 以i為中心、2Kj+1為長(zhǎng)度的詞組的特征圖,一共預(yù)設(shè)3種詞組長(zhǎng)度;ci、fi和ki都是Nf維度的向量。
在不同類型的新聞中用戶對(duì)每個(gè)單詞的關(guān)注度是不一樣的。例如一個(gè)新聞?wù)篈公司已召回了所有的可能感染細(xì)菌的蘋果,在投資類新聞中“A公司”的關(guān)注度更大,而在健康類的新聞里“細(xì)菌”的關(guān)注度更高。SWANN就是為了針對(duì)這種情況設(shè)計(jì)的網(wǎng)絡(luò),它將類別信息和文本融合,分配不同的關(guān)注度到不同單詞。模型結(jié)構(gòu)如圖3所示。
圖3 SWANN網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of SWANN
圖3中,SWANN將所有單詞的嵌入向量和所有的邊信息作為模型的輸入,利用一個(gè)共享的全連接層用于對(duì)每個(gè)單詞做映射,最后產(chǎn)出每個(gè)單詞的特征向量vi。
式中:Vw和bw分別為所有單詞共享全連接層的參數(shù)矩陣和偏置;Vw的大小是H×D,得到H維向量vi。
類似地,每種邊信息也都通過全連接層做映射。最后邊信息的特征由所有映射后的向量拼接而成,見式(5):
式中:Vsi和bsi分別為全連接層的參數(shù)矩陣和偏置,不同的邊信息對(duì)應(yīng)的全連接層不共享參數(shù)。一共p種邊信息,所有邊信息的特征拼接后得到邊信息特征q,q也是一個(gè)H維向量。
最后將每個(gè)單詞的特征向量vi和邊信息特征向量q內(nèi)積得到單詞級(jí)別的關(guān)注度ri。通過softmax函數(shù)對(duì)ri進(jìn)行歸一化得到歸一化后的ui。
在通過SWANN后,每個(gè)單詞具有不同的關(guān)注度。在通過CNN層后,每個(gè)單詞的特征ci也獲得了相鄰單詞的局部特征。在結(jié)合了單詞關(guān)注度和局部信息后,單詞特征將送入MWACNN的模塊中。
前文提及“跳水”在投資類新聞和運(yùn)動(dòng)類新聞里含義的差別,以及“唐山大地震”在電影類新聞和其他類新聞里的含義差別。利用MWACNN可以結(jié)合邊信息豐富詞組的語義,使得同一個(gè)詞組在多個(gè)類型的新聞中能獲得多種語義。
如圖4,MWACNN也和SWANN一樣對(duì)每個(gè)單詞使用一個(gè)共享的全連接層,對(duì)每個(gè)邊信息使用獨(dú)立的全連接層。
圖4 MWACNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network structure of MWACNN
式中:Uw和bw分別為單詞映射的全連接層參數(shù)和偏置;Usi和bsi分別為每個(gè)邊信息的映射全連接層參數(shù)和偏置;ci為Nf維向量,Uw為d×Nf的參數(shù)矩陣,其中d?Nf。
將所有vi拼接得到大小為m×d的圖Gw,比起直接將ci拼接成m×Nf大小的圖來說,Gw更小,因?yàn)関i的維度比ci小很多,對(duì)ci的映射起到了壓縮Gw的作用。
每個(gè)邊信息特征qi被形變成了同樣m×d大小的圖Gsi。p個(gè)邊信息對(duì)應(yīng)的圖和單詞對(duì)應(yīng)的圖按照通道維度堆疊,從而組成了m×d×(p+1)大小的圖G。
在圖G上使用CNN卷積可以將多種邊信息和文本融合在一起。為了將詞組長(zhǎng)度的因素考慮在內(nèi),使用了3組不同大小的卷積核(3×d,5×d,7×d),每種卷積核對(duì)應(yīng)提取不同長(zhǎng)度詞組的特征。
通過3種尺度的卷積核得到F1、F2、F3大小都是m×d的特征圖。同一個(gè)單詞在3種尺度的卷積核中得到3個(gè)特征向量。例如,愛奇藝是當(dāng)下熱門的視頻APP,“愛”這個(gè)單詞在長(zhǎng)度為3的卷積核下獲得了詞組“愛奇藝”的語義F1,而在長(zhǎng)度為5的卷積核下獲得了“愛奇藝是當(dāng)”的語義F2,在長(zhǎng)度為7的卷積核下獲得了“愛奇藝是當(dāng)下熱”的語義F3。由于F1對(duì)應(yīng)的“愛奇藝”是慣用詞組,常出現(xiàn)于數(shù)據(jù)集中,在實(shí)驗(yàn)中表現(xiàn)出更大的激活值,因此對(duì)產(chǎn)出的特征圖使用最大池化,這樣能使得慣用詞組對(duì)應(yīng)的特征值主導(dǎo)語義,而屏蔽非慣用詞對(duì)語義的影響。最大池化的公式見式(13):
在式(7)中對(duì)單詞特征做了降維,導(dǎo)致Gout的大小是m×d,小于m×Nf,因此MWACNN在最后對(duì)特征圖Gout做了雙線性插值使其大小恢復(fù)到m×Nf。為了限制邊信息融合對(duì)原特征的改動(dòng)量,增加了sigmoid函數(shù)。
MWACNN在式(7)中對(duì)特征做了降維,使得特征圖縮小,后又在式(14)中通過雙線性插值做特征升維,使其恢復(fù)成原來的特征維度。這樣做的原因是為了控制過擬合,降維越多防止過擬合的效果越好。降維后的特征維度d可以根據(jù)模型的擬合情況靈活調(diào)整。最后Gout的大小是m×Nf。將其分裂后得到m個(gè)大小為Nf的修正向量ki,將它分別和原來的m個(gè)特征向量ci做元素積,如式(3)。
最后整合SIACNN的整個(gè)流程,得到偽代碼如下:
使用MSN新聞收集的大規(guī)模新聞數(shù)據(jù)集MIND[29]來進(jìn)行實(shí)驗(yàn),它是少數(shù)大規(guī)模并且擁有豐富文本信息、類別信息、用戶點(diǎn)擊信息和用戶曝光信息的數(shù)據(jù)集。按照時(shí)間排序,將前80%的數(shù)據(jù)作為訓(xùn)練集,10%作為驗(yàn)證集合,最后的10%作為測(cè)試集合。
在實(shí)驗(yàn)前,對(duì)數(shù)據(jù)集做了統(tǒng)計(jì)學(xué)分析。表1詳細(xì)展現(xiàn)了數(shù)據(jù)集的基本信息。表1中所有的結(jié)果被取整。
表1 數(shù)據(jù)集基本信息Tab.1 Basic information of dataset
實(shí)驗(yàn)中,出于顯存的考慮,單詞嵌入的維度D被設(shè)定為200。使用了預(yù)訓(xùn)練的Glove嵌入矩陣[30]來初始化本實(shí)驗(yàn)的嵌入矩陣WE。根據(jù)表1中統(tǒng)計(jì)的標(biāo)題平均單詞數(shù),將標(biāo)題的最大長(zhǎng)度設(shè)置為15。出于顯存的考慮,將摘要的最大長(zhǎng)度設(shè)置為30,所以每個(gè)新聞的文本信息一共使用45個(gè)單詞。根據(jù)用戶點(diǎn)擊新聞數(shù)的分位數(shù),用戶點(diǎn)擊歷史的最大長(zhǎng)度設(shè)置為20(超過80%分位數(shù)),當(dāng)用戶點(diǎn)擊歷史長(zhǎng)度超過20的時(shí)候取最新的20次點(diǎn)擊。訓(xùn)練時(shí)使用訓(xùn)練集中所有的正樣本和下采樣后的負(fù)樣本,負(fù)樣本與正樣本數(shù)量的比例控制為5:1。負(fù)樣本是從用戶曝光后未點(diǎn)擊的新聞里隨機(jī)采樣,正樣本是用戶點(diǎn)擊的新聞。據(jù)表1,類別和子類別的個(gè)數(shù)分別是19和286,對(duì)應(yīng)的特征維度依照經(jīng)驗(yàn)設(shè)置為10和20。在SWANN的實(shí)驗(yàn)中,qi的維度設(shè)置為100時(shí),可以在過擬合與欠擬合之間平衡。類似在MWACNN實(shí)驗(yàn)中,qi的維度d被設(shè)置為12。使用主流的Adam[31]作為模型的優(yōu)化器,訓(xùn)練批次大小按照慣例設(shè)置為256。實(shí)驗(yàn)中根據(jù)擬合情況將droupout rate[32]設(shè)置為0.3。
為了證明SIACNN的有效性,選擇了幾個(gè)推薦系統(tǒng)中通用和使用廣泛的模型:LibFM(Factorization Machine Library)、Wide&Deep、
DeepFM(Deep Factorization Machine)以 及DIN(Deep Interest Network)。同時(shí)還選擇了幾個(gè)使用CNN的最先進(jìn)的新聞推薦模型:LSTUR、NAML、NPA。
LibFM[33]:基于因子分解機(jī)進(jìn)行推薦,被廣泛使用。測(cè)試集中有37.76%的新聞沒有出現(xiàn)在訓(xùn)練集中,為了提高LibFM的效果,需要通過手動(dòng)構(gòu)造文本特征結(jié)合到LibFM中。將文本的TF-IDF(Term Frequency-Inverse Document Frequency)特征作為L(zhǎng)ibFM的輸入。
Wide&Deep[34]:由wide和deep兩部分組成,wide部分是線性映射層,deep部分是多層感知機(jī),特征同LibFM。
DeepFM[35];由FM(Factorization Machine)和deep組成,F(xiàn)M部分是一個(gè)因子分解機(jī),deep部分是多層感知機(jī),特征同LibFM。
DIN[36]:使用注意力機(jī)制聚合用戶點(diǎn)擊的歷史新聞。將候選新聞、歷史新聞、兩者的差、兩者的元素積通過注意力機(jī)制生成不同歷史點(diǎn)擊的權(quán)重。特征仍然同LibFM。
LSTUR[8]:將類別和子類別的特征拼接在新聞的文本特征上,利用GRU(Gated Recurrent Unit)學(xué)習(xí)歷史點(diǎn)擊新聞序列的特征。
NPA[7]:將用戶id用于生成單詞級(jí)別和新聞級(jí)別的注意力機(jī)制。用注意力機(jī)制聚合每個(gè)新聞特征和歷史點(diǎn)擊序列特征。
NAML[9]:一個(gè)多視角注意力深度神經(jīng)網(wǎng)絡(luò)。
LSTUR、NAML和NPA中的CNN被置換為SIACNN,在后續(xù)的實(shí)驗(yàn)中分別記作LSTURSIACNN、NAML-SIACNN和NPA-SIACNN。為了更加公平地比較,實(shí)驗(yàn)中所有模型使用相同長(zhǎng)度的標(biāo)題和摘要,并確保在輸入的信息量上是對(duì)等的。
在實(shí)驗(yàn)中,使用的驗(yàn)證指標(biāo)是推薦系統(tǒng)點(diǎn)擊率預(yù)估模型常用的驗(yàn)證指標(biāo),如AUC(Area Under Curve)、MRR(Mean reciprocal rank)、nDCG@5(Normalized Discounted cumulative gain@5)、nDCG@10(Normalized Discounted cumulative gain@10)。每個(gè)實(shí)驗(yàn)結(jié)果都是重復(fù)實(shí)驗(yàn)8次后的均值。
實(shí)驗(yàn)結(jié)果如表2,測(cè)試集類型為:全部測(cè)試集、老用戶測(cè)試集、新用戶測(cè)試集。老用戶測(cè)試集表示測(cè)試集合中出現(xiàn)在訓(xùn)練集中的用戶對(duì)應(yīng)的樣本集合。新用戶測(cè)試集表示測(cè)試集合中未出現(xiàn)在訓(xùn)練集中的新用戶對(duì)應(yīng)的樣本集合。根據(jù)對(duì)文本特征的處理方式,又將模型分成了3組,A組包括LibFM、Wide&Deep、DeepFM、DIN,A組的模型都利用TFIDF手動(dòng)構(gòu)造的文本特征。B組包括NPA、LSTUR、NAML,是利用神經(jīng)網(wǎng)絡(luò)提取文本特征的推薦模型。C組在B組的基礎(chǔ)上將邊信息利用SIACNN融合到文本特征提取網(wǎng)絡(luò)中。
表2 MIND數(shù)據(jù)集中多組實(shí)驗(yàn)結(jié)果Tab.2 Multiple experiment results of MIND dataset
從表2可以觀察到幾個(gè)現(xiàn)象。B組的表現(xiàn)普遍優(yōu)于A組。在A組中,先構(gòu)造TF-IDF特征,再利用模型學(xué)習(xí)和推薦,這是一個(gè)異步的過程。而在B組中,文本特征提取和推薦都交給神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí),是端到端的學(xué)習(xí)過程。這個(gè)現(xiàn)象表明,網(wǎng)絡(luò)端到端的學(xué)習(xí)效果優(yōu)于手動(dòng)構(gòu)造文本特征后推薦的異步學(xué)習(xí)。
第2個(gè)能觀察到的是,C組基于B組替換了CNN為SIACNN后效果均有提升。NAML、LSTUR和NPA模型在使用了SIACNN后AUC指標(biāo)分別提升了0.003 5、0.011 9、0.017 8,在MRR指標(biāo)上分別提升0.004 6、0.011 0、0.020 5,在nDCG@5指標(biāo)中分別提升了0.006 6、0.010 2、0.020 4,在nDCG@10指標(biāo)上分別提升了0.005 8、0.009 6、0.018 7。NPA在使用SIACNN后提升最為顯著,這主要因?yàn)镹PA的網(wǎng)絡(luò)結(jié)構(gòu)中并沒有利用好新聞?lì)悇e信息,SIACNN的引入增加了類別的信息量。LSTUR和NAML引入SIACNN后提升了效果,驗(yàn)證了SIACNN能更好地將類別信息融合到推薦系統(tǒng)中,對(duì)文本的表征方式也更加利于優(yōu)化推薦效果。在上述經(jīng)典的幾個(gè)使用CNN的新聞推薦系統(tǒng)中,SIACNN均產(chǎn)生了正向的效果,展現(xiàn)了它的通用性和擴(kuò)展性。
第3個(gè)發(fā)現(xiàn)是,NAML表現(xiàn)比LSTUR好,LSTUR表現(xiàn)比NPA好。NAML在文本提取的最后利用注意力將邊信息融合到文本特征中,而LSTUR僅僅將邊信息拼接到文本特征后,NPA在提取文本特征時(shí)甚至沒有利用到邊信息。從這個(gè)角度看,文本和邊信息的融合方式直接會(huì)影響推薦的效果。
最后,全部測(cè)試集合、老用戶測(cè)試集和新用戶測(cè)試集這3個(gè)集合中各模型的表現(xiàn)差異不大。老用戶的AUC略高于新用戶的AUC。這意味著模型已經(jīng)能很好通過用戶點(diǎn)擊過的新聞理解用戶的興趣,并找到了新用戶和老用戶的行為模式共性。
SIACNN由SWANN和MWACNN兩部分組成。驗(yàn)證SWANN和MWACNN兩者分別帶來的貢獻(xiàn)是必要的。將SWANN或者M(jìn)WACNN分別移除,進(jìn)行了多組實(shí)驗(yàn),來驗(yàn)證兩者各自的有效性,避免網(wǎng)絡(luò)的冗余。
如圖5,CNN版本標(biāo)記為‘+’,SWANN版本標(biāo)記為星號(hào),MWACNN版本標(biāo)記為三角形,SIACNN版本標(biāo)記為圓形。圖5中又分為4個(gè)子圖,分別對(duì)應(yīng)指標(biāo):AUC、MRR、nDCG@5、nDCG@10。每條曲線下的橫軸標(biāo)注了它對(duì)應(yīng)的基線模型??梢杂^察到星號(hào)和三角形全都高于對(duì)應(yīng)的‘+’號(hào),因此SWANN和MWACNN各自在CNN基礎(chǔ)上提升了效果。說明2個(gè)部分都是對(duì)推薦起到正向效果的。另外所有的圓形都是曲線中的最高點(diǎn),因此SIACNN比單獨(dú)SWANN或者單獨(dú)MWACNN表現(xiàn)更好,意味著SWANN和MWACNN的功能是不重合的。因此兩者能共同促進(jìn)模型的推薦效果,兩者都是不可或缺的。
圖5 SWANN和MWACNN的消融實(shí)驗(yàn)Fig.5 Ablation experiments of SWANN and MWACNN
探索在MWACNN中的一個(gè)重要的超參數(shù)。MWACNN選擇多種不同大小的卷積核來捕獲不同長(zhǎng)度詞組的特征。嘗試了以下5組卷積核:1×1&3×3&5×5、 3×3&5×5&7×7、5×5&7×7&9×9、1×1&5×5&9×9、3×3&5×5&7×7&9×9。分別實(shí)驗(yàn),得到的結(jié)果如表3。
表3 多卷積核組合的實(shí)驗(yàn)結(jié)果Tab.3 Experimental results of convolution kernel combination
經(jīng)過實(shí)驗(yàn)確定最佳的卷積核組合為3×3、5×5、7×7。本實(shí)驗(yàn)基于LSTUR-SIACNN模型。
使用一些案例來可視化SIACNN的注意力權(quán)重。測(cè)試的案例為“an agriculture company has recalled all infected apples”。在未使用SWANN時(shí),所有單詞在卷積時(shí)都是一視同仁的。SWANN能學(xué)習(xí)出不同類別新聞對(duì)應(yīng)單詞的影響力,因此將該句子每個(gè)單詞的權(quán)重ui用柱狀圖表征出。如圖6,當(dāng)新聞?lì)悇e是健康時(shí),“infected”、“apples”和“recalled”的權(quán)重最高;當(dāng)新聞?lì)悇e是財(cái)經(jīng)時(shí),“company”、“agriculture”和“infected”的權(quán)重最高。權(quán)重和類別之間的關(guān)系是符合預(yù)期的。在本案例中,SWANN利用類別這種邊信息,使得網(wǎng)絡(luò)對(duì)不同單詞產(chǎn)生不同的關(guān)注度,從而提高了推薦的效果。
圖6 單詞注意權(quán)重可視化Fig.6 Visualization of weight of each word
另一個(gè)案例是“beyond your dream”這個(gè)詞組。“beyond your dream”在汽車類別下對(duì)應(yīng)的含義是比亞迪的汽車品牌全稱BYD,而在生活方式的類別下是指超越夢(mèng)想,參照詞組設(shè)定為“public transport”以及“work hard”。理想的情況下“beyond your dream”應(yīng)該在汽車類別的新聞里接近“public transport”的語義,而在生活方式的類別下接近“work hard”的語義。用馬爾可夫算法抽取最高頻的2 000個(gè)詞組,它們和“beyond your dream”、“public transport”以及“work hard”組成2 003個(gè)詞組。將這些詞組分別作為單獨(dú)的句子送入模型中,每個(gè)句子利用SIACNN得到融合邊信息的文本特征向量f。將2 003個(gè)f向量利用主成分分析(PCA)算法投射到二維平面內(nèi),如圖7所示。
圖7中,圓形符號(hào)表示“public transport”,三角形表示“beyond your dream”,星號(hào)表示“work hard”。圖7a代表汽車類別,其中的“beyond your dream”更接近“public transport”。圖7b代表生活方式類別,其中的“beyond your dream”更接近“work hard”。這也是符合MWACNN的預(yù)期的,利用邊信息給詞組更豐富的表達(dá)方式,這也有助于提升推薦效果。
圖7 詞組特征向量主成分分析投影圖Fig.7 PCA projection image of feature vectors of phrases
設(shè)計(jì)和呈現(xiàn)了SIACNN的模型結(jié)構(gòu),它是一種適用于推薦系統(tǒng)的、能將邊信息和文本特征提取相融合的網(wǎng)絡(luò),由SWANN和MWACNN組成,SWANN是賦予不同單詞不同關(guān)注度的網(wǎng)絡(luò),MWACNN是根據(jù)邊信息給予詞組不同含義的網(wǎng)絡(luò)。通過微軟新聞采集的大型新聞數(shù)據(jù)集MIND進(jìn)行大量實(shí)驗(yàn),證明了SIACNN有效提升了推薦效果。通過消融實(shí)驗(yàn)證明了SIACNN子結(jié)構(gòu)的有效性。將SIACNN代替3個(gè)經(jīng)典的新聞推薦網(wǎng)絡(luò)中的CNN均取得了很好的效果,證明了它的通用性和擴(kuò)展性。
作者貢獻(xiàn)聲明:
衛(wèi) 剛:論文撰寫、深度神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)。
邵 偉:論文撰寫、深度神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)與程序設(shè)計(jì)。
王志成:深度神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)與數(shù)據(jù)分析。