呂曉琦,紀(jì) 科+,陳貞翔,孫潤(rùn)元,馬 坤,鄔 俊,李浥東
1.濟(jì)南大學(xué) 信息科學(xué)與工程學(xué)院,濟(jì)南 250022
2.濟(jì)南大學(xué) 山東省網(wǎng)絡(luò)環(huán)境智能計(jì)算技術(shù)重點(diǎn)實(shí)驗(yàn)室,濟(jì)南 250022
3.北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044
互聯(lián)網(wǎng)將全球信息互連形成了信息時(shí)代不可或缺的基礎(chǔ)信息平臺(tái),其中知識(shí)分享服務(wù)已經(jīng)成為人們獲取信息的主要工具。為了加快互聯(lián)網(wǎng)知識(shí)共享,出現(xiàn)了大量以知乎為代表的問(wèn)答社區(qū)。用戶注冊(cè)社區(qū)后可交互式提出與回答問(wèn)題,達(dá)到知識(shí)共享和交換。然而,伴隨用戶急劇增多,平臺(tái)短時(shí)間內(nèi)積攢了數(shù)目巨大、類(lèi)型多樣的問(wèn)題,遠(yuǎn)遠(yuǎn)超過(guò)有效回復(fù)數(shù),嚴(yán)重降低了用戶服務(wù)體驗(yàn)。如何將用戶提出的問(wèn)題有效推薦給可能解答的用戶,以及挖掘用戶感興趣的問(wèn)題是這些平臺(tái)面臨的嚴(yán)重挑戰(zhàn)。這種情況下,工業(yè)界和學(xué)術(shù)界對(duì)以上問(wèn)題開(kāi)展了廣泛研究,提出了一些針對(duì)問(wèn)答社區(qū)的專家推薦方法提高平臺(tái)解答效率。
現(xiàn)有工作大多利用基于內(nèi)容的推薦算法解決該問(wèn)題,比如配置文件相似性、主題特征相似性等,匹配效果依賴于人工構(gòu)建特征的質(zhì)量。近年來(lái),以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、Attention 注意力機(jī)制為代表的深度學(xué)習(xí)技術(shù)不斷發(fā)展,并且已經(jīng)成功應(yīng)用到文本挖掘領(lǐng)域。相比傳統(tǒng)方法,深度模型可以學(xué)習(xí)到表達(dá)力更強(qiáng)的深度復(fù)雜語(yǔ)義特征。于是,出現(xiàn)了一些深度專家推薦算法,比如DeepFM、XDeepFM、CNN-DSSM等,大幅提升了傳統(tǒng)推薦算法的準(zhǔn)確度。
雖然以上工作很好地實(shí)現(xiàn)了專家推薦,但都是根據(jù)用戶長(zhǎng)期關(guān)注的話題及相關(guān)解答歷史刻畫(huà)用戶興趣,產(chǎn)生的推薦結(jié)果也相對(duì)固定。隨著時(shí)間推移,用戶會(huì)不斷學(xué)習(xí)新知識(shí),其關(guān)注點(diǎn)及擅長(zhǎng)解答的問(wèn)題也很可能發(fā)生改變,由此會(huì)產(chǎn)生用戶興趣變化,甚至短期興趣漂移。這些動(dòng)態(tài)變化會(huì)嚴(yán)重影響推薦算法效果,因此如何動(dòng)態(tài)刻畫(huà)用戶興趣就顯得尤為重要。其實(shí),用戶歷史回答行為具有明顯的時(shí)間序列關(guān)系,通過(guò)對(duì)已解答問(wèn)題的序列分析有很大可能感知用戶興趣變化。近年來(lái),循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)被廣泛用來(lái)處理序列數(shù)據(jù),比如長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)、門(mén)控循環(huán)單元(gated recurrent unit,GRU)等,可以根據(jù)前面狀態(tài)輸入結(jié)合當(dāng)前模型狀態(tài)產(chǎn)生當(dāng)前輸出。該類(lèi)方法可與CNN 結(jié)合處理問(wèn)題內(nèi)容序列數(shù)據(jù),從用戶歷史解答行為中挖掘長(zhǎng)期與短期興趣,從而動(dòng)態(tài)產(chǎn)生當(dāng)前興趣。
綜合以上討論,本文提出了結(jié)合注意力機(jī)制與循環(huán)神經(jīng)網(wǎng)絡(luò)的問(wèn)答社區(qū)專家推薦算法,能夠根據(jù)用戶歷史解答序列動(dòng)態(tài)構(gòu)建用戶興趣特征,實(shí)現(xiàn)推薦結(jié)果隨時(shí)間發(fā)展不斷調(diào)整。
主要工作與貢獻(xiàn)如下:
(1)基于預(yù)訓(xùn)練詞嵌入模型分別實(shí)現(xiàn)了問(wèn)題標(biāo)題與主題標(biāo)簽的語(yǔ)義嵌入向量表示,將CNN 卷積模型與Attention 注意力機(jī)制結(jié)合,構(gòu)造基于上下文的問(wèn)題編碼器,生成不同距離上下文的深度特征編碼。
(2)問(wèn)題編碼器對(duì)用戶歷史回答的問(wèn)題進(jìn)行序列編碼,利用長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)Bi-GRU 模型處理編碼后的問(wèn)題序列,并結(jié)合用戶主題標(biāo)簽嵌入向量構(gòu)造用戶興趣動(dòng)態(tài)編碼器。
(3)將問(wèn)題與用戶編碼器產(chǎn)生的深度特征點(diǎn)積運(yùn)算后加入全連接層實(shí)現(xiàn)相似度計(jì)算產(chǎn)生推薦結(jié)果。在知乎公開(kāi)數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)結(jié)果表明該算法性能明顯優(yōu)于目前比較流行的深度學(xué)習(xí)專家推薦算法。
“信息過(guò)載”是互聯(lián)網(wǎng)發(fā)展過(guò)程中面臨的巨大挑戰(zhàn),人們通過(guò)網(wǎng)絡(luò)接觸到大量冗余信息,遠(yuǎn)遠(yuǎn)超過(guò)個(gè)人能力。推薦系統(tǒng)是解決這一問(wèn)題最有效的技術(shù),已經(jīng)廣泛應(yīng)用到許多領(lǐng)域,實(shí)現(xiàn)了有價(jià)值信息的快速甄別及個(gè)性化服務(wù)。目前,應(yīng)用比較流行的推薦算法有基于內(nèi)容的推薦算法、基于協(xié)同過(guò)濾的推薦算法、混合推薦等?;趦?nèi)容的推薦算法是推薦系統(tǒng)最早采用的算法,具有很好的解釋性,核心思想是利用交互歷史構(gòu)建用戶興趣特征,根據(jù)用戶興趣和項(xiàng)目的特征相似性產(chǎn)生推薦結(jié)果。協(xié)同過(guò)濾算法根據(jù)用戶與項(xiàng)目之間的顯性與隱性交互信息構(gòu)造矩陣模型,利用矩陣中相似用戶和項(xiàng)目的歷史評(píng)分?jǐn)?shù)據(jù)預(yù)測(cè)當(dāng)前用戶對(duì)給定項(xiàng)目的偏好程度。混合推薦算法可將已有算法進(jìn)行組合彌補(bǔ)各自推薦技術(shù)的弱點(diǎn)。
專家推薦是推薦系統(tǒng)的一種特殊應(yīng)用,用于發(fā)現(xiàn)特定領(lǐng)域中具有解決問(wèn)題能力的專家用戶??蒲腥藛T針對(duì)問(wèn)答社區(qū)的專家推薦問(wèn)題開(kāi)展了一系列研究。早期工作主要依靠傳統(tǒng)信息檢索技術(shù)。后來(lái),很多工作提出了基于內(nèi)容的推薦算法解決該問(wèn)題,主要根據(jù)用戶興趣與問(wèn)題內(nèi)容的特征匹配程度產(chǎn)生推薦結(jié)果。其中,自然語(yǔ)言處理技術(shù)常被用來(lái)進(jìn)行信息提取,比如隱含狄利克雷分布主題模型(latent Dirichlet allocation,LDA)可以形成隱含語(yǔ)義主題分布特征來(lái)表征信息,但訓(xùn)練數(shù)據(jù)不足時(shí)其表示能力會(huì)減弱。后續(xù)研究將相似性計(jì)算轉(zhuǎn)化為分類(lèi)問(wèn)題,從問(wèn)題-用戶交互角度考慮了更多的內(nèi)容特征。近年來(lái),深度學(xué)習(xí)技術(shù)被應(yīng)用到推薦系統(tǒng),出現(xiàn)了一些基于神經(jīng)網(wǎng)絡(luò)的專家推薦算法,可以學(xué)習(xí)到表達(dá)力更強(qiáng)的語(yǔ)義特征,大幅提升了準(zhǔn)確度,比如DeepFM將神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)因子分解機(jī)進(jìn)行了結(jié)合;XDeepFM引入了壓縮交互網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)高階特征交互;深度語(yǔ)義匹配模型(deep structured semantic models,DSSM)通過(guò)深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)對(duì)文本進(jìn)行語(yǔ)義降維表達(dá)及語(yǔ)義相似性計(jì)算;CNN-DSSM在DSSM 的基礎(chǔ)上引入卷積層、池化層替代DNN 實(shí)現(xiàn)了上下文信息提取。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)最熱門(mén)的研究方向之一,已經(jīng)在計(jì)算視覺(jué)、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域取得了巨大成功,其優(yōu)勢(shì)在于通過(guò)深層網(wǎng)絡(luò)結(jié)構(gòu)可以組合低層特征形成更加抽象的高層語(yǔ)義特征。典型深度學(xué)習(xí)模型有卷積神經(jīng)網(wǎng)絡(luò)CNN、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN。CNN 是一種前饋神經(jīng)網(wǎng)絡(luò),通過(guò)卷積層、池化層等結(jié)構(gòu)可隱式地從訓(xùn)練數(shù)據(jù)學(xué)習(xí)到局部權(quán)值共享的特殊結(jié)構(gòu)特征,代表模型有ResNet、VGGNet、TextCNN等。RNN 是一類(lèi)擅長(zhǎng)處理序列數(shù)據(jù)輸入的神經(jīng)網(wǎng)絡(luò),通過(guò)層與層之間連接實(shí)現(xiàn)了序列數(shù)據(jù)前后關(guān)聯(lián),適合挖掘序列數(shù)據(jù)中的動(dòng)態(tài)時(shí)間行為,代表模型有LSTM、GRU等,后續(xù)逐漸衍生出更具特色的雙向變體模型Bi-LSTM、Bi-GRU,可以靈活控制長(zhǎng)短距離依賴信息。近年來(lái)出現(xiàn)了基于RNN和CNN 的復(fù)合神經(jīng)網(wǎng)絡(luò),此外Attention 注意力機(jī)制也被引入到深度學(xué)習(xí)模型,可以靈活地捕捉全局和局部聯(lián)系,使模型對(duì)特征有不同關(guān)注力。
假設(shè)用P 表示問(wèn)題集,U 表示用戶集,p為P 中的一個(gè)問(wèn)題樣本,μ為U 中的一個(gè)用戶樣本。給定問(wèn)題-用戶對(duì)(p,μ),為它設(shè)置一個(gè)狀態(tài)標(biāo)簽y∈{0,1},其中1 代表接受問(wèn)題邀請(qǐng)并且回答,0 代表未接受問(wèn)題邀請(qǐng),(p,μ,y)是一個(gè)訓(xùn)練樣本。根據(jù)上述定義,個(gè)訓(xùn)練樣本就組成了訓(xùn)練數(shù)據(jù)集,如式(1)所示:
本文利用訓(xùn)練數(shù)據(jù)集構(gòu)建模型,定義損失函數(shù)對(duì)模型進(jìn)行優(yōu)化,判斷當(dāng)前用戶μ是否會(huì)接受某個(gè)新問(wèn)題p邀請(qǐng)的標(biāo)簽y。
本章介紹本文提出的專家推薦算法,將算法命名為DSIERM(dynamic and static interest based expert recommendation model),算法主要包括問(wèn)題編碼器與用戶編碼器兩個(gè)核心部分,分別根據(jù)問(wèn)題描述信息和用戶歷史解答行為構(gòu)建問(wèn)題和用戶相對(duì)應(yīng)的深度編碼特征,結(jié)合用戶動(dòng)態(tài)興趣與長(zhǎng)期興趣產(chǎn)生推薦結(jié)果。
用戶提出一個(gè)問(wèn)題后會(huì)形成問(wèn)題標(biāo)題,同時(shí)也會(huì)被綁定若干標(biāo)簽便于引起專家用戶關(guān)注。問(wèn)題編碼器分別從問(wèn)題標(biāo)題和綁定標(biāo)簽學(xué)習(xí)特征向量產(chǎn)生最終的向量表示,其架構(gòu)如圖1 所示。
圖1 問(wèn)題編碼器結(jié)構(gòu)Fig.1 Structure of question encoder
根據(jù)數(shù)據(jù)集中的所有問(wèn)題記錄進(jìn)行訓(xùn)練,構(gòu)造問(wèn)題編碼器。
第一步,對(duì)問(wèn)題的標(biāo)題進(jìn)行分詞并執(zhí)行詞嵌入表示,將標(biāo)題轉(zhuǎn)換成隱含語(yǔ)義空間的詞向量表示。假設(shè)標(biāo)題中的詞為=[,,…,t],代表標(biāo)題長(zhǎng)度,轉(zhuǎn)化后的詞向量表示如式(3)所示。
其中,代表詞向量集合,為詞嵌入方法。
第二步,使用CNN 卷積神經(jīng)網(wǎng)絡(luò)捕捉局部上下文信息來(lái)進(jìn)一步優(yōu)化詞向量,假設(shè)用C表征T的上下文詞表示,如式(4)所示。
其中,是位置在和+-1 之間單詞的嵌入連接矩陣;和是CNN 卷積神經(jīng)網(wǎng)絡(luò)濾波器的參數(shù);是窗口大?。皇欠蔷€性激活函數(shù)ReLU。
第三步,由于不同的詞對(duì)標(biāo)題有不同的重要性,本文引入Attention 注意力機(jī)制為每個(gè)詞賦予不同權(quán)重。假設(shè)第個(gè)詞的注意力權(quán)重為A,計(jì)算方法如式(5)和式(6)所示。
其中,α是Attention 執(zhí)行時(shí)的中間生成變量,和是可訓(xùn)練參數(shù)。問(wèn)題標(biāo)題的最終向量表示是帶有權(quán)重的上下文詞向量表征總和,如式(7)所示。
問(wèn)題的綁定標(biāo)簽一般由提問(wèn)用戶自己設(shè)置,幫助鎖定其他用戶對(duì)當(dāng)前問(wèn)題的關(guān)注。假設(shè)當(dāng)前問(wèn)題的所有標(biāo)簽組成了集合=[,,…,g],是標(biāo)簽個(gè)數(shù)。輸入,利用詞嵌入實(shí)現(xiàn)每個(gè)標(biāo)簽的向量化表示=()=[,,…,G],然后對(duì)所有標(biāo)簽向量全局平均池化取平均值后形成標(biāo)簽向量表示q,如式(8)所示。
是池化平均參數(shù)矩陣,大小為·,是標(biāo)簽向量的維度。
給定第個(gè)問(wèn)題,經(jīng)過(guò)問(wèn)題編碼器,產(chǎn)生該問(wèn)題的標(biāo)題和綁定標(biāo)簽表示向量,兩者拼接產(chǎn)生最終問(wèn)題向量表示Q,如式(9)所示。
用戶回答問(wèn)題的時(shí)間序列反映了用戶興趣變化,可以據(jù)此分析用戶動(dòng)態(tài)興趣。此外,用戶也會(huì)選擇一些標(biāo)簽主動(dòng)展示自己的興趣,并且用戶標(biāo)簽相對(duì)固定,很長(zhǎng)時(shí)間都不會(huì)發(fā)生變化,可以反映用戶長(zhǎng)期固定興趣。用戶編碼器分別從解答行為序列和用戶標(biāo)簽學(xué)習(xí)特征向量組成最終的用戶向量表示,架構(gòu)如圖2 所示。
圖2 用戶編碼器結(jié)構(gòu)Fig.2 Structure of user encoder
結(jié)合數(shù)據(jù)集中的用戶記錄和問(wèn)題記錄,構(gòu)造用戶回答序列,并從用戶記錄中提取用戶相關(guān)信息進(jìn)行訓(xùn)練,構(gòu)造用戶編碼器。
挖掘當(dāng)前用戶回答過(guò)的問(wèn)題,首先,把它們按照回答時(shí)間先后排列為=[,,…,I],其中為該序列長(zhǎng)度;然后,利用3.1節(jié)的問(wèn)題編碼器對(duì)每個(gè)問(wèn)題進(jìn)行編碼獲取它們的問(wèn)題向量表示=[,,…,Q];最后,把序列輸入雙層Bi-GRU 網(wǎng)絡(luò)結(jié)構(gòu)來(lái)捕捉用戶動(dòng)態(tài)興趣變化。
圖3 GRU 模型結(jié)構(gòu)Fig.3 Structure of GRU model
將第一層Bi-GRU 的所有隱層狀態(tài)輸出h(∈[1,])輸入第二層Bi-GRU 獲得更細(xì)粒度的動(dòng)態(tài)表征,與第一層Bi-GRU 不同的是,第二層僅輸出最具代表性的最后一個(gè)隱層狀態(tài)h,作為給定用戶當(dāng)前的興趣表示u=h。計(jì)算方式同式(10)~(16)。
問(wèn)答序列可以捕捉到隨時(shí)間變化的用戶動(dòng)態(tài)興趣,標(biāo)簽信息可以提取到用戶長(zhǎng)期興趣。用戶動(dòng)態(tài)興趣和用戶長(zhǎng)期興趣拼接后形成最終的用戶表示向量,如式(17)所示。
圖4 判斷當(dāng)前用戶是否會(huì)接受此問(wèn)題Fig.4 Determine whether current user will accept the given question
其中,為全連接層函數(shù),激活函數(shù)為ReLU,并且可以設(shè)置為多個(gè)全連接層疊加結(jié)構(gòu)將高維稀疏特征壓縮映射到低維稠密特征。
本文實(shí)驗(yàn)數(shù)據(jù)集來(lái)自知乎(https://www.zhihu.com)、被開(kāi)放biendata 平臺(tái)(https://www.biendata.xyz/competition/zhihu2019/)。知乎是中文互聯(lián)網(wǎng)知名的問(wèn)答社區(qū),用戶分享彼此知識(shí),解答感興趣問(wèn)題,為互聯(lián)網(wǎng)源源不斷地提供多種多樣原始信息。原數(shù)據(jù)集包括知乎的問(wèn)題信息、用戶畫(huà)像、用戶回答記錄、用戶接受問(wèn)題邀請(qǐng)等信息,根據(jù)所提出的算法需求提取相關(guān)數(shù)據(jù)。表1 展示了數(shù)據(jù)集的基本統(tǒng)計(jì)信息,包括1 931 654 個(gè)用戶描述記錄(其中包括回答過(guò)的問(wèn)題序列編碼和用戶配置資料)、1 829 900 個(gè)問(wèn)題描述記錄、500 000 個(gè)問(wèn)題邀請(qǐng)記錄、所有問(wèn)題綁定標(biāo)簽和用戶配置標(biāo)簽共形成的100 000 個(gè)主題標(biāo)簽。數(shù)據(jù)集按照一定比例劃分為訓(xùn)練集和測(cè)試集,每次實(shí)驗(yàn)采用5 折交叉驗(yàn)證。
表1 數(shù)據(jù)集基本統(tǒng)計(jì)Table 1 Basic statistics of dataset
本節(jié)將本文提出的算法DSIERM 和以下三個(gè)基準(zhǔn)專家推薦算法進(jìn)行性能比較:
(1)DeepFM是在因子分解機(jī)(factorization machines,F(xiàn)M)基礎(chǔ)上衍生的算法,將深度神經(jīng)網(wǎng)絡(luò)(DNN)與FM 結(jié)合,同時(shí)提取到低階和高階特征,通過(guò)學(xué)習(xí)隱式的特征交互預(yù)測(cè)用戶行為。
(2)XDeepFM是DeepFM 的改進(jìn),增加了壓縮交互網(wǎng)絡(luò)結(jié)構(gòu)(compressed interaction network,CIN),以顯式與隱式結(jié)合的方式學(xué)習(xí)高階特征交互,側(cè)重特征交叉帶來(lái)的預(yù)測(cè)收益。
(3)CNN-DSSM是一種深度語(yǔ)義匹配模型,通過(guò)CNN 卷積層提取了滑動(dòng)窗口下的上下文信息,并利用池化層提取了全局的上下文信息,根據(jù)上下文語(yǔ)義向量匹配度預(yù)測(cè)用戶行為。
對(duì)比實(shí)驗(yàn)中本文還設(shè)置了該算法的另一種配置方式:
DSIERM-OS(only use static component)沒(méi)有 考慮長(zhǎng)期用戶興趣表示模塊,僅使用動(dòng)態(tài)興趣表示模塊,用來(lái)驗(yàn)證長(zhǎng)期用戶興趣的輔助作用。
實(shí)驗(yàn)部分本文綜合利用AUC(area under the ROC curve)、ACC(accuracy)和Logloss 指標(biāo)來(lái)評(píng)價(jià)算法預(yù)測(cè)效果:
本文的實(shí)驗(yàn)環(huán)境如下:硬件配置IntelCorei7-9750H CPU@2.60 GHz+8 GB 內(nèi)存;Windows10 X64位操作系統(tǒng);深度學(xué)習(xí)框架Anaconda Python3.0+Tensorflow+Keras。
將標(biāo)題和標(biāo)簽的詞嵌入都置于同一個(gè)向量空間,維度設(shè)置為64。CNN 卷積神經(jīng)網(wǎng)絡(luò)過(guò)濾器數(shù)量為64,窗口大小設(shè)置為3。Bi-GRU 設(shè)置了兩層結(jié)構(gòu),神經(jīng)元節(jié)點(diǎn)大小分別設(shè)置為128、32。對(duì)于問(wèn)題和用戶編碼器輸出向量的點(diǎn)積結(jié)果,最多設(shè)置了5 層全連接結(jié)構(gòu),其神經(jīng)元節(jié)點(diǎn)大小依次是1 024、512、256、128 和64。對(duì)于參數(shù)最優(yōu)化結(jié)構(gòu)的實(shí)驗(yàn)在下文詳述。在實(shí)驗(yàn)過(guò)程中,采用Adam 優(yōu)化器,批處理大小設(shè)置為2 048,學(xué)習(xí)率設(shè)置為0.000 1。
本節(jié)將所提出的算法與其他基準(zhǔn)算法進(jìn)行對(duì)比。圖5 展示了本文算法DSIERM 在全連接層結(jié)構(gòu)層數(shù)選擇上的實(shí)驗(yàn)結(jié)果:過(guò)少的結(jié)構(gòu)不利于提取稠密特征信息,過(guò)多的全連接層反而可能導(dǎo)致過(guò)擬合的狀況,綜合考慮把最終訓(xùn)練與預(yù)測(cè)時(shí)的全連接層結(jié)構(gòu)固定為5 層。圖6 展示了所有算法在不同迭代次數(shù)下的預(yù)測(cè)結(jié)果:隨著迭代次數(shù)增加,算法性能不斷提升,第4 次迭代后性能提升已經(jīng)不明顯,考慮到計(jì)算花銷(xiāo),接下來(lái)的實(shí)驗(yàn)將固定Epoch=4。圖7 展示了不同比例訓(xùn)練數(shù)據(jù)下算法的預(yù)測(cè)結(jié)果:當(dāng)采用10%訓(xùn)練數(shù)據(jù)時(shí),算法依然可以達(dá)到一定精度,說(shuō)明借助預(yù)訓(xùn)練好的詞嵌入向量可以將其他知識(shí)遷移進(jìn)來(lái),保證算法具有穩(wěn)定性,克服數(shù)據(jù)稀疏性問(wèn)題;隨著訓(xùn)練數(shù)據(jù)增加,算法性能不斷提升,說(shuō)明訓(xùn)練數(shù)據(jù)越多,算法構(gòu)建的模型越準(zhǔn)確,更能準(zhǔn)確表示用戶興趣。
圖5 不同全連接層結(jié)構(gòu)的性能變化Fig.5 Performance changes under different FC layers
圖6 不同Epoch 的性能變化Fig.6 Performance changes under different epochs
圖7 不同比例訓(xùn)練數(shù)據(jù)的性能變化Fig.7 Performance changes under different proportions of training data
表2 展示了所有算法在30%、70%、100%比例的訓(xùn)練數(shù)據(jù)上取得的實(shí)驗(yàn)結(jié)果。對(duì)比后發(fā)現(xiàn):首先,DeepFM 算法效果最差,原因在于其人工選取特征的方法效率較低,會(huì)損失一些特征信息;然后,XDeepFM算法效果要明顯優(yōu)于DeepFM,壓縮交互網(wǎng)絡(luò)的引入可以自動(dòng)學(xué)習(xí)高層特征交互,驗(yàn)證了特征交互可以更好地實(shí)現(xiàn)特征表示;其次,CNN-DSSM 算法效果要優(yōu)于XDeepFM,主要因?yàn)槠浠瑒?dòng)窗口特征表示方式使較多上下文信息得到保留,驗(yàn)證了上下文信息對(duì)特征表示的重要性;最后,總體上看本文提出的兩個(gè)算法要明顯優(yōu)于以上基準(zhǔn)算法,驗(yàn)證了用戶回答問(wèn)題的時(shí)序關(guān)系有助于發(fā)現(xiàn)用戶動(dòng)態(tài)興趣,并且DSIERM 要優(yōu)于DSIERM-OS,說(shuō)明動(dòng)態(tài)興趣與長(zhǎng)期固定興趣結(jié)合可以更好地表示用戶興趣。另外,問(wèn)題編碼器是本算法中最基本的底層結(jié)構(gòu),其學(xué)習(xí)到的特征向量不僅作為問(wèn)題特征表示,還作為用戶編碼器的問(wèn)題序列輸入用來(lái)學(xué)習(xí)用戶動(dòng)態(tài)興趣表示,因此問(wèn)題編碼器的輸出會(huì)嚴(yán)重影響最終預(yù)測(cè)結(jié)果。問(wèn)題編碼器的原始輸入是問(wèn)題標(biāo)題和問(wèn)題綁定標(biāo)簽,基于此本文設(shè)置了三組不同輸入的對(duì)比實(shí)驗(yàn)(輸入標(biāo)簽、輸入標(biāo)題、輸入標(biāo)簽和標(biāo)題的組合)來(lái)驗(yàn)證不同輸入特征引起的編碼效果的不同。由于實(shí)驗(yàn)僅驗(yàn)證問(wèn)題編碼器的效果,用戶編碼器無(wú)關(guān)變量需要去除,即僅使用用戶編碼器的動(dòng)態(tài)興趣表示模塊進(jìn)行接下來(lái)的實(shí)驗(yàn)。圖8 展示了三組實(shí)驗(yàn)在不同指標(biāo)下的結(jié)果,對(duì)比結(jié)果后發(fā)現(xiàn):由于標(biāo)題比標(biāo)簽攜帶更多信息,把標(biāo)題作為編碼器的輸入要比考慮標(biāo)簽學(xué)習(xí)到更好的特征向量;綜合考慮標(biāo)題和標(biāo)簽組合要比單獨(dú)考慮標(biāo)簽或者標(biāo)題的使用有更好的表示效果,同時(shí)也證明了多樣化的信息引入有助于優(yōu)化特征表示。
圖8 不同輸入信息對(duì)問(wèn)題編碼器的影響Fig.8 Influence of different input information on question encoder
表2 不同比例訓(xùn)練數(shù)據(jù)上所有算法的實(shí)驗(yàn)結(jié)果比較Table 2 Comparison of experimental results of all algorithms on different proportions of training data
問(wèn)題數(shù)量大、解答效率低是互聯(lián)網(wǎng)問(wèn)答社區(qū)面臨的嚴(yán)重挑戰(zhàn),本文提出了結(jié)合注意力與循環(huán)神經(jīng)網(wǎng)絡(luò)的專家推薦算法(DSIERM)來(lái)解決此難題。該算法包含問(wèn)題編碼器和用戶編碼器兩大核心部分。問(wèn)題編碼器實(shí)現(xiàn)了問(wèn)題標(biāo)題與綁定標(biāo)簽的深度特征聯(lián)合表示。用戶編碼器在用戶歷史回答問(wèn)題的時(shí)間序列上捕捉到動(dòng)態(tài)興趣,并結(jié)合用戶固定標(biāo)簽信息表征長(zhǎng)期興趣。最后的推薦結(jié)果根據(jù)問(wèn)題與用戶編碼器輸出向量的相似性計(jì)算,同時(shí)考慮了用戶動(dòng)態(tài)興趣與長(zhǎng)期興趣兩方面內(nèi)容。在來(lái)自知乎社區(qū)的真實(shí)數(shù)據(jù)上設(shè)置了多組對(duì)比實(shí)驗(yàn),結(jié)果表明該算法性能優(yōu)于目前比較流行的深度學(xué)習(xí)專家推薦算法,顯著提升了推薦準(zhǔn)確度。