候聰穎,王 鵬,朱麗霞,管曉寧
(國電南瑞科技股份有限公司,江蘇 南京 211000)
RPA是一類流程自動(dòng)化軟件工具,可以把常規(guī)工作任務(wù)自動(dòng)化,提升工作效率。然而目前大多數(shù)RPA工具只能自動(dòng)化一些重復(fù)性的操作,遇到人工判斷(如篩選、判斷、選擇等)的任務(wù),便難以執(zhí)行。為了應(yīng)對(duì)這一問題,通常使用推薦系統(tǒng)輔助RPA工具完成人為判斷的過程,然而,目前大多數(shù)推薦算法只考慮用戶的長期興趣偏好,這不僅需要大量的用戶信息,不利于RPA工具的使用,更會(huì)影響推薦性能。在實(shí)際生活中,考慮用戶的短期興趣和用戶與項(xiàng)目之間的交互,不僅能夠提升推薦系統(tǒng)的推薦效果,還能減少所需的用戶信息。
在這種情況下,序列推薦應(yīng)運(yùn)而生,相比較傳統(tǒng)的推薦方法,諸如協(xié)同過濾[1]利用海量用戶中相似用戶的興趣偏好進(jìn)行推薦,或是基于內(nèi)容的推薦[2]為用戶推薦其自身喜好物品的相似物品,序列推薦試圖理解用戶的行為習(xí)慣,進(jìn)行更加準(zhǔn)確、個(gè)性化和動(dòng)態(tài)地推薦。比如情境感知遞歸神經(jīng)網(wǎng)絡(luò)(CA-RNN)[3],通過收集大量上下文的信息來提升推薦性能;或者增加自注意力機(jī)制的神經(jīng)序列推薦系統(tǒng)[4];融合相似度方法和馬爾科夫鏈的Fossil[5];將內(nèi)存機(jī)制引入推薦系統(tǒng)中,并將其與協(xié)同過濾的推薦結(jié)果相結(jié)合的方法[6]。但它們?cè)谄胀〝?shù)據(jù)集上的表現(xiàn)低于預(yù)期,尤其是在稀疏數(shù)據(jù)集上的表現(xiàn)。
目前序列推薦中,性能較為優(yōu)異的有引入了長短期記憶模型的記憶優(yōu)先級(jí)模型[7];將自注意力機(jī)制與序列推薦相結(jié)合的SASRec[8]。但這2種模型偏向于用戶的短期興趣,在某些情況下會(huì)出現(xiàn)推薦效果差的情況。也有構(gòu)建深度遞歸神經(jīng)網(wǎng)絡(luò)(DRNN)[9]用于序列推薦;結(jié)合因子分解機(jī)(FMs)和基于度量方法的TransFM模型[10];將基于RNN[11]與鍵值存儲(chǔ)網(wǎng)絡(luò)(KV-MN)[12]集成在一起,構(gòu)建知識(shí)增強(qiáng)型序列推薦模型[13],另外還有二維卷積網(wǎng)絡(luò)的序列推薦模型(CosRec)[14]以及卷積序列嵌入推薦模型(CASER)[15]。這些方法設(shè)計(jì)新穎,但在很多方面都有很高的改進(jìn)空間,諸如擴(kuò)展神經(jīng)網(wǎng)絡(luò)層,增加多層感知器等。
為了解決這些問題,本文構(gòu)建了一種適用于RPA的卷積序列推薦模型。第一步,將用戶行為序列構(gòu)建的項(xiàng)目嵌入矩陣視為“圖像”;第二步,借鑒Inception的設(shè)計(jì)思想,利用靜態(tài)和動(dòng)態(tài)2種不同的卷積層從多角度提取用戶的短期興趣偏好[16],并將用戶的嵌入矩陣作為用戶的長期興趣偏好一起構(gòu)建完整的用戶興趣偏好;第三步,通過全連接層將卷積層的輸入和用戶嵌入矩陣連接起來,將它們投影到有N個(gè)節(jié)點(diǎn)的輸出層,進(jìn)行推薦。
該模型的主要優(yōu)點(diǎn)是不需要大量的訓(xùn)練數(shù)據(jù),且推薦效果優(yōu)秀;另外,該模型對(duì)序列信息較為豐富的數(shù)據(jù)具有出色的信息提取和用戶偏好構(gòu)建能力。而RPA工具由于使用場景限制,計(jì)算性能一般,并且需要實(shí)時(shí)做出判斷,能夠獲取到的用戶數(shù)據(jù)也有限,所以該模型的這些優(yōu)點(diǎn)能夠很好地提升RPA工具的應(yīng)用前景。
Inception網(wǎng)絡(luò)首次出現(xiàn)在2015年提出的GoogleNet網(wǎng)絡(luò)中[17],它的出現(xiàn)是卷積神經(jīng)網(wǎng)絡(luò)分類器發(fā)展史上的一個(gè)重要的里程碑。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)都是通過增加卷積層來提高分類效果,但這使得卷積網(wǎng)絡(luò)越來越臃腫,并且會(huì)出現(xiàn)過擬合現(xiàn)象。Inception將稀疏特性引入網(wǎng)絡(luò)中,把卷積神經(jīng)網(wǎng)絡(luò)中的全連接層更換為稀疏連接層,這樣可以增加網(wǎng)絡(luò)的深度和寬度,提升性能,并且由于是稀疏網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),可以降低計(jì)算量,保證了計(jì)算效率。與使用非Inception架構(gòu)的類似神經(jīng)網(wǎng)絡(luò)相比,它的計(jì)算效率可以提升2~3倍。
序列推薦系統(tǒng)(SRSs)主要是通過對(duì)序列中的用戶項(xiàng)目進(jìn)行建模(例如觀看的電影類別或在在線購物平臺(tái)上購買物品),從而對(duì)用戶可能感興趣的項(xiàng)目提出建議[18]。傳統(tǒng)的推薦系統(tǒng)大多都是基于內(nèi)容和用戶的協(xié)同過濾,對(duì)用戶項(xiàng)目的建模方式是靜態(tài)的,只能獲取用戶的一般偏好,相反,序列推薦系統(tǒng)將“用戶-項(xiàng)目”的交互視為動(dòng)態(tài)序列,并且考慮了順序依賴性,以捕獲用戶當(dāng)前和最近的偏好,基于此做出更為準(zhǔn)確的推薦[6]。
序列推薦主要是針對(duì)用戶的行為進(jìn)行處理,而用戶行為又可分為行為對(duì)象和行為類型2種[19]。序列推薦系統(tǒng)將用戶行為作為輸入,并對(duì)嵌入在用戶-項(xiàng)目交互序列中的復(fù)雜順序依賴關(guān)系進(jìn)行建模,預(yù)測未來一小段時(shí)間內(nèi)用戶可能的行動(dòng)。
基于Inception的卷積序列推薦模型參考了CosRec[14]和CASER[15]這2種模型,并從Inception網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)中獲得了靈感,其利用多種不同大小的卷積濾波器增加卷積網(wǎng)絡(luò)的感受野,增強(qiáng)卷積網(wǎng)絡(luò)提取圖像特征的能力。筆者基于這種設(shè)計(jì)思想構(gòu)建了本文的推薦模型,如圖1所示。從圖中可以看出,該模型結(jié)構(gòu)主要分為Embedding查找層、卷積層和全連接層3個(gè)部分。
(1)
除了項(xiàng)目的嵌入矩陣外,還提取了用戶u的嵌入矩陣Pu∈Rd,如圖1所示,用它表示潛在空間中的用戶特征,也就是用戶的長期興趣,以此來解決序列推薦模型中缺少用戶長期興趣偏好的問題。
圖1 基于Inception的卷積序列推薦模型
卷積層借鑒了Inception的設(shè)計(jì)理念,設(shè)立了動(dòng)態(tài)和靜態(tài)2種不同的卷積層,如圖2所示。
圖2 卷積層結(jié)構(gòu)圖
動(dòng)態(tài)卷積層中設(shè)置了2種不同數(shù)量的卷積濾波器Fk、F′k,分別為16個(gè)和8個(gè),大小為h×d,其中,d代表潛在維度,h∈{1,2,…,L}。這種寬度會(huì)變化的卷積濾波器,可以比較全面地獲取行為序列中的信息,同時(shí)使用2種卷積濾波器,增加感受野。卷積核中的濾波器數(shù)量不同,也就意味著最終輸出向量的維數(shù)不同,這可以保存不同程度的特征數(shù)據(jù),避免在卷積過程中忽略掉一些重要信息。以Fk為例,每一個(gè)Fk會(huì)在項(xiàng)目嵌入矩陣E上從上往下滑動(dòng),并與E中所有水平方向上的項(xiàng)目i進(jìn)行交互,1≤i≤L-h+1。交互的結(jié)果是:
(2)
其中,⊙表示內(nèi)積運(yùn)算符,φc()表示卷積層的激活函數(shù),Ei:i+h-1是Fk與項(xiàng)目嵌入矩陣E的第i到第i-h+1行形成的子矩陣之間的內(nèi)積。最終卷積濾波器Fk的卷積結(jié)果為向量ck:
(3)
然后,聯(lián)合另一種卷積濾波器的卷積結(jié)果一同輸入到最大池化層中,以提取卷積濾波器產(chǎn)生的所有值中的最大值。對(duì)于動(dòng)態(tài)卷積層中卷積濾波器,輸出值o∈Rn:
o={max(c1),max(c2),…,max(cn)}
(4)
(5)
由于內(nèi)積交互的作用,很容易驗(yàn)證該結(jié)果等于項(xiàng)目嵌入矩陣E的L行加權(quán)和:
(6)
(7)
靜態(tài)卷積層與動(dòng)態(tài)卷積層的不同之處在于:1)每個(gè)濾波器的大小固定,這是因?yàn)轫?xiàng)目嵌入矩陣E的每一列對(duì)于推薦模型來說都是潛在的、有價(jià)值的;2)無需對(duì)靜態(tài)卷積層的卷積結(jié)果應(yīng)用最大池化操作,因?yàn)樗鼈兊臐撛诰S度信息的聚合較弱,池化操作會(huì)破壞聚合信息。
全連接層將動(dòng)態(tài)卷積層和靜態(tài)卷積層的輸出連接起來,再結(jié)合用戶的嵌入矩陣一起輸入到全連接神經(jīng)網(wǎng)絡(luò)中,以此獲得更為高級(jí)的抽象特征,并進(jìn)行推薦:
(8)
(9)
1)可以很好地把用戶的長期興趣偏好在最大的程度上展示出來。
2)可以將其他推薦模型的參數(shù)與其他廣義模型的參數(shù)一起預(yù)訓(xùn)練,這種預(yù)訓(xùn)練可以很好地提升推薦模型的性能。
為了訓(xùn)練網(wǎng)絡(luò),本文將輸出層的值y(u,t)轉(zhuǎn)換為概率表示:
(10)
其中,σ(x)=1/(1+e-x)是Sigmoid函數(shù),令Cu={L+1,L+2,…,|Su|}為要為用戶預(yù)測的時(shí)間步長集合。數(shù)據(jù)集中所有序列的概率為:
(11)
為了在時(shí)間步長t內(nèi)為用戶u進(jìn)行推薦,本文使用u的潛在嵌入矩陣Pu,并從公式(1)中提取出u的最后的L項(xiàng)作為神經(jīng)網(wǎng)絡(luò)的輸入,并把輸出層y中具有最高值的N個(gè)項(xiàng)作為Top-N序列推薦的結(jié)果,把該結(jié)果推薦給用戶。
本文選取3種公開數(shù)據(jù)集進(jìn)行實(shí)驗(yàn):
1)MovieLens 1M。MovieLens數(shù)據(jù)集是電影評(píng)分?jǐn)?shù)據(jù)集。本文使用的MovieLens 1M數(shù)據(jù)集擁有6040個(gè)用戶觀看4000部電影時(shí)獲得的近100萬個(gè)評(píng)分?jǐn)?shù)據(jù),其中用戶的主要的行為類型是觀看的電影以及對(duì)電影的評(píng)分。
2)Gowalla。Gowalla數(shù)據(jù)集是由公共API于2009年2月至2010年10月間收集到的用戶簽到數(shù)據(jù)集[23],本次實(shí)驗(yàn)使用了這個(gè)數(shù)據(jù)集中的部分?jǐn)?shù)據(jù),包含6000個(gè)用戶的526862條數(shù)據(jù),其中用戶的主要行為類型是在該社交網(wǎng)站上進(jìn)行簽到時(shí)的地理位置信息。
3)Steam。Steam是一個(gè)大型在線游戲網(wǎng)站,該數(shù)據(jù)集是從Steam網(wǎng)站上抓取得到的。本次實(shí)驗(yàn)使用其中的部分?jǐn)?shù)據(jù),包含21000個(gè)用戶的1008629條數(shù)據(jù),包括用戶信息和其游玩的游戲信息,行為類型為游玩的游戲信息。
序列推薦模型著重于用戶的行為序列,因此主要保留數(shù)據(jù)集中的用戶信息(用戶ID)和與用戶進(jìn)行交互的項(xiàng)目信息,如MovieLens中用戶的觀影信息、Gowalla中用戶簽到的地理位置信息、Steam中用戶游玩的游戲信息,并參考文獻(xiàn)[5,19,24]對(duì)數(shù)據(jù)集的處理,將所有評(píng)分?jǐn)?shù)據(jù)都轉(zhuǎn)換為隱式反饋1。同時(shí),為了最終推薦效果的考慮和冷啟動(dòng)的因素,刪除了冷啟動(dòng)用戶和反饋少于n個(gè)的用戶項(xiàng),對(duì)于MovieLens、Gowalla、Steam,n分別設(shè)為5、15、15。處理后的數(shù)據(jù)集的規(guī)模如表1所示。
表1 處理后數(shù)據(jù)的統(tǒng)計(jì)信息
本文將基于Inception的卷積序列推薦模型與以下5種模型進(jìn)行比較:
1)BPR[24]。將貝葉斯個(gè)性化排名與矩陣分解模型相結(jié)合,主要是針對(duì)隱式反饋數(shù)據(jù)進(jìn)行的非序列項(xiàng)目推薦的最新方法。
2)FMC[25]。FMC將一階馬爾科夫轉(zhuǎn)換矩陣分解為2個(gè)低維子矩陣,提取序列信息,進(jìn)行推薦。
3)FPMC[25]。FPMC融合了FMC和LFM,允許在每一步中都有與一個(gè)購物籃中數(shù)量一樣多的項(xiàng)目,對(duì)于本文的序列推薦問題來說,每個(gè)購物籃中只有一個(gè)項(xiàng)目。這2種方法都是比較新型的序列推薦方法。
4)GRU4Rec[26]。該模型是基于會(huì)話的推薦模型,該模型使用RNN提取順序依賴關(guān)系,并進(jìn)行預(yù)測。
5)CASER[15]。一種Top-N序列推薦模型,將用戶的行為序列及其在隱藏空間的嵌入矩陣看作一個(gè)“圖像”,利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)的卷積濾波器提取圖像的局部特征,以此構(gòu)建用戶偏好,進(jìn)行預(yù)測推薦。
本文采用Top-N推薦的評(píng)價(jià)指標(biāo)進(jìn)行模型的性能評(píng)估,包括精確率(Precision@N)、召回率(Recall@N)和平均準(zhǔn)確率的平均值(Mean Average Precision, MAP)這3種評(píng)測指標(biāo)。本文設(shè)置N∈{1,5,10},以Top-1、Top-5、Top-10作為代表的評(píng)測指標(biāo)。
表2展示了5種基準(zhǔn)模型與基于Inception的卷積序列推薦模型的最佳結(jié)果。加粗的是每一行的最佳結(jié)果,最后一列是本文提出的模型的結(jié)果result與5種基準(zhǔn)模型中的最佳結(jié)果baseline的性能提升程度Improvement,用公式(12)進(jìn)行計(jì)算:
Improvement=(result-baseline)/baseline
(12)
從表2可以看出,基于Inception的卷積序列推薦模型在各項(xiàng)評(píng)價(jià)指標(biāo)上均明顯領(lǐng)先于進(jìn)行測試的基準(zhǔn)模型?;咎嵘仍?0%左右,部分指標(biāo)能夠提升14%,與基準(zhǔn)模型BPR和FMC相比,基于Inception的卷積序列推薦模型的性能提升幅度較大,有非常顯著的改進(jìn);與序列推薦模型FPMC相比,該模型的提升程度也十分明顯;與最新的序列推薦模型GRU4Rec和CASER相比,也有一定的提升幅度。整體來看,模型的性能提升明顯。
表2 3種數(shù)據(jù)集上的性能比較
另外,非序列推薦模型BRP在各項(xiàng)指標(biāo)上均弱于本文提出的模型和序列推薦模型FPMC、FMC,這體現(xiàn)了推薦過程中序列信息的重要性。
圖3展示了不同潛在維度d下,同時(shí)保持其他超參數(shù)在最佳設(shè)置下的性能變化情況,其中橫坐標(biāo)表示潛在維度d,縱坐標(biāo)表示MAP。從圖中可以看到,在所有實(shí)驗(yàn)數(shù)據(jù)集上,都需要更高的潛在維度才能達(dá)到最佳的性能,這是由于模型的復(fù)雜程度較大,再加上數(shù)據(jù)集過于稀疏,用戶與項(xiàng)目的交互信息不充分,需要更高的潛在維度數(shù)。而對(duì)于CASER等其他推薦模型來說,由于本身卷積層設(shè)計(jì)得較淺,較大的潛在維度并不是總能實(shí)現(xiàn)更好的模型性能,如果潛在維度數(shù)過大,很可能出現(xiàn)過擬合現(xiàn)象,使模型的表現(xiàn)變?cè)恪?/p>
圖3 MAP隨潛在維度d增長的變化情況圖
基于Inception的卷積序列推薦模型中最為重要的便是卷積層的設(shè)計(jì),在2.2節(jié)中提到,卷積層是由靜態(tài)卷積層和動(dòng)態(tài)卷積層2種卷積層構(gòu)成,共4種卷積濾波器。為了量化判斷具體的影響效果,采用控制變量法,每次使用其中的3種卷積濾波器進(jìn)行實(shí)驗(yàn),對(duì)比分析每種卷積濾波器的推薦效果,在3種數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表3所示。
表3 卷積層組件分析
本文提出了一種適用于RPA軟件的卷積序列推薦算法及其模型。該模型將用戶的行為序列視為一個(gè)L×d的“圖像”,把行為序列的序列模型信息視為該“圖像”的局部特征,然后利用卷積神經(jīng)網(wǎng)絡(luò)提取這個(gè)局部特征,并結(jié)合Inception的設(shè)計(jì)思想,設(shè)計(jì)了動(dòng)態(tài)卷積層和靜態(tài)卷積層相結(jié)合的復(fù)合卷積網(wǎng)絡(luò)層,使得模型可以更加全面地獲取到序列模式信息。
模型在3種公開數(shù)據(jù)集MovieLens 1M、Gowalla和Steam上進(jìn)行訓(xùn)練和性能測試,并與5種基準(zhǔn)模型:BPR、FMC、FPMC、GRU4Rec、CASER進(jìn)行對(duì)比,實(shí)驗(yàn)表明本模型在各個(gè)評(píng)價(jià)指標(biāo)上均優(yōu)于先進(jìn)的推薦算法。在Top-N序列推薦的3種評(píng)價(jià)指標(biāo)(精確率、召回率、平均AP值)中,平均提升幅度在10%左右,單個(gè)指標(biāo)上的最大提升幅度為14%。