廖國瓊,楊樂川,萬常選,劉德喜,劉喜平
江西財經(jīng)大學 信息管理學院,南昌330013
近年來,越來越多的人傾向于在網(wǎng)絡(luò)上發(fā)布或報名事件,再到現(xiàn)實中真實參與。受此影響,如圖1所示,豆瓣同城[1]、Meetup[2]等基于事件的社會網(wǎng)絡(luò)(event-based social networks,EBSN)[3],作為群組線上線下社交的載體,越發(fā)受到關(guān)注。在這些平臺上,人們試圖尋找喜歡的事件進行報名。然而每天都有新的事件在發(fā)布,且事件從線上發(fā)布到截止報名往往不超過一周,而從線下真正舉辦到結(jié)束更是通常在幾小時以內(nèi)。因此,如果用戶僅依靠自己搜索,效率是極低的。幸運的是,越來越多的研究表明推薦系統(tǒng)能夠明顯改善這一問題。
圖1 EBSN 結(jié)構(gòu)Fig.1 Structure of EBSN
在早期的研究中,推薦系統(tǒng)面向的對象是EBSN中的單個用戶,但不久之后,研究的熱點逐漸轉(zhuǎn)向了面向群組的推薦策略。一方面,這是因為EBSN 中本身就有興趣組(用戶依賴興趣自發(fā)組建的線上群組)的存在;另一方面,線下參與事件的主體往往也帶有現(xiàn)實的社交關(guān)系(如家人、同事、同學等)。正是因為EBSN 中錯綜復雜的線上線下社交關(guān)系,在EBSN 中研究面向群組的推薦方法更有意義。
以往的EBSN 群組推薦策略將問題聚焦在群組偏好的建模上,建模得到的偏好是靜態(tài)的。而實際上,群組偏好也會隨時間的推移而發(fā)生改變,真實的群組偏好是動態(tài)變化的,這常常受到忽視。隨著推薦系統(tǒng)在電子商務(wù)、音樂等領(lǐng)域被廣泛應(yīng)用,發(fā)展出了基于會話的推薦(session-based recommendation)、順序推薦(sequential recommendation)等專門針對用戶偏好的動態(tài)性進行建模,推薦用戶下一個可能訪問的項目的算法。然而,考慮群組偏好動態(tài)的研究尚不多[4-5]。
圖2 介紹了EBSN 中的面向群組的下一個事件推薦問題(next event recommendation for group,NER4G),群組的偏好被認為是隨著時間而動態(tài)變化的。在宏觀上,群組訪問記錄被劃分為多個時段,將每個時段記為T,群組的偏好在每個時段會有不同的體現(xiàn)。比如,在3 月份可能更偏向于爬山,到6 月份就更喜歡沖浪。在微觀上,每個時段的偏好由當前時段各個群組成員偏好構(gòu)成,而在每個時段內(nèi),不同用戶的參與程度很可能是不一致的,從而群組偏好也會跟著動態(tài)變化。
圖2 NER4G 的基本模式Fig.2 Basic pattern of NER4G
不同于傳統(tǒng)推薦,NER4G 問題面臨以下挑戰(zhàn):
(1)數(shù)據(jù)稀疏性。一方面,用戶和事件的交互上具有傳統(tǒng)意義上的稀疏性,即大部分用戶僅訪問了相對較少的事件,大部分事件也僅被少部分用戶訪問。另一方面,如圖2 所示,群組成員的歷史記錄被以時段劃分以后,由于每個群成員在窗口期內(nèi)訪問事件的數(shù)量是不一致的,數(shù)據(jù)的稀疏性會被進一步放大。事實上,在原始數(shù)據(jù)里像群成員m1一樣,在某個時段內(nèi)無訪問記錄是非常常見的,而群組規(guī)模越大,這種稀疏性就越強。
(2)冷啟動。與傳統(tǒng)推薦場景中的音樂、商品不同,在EBSN 中,用戶不會參與曾經(jīng)訪問過的事件,這是因為EBSN 中的事件都有其生命周期,且生命周期非常短。事實上,事件從線上發(fā)布到線下舉辦常常在數(shù)日到數(shù)月之間,而線下舉辦耗時更是往往僅在幾個小時之內(nèi)[3]。事件一旦被用戶參與,也就結(jié)束了生命周期,這樣的事件再推薦給用戶沒有意義。這意味者只能將在生命周期內(nèi)的事件推薦給用戶,而這些事件都是沒有用戶歷史參與信息的新事件,都存在嚴重的冷啟動[6]問題。
(3)群組動態(tài)偏好的建模。最新的研究聚焦在個體用戶的動態(tài)偏好上[7],而群組偏好在宏觀、微觀上各有其動態(tài)性,比個體用戶更為復雜。而群組偏好在宏觀、微觀上各有其動態(tài)性,如何對其進行較為準確而真實的刻畫目前還沒有統(tǒng)一的定論,是一個新的課題。
盡管直接研究NER4G 領(lǐng)域的文章相對較少,但已有一些研究對上述挑戰(zhàn)提出了部分解決思路。為了克服群組交互數(shù)據(jù)的稀疏性,文獻[8]提出一種基于排序?qū)W習的群組事件推薦框架,該框架結(jié)合時間、地理、地點、內(nèi)容、直接和間接的社會影響等6 個上下文因素對個體偏好的影響,對群組偏好進行建模,將群組事件推薦任務(wù)形式化為一個學習排序問題。文獻[9]提出了一種基于注意力的上下文感知群組事件推薦模型,其通過多層神經(jīng)網(wǎng)絡(luò)建模上下文對用戶、群體和事件的深度非線性影響,并以此緩解新事件冷啟動問題。
在群組動態(tài)偏好建模上,僅有兩篇文章與本文的問題直接相關(guān),其中文獻[4]認為當下經(jīng)典的群組偏好聚合策略如平均、最小痛苦度等在加入多次迭代時,并不能保證群組成員的滿意度,于是基于公平的思想提出滿意度的概念,動態(tài)調(diào)整推薦的結(jié)果。此方法的整體框架是結(jié)果融合,即給群組所有成員都進行推薦,設(shè)計排序算法調(diào)整推薦結(jié)果出現(xiàn)的位置,最后將整合好的結(jié)果視為群組推薦。而文獻[5]提出了一種群組感知的長短期圖表示學習(group-aware long and short graph representation learning,GLSGRL)方法,其將序列視為長期和短期兩部分,采用圖神經(jīng)網(wǎng)絡(luò)來構(gòu)造群組感知的短期圖和長期圖用于用戶表征,再通過門控機制和受限的用戶交互注意力來聚合群組動態(tài)偏好。此方法的整體框架是過程融合,即通過聚合群組成員偏好得到一個質(zhì)心用戶,再向這個用戶進行推薦。本文的研究更偏向于過程融合,遺憾的是,GLS-GRL 并不能直接應(yīng)用到EBSN場景中。這是因為無論是長期圖還是短期圖都依賴于用戶與項目的直接交互,而EBSN 中的獨特的事件冷啟動會使新事件無法進行嵌入導致推薦算法失效。
綜上所述,NER4G 在EBSN 中是一個復雜的問題。為解決上述挑戰(zhàn),本文提出一種基于注意力的動態(tài)群組推薦(attention-based dynamic group recommendation,ADGR)策略。在宏觀上,事件將被看作由各類上下文組成的抽象單元,事件推薦將被視為多標簽分類問題,而被分類的標簽即為各個上下文。在微觀上,本文將結(jié)合注意力機制與序列模型,基于不同時期不同群組成員的參與程度,動態(tài)地建模群組偏好。
本文的主要貢獻如下:
(1)將多標簽分類問題引入EBSN 事件推薦領(lǐng)域,提出了一個新穎的事件推薦框架。該框架將事件抽象成上下文的集合,事件推薦轉(zhuǎn)化為多個上下文的分類問題。
(2)提出了一種面向群組的Next 事件推薦策略,其將上下文作為最小單元,結(jié)合注意力機制和序列模型,依次構(gòu)建出事件、成員偏好、群組靜態(tài)偏好和群組動態(tài)偏好的特征表示,從而有效建模出群組偏好的動態(tài)特征。
(3)根據(jù)爬取的Meetup 真實數(shù)據(jù),在事件數(shù)最多的三個城市數(shù)據(jù)集上進行消融實驗和對比實驗。實驗結(jié)果表明,本文方法有更優(yōu)越的性能。
如前文所言,與本文問題直接相關(guān)的研究較少,以下主要從群組推薦、Next 項目推薦、多標簽分類三方面來介紹相關(guān)的子領(lǐng)域。
群組推薦是指向一個群體進行推薦,推薦的結(jié)果考慮了所有群成員的偏好。其中,如何從群成員偏好獲得群組偏好是各個研究的重點和難點。傳統(tǒng)的群組偏好聚合策略有均值策略、最小痛苦度、最開心策略等[10],這些方法往往不夠靈活,不能隨著場景變化動態(tài)調(diào)整。隨著注意力機制[11]的提出,因其能根據(jù)數(shù)據(jù)自適應(yīng)地學習出權(quán)重,被廣泛應(yīng)用在群組聚合方法的研究上。文獻[12]首次利用注意力網(wǎng)絡(luò)從數(shù)據(jù)中動態(tài)學習出群組聚合策略,其還將注意力機制和神經(jīng)協(xié)同過濾框架結(jié)合,學習群組與項目、用戶與項目的交互,用多任務(wù)學習的方法提高模型性能。文獻[13]提出了一種基于多注意力的群組推薦模型,其分為兩個模塊:第一個模塊從群組共現(xiàn)、群組描述、外部和內(nèi)部社交四方面綜合建模群組特征表示;第二個模塊用神經(jīng)注意力網(wǎng)絡(luò)描述群組及其成員的偏好交互,結(jié)合群組和項目特征建模群組偏好。
傳統(tǒng)應(yīng)用場景的群組推薦注重群組與項目、組成員與項目之間的交互,而在EBSN 中,由于新事件冷啟動問題的存在,如何結(jié)合上下文信息進行群組推薦是研究的重點。事實上,已有研究表明[14],將上下文信息考慮進來,能有效緩解數(shù)據(jù)稀疏性問題,有利于提升群組推薦性能。文獻[15]將上下文信息建模成異構(gòu)信息網(wǎng)絡(luò),從中提取額外的內(nèi)容信息,并將其與評分數(shù)據(jù)結(jié)合,設(shè)計了一個捕捉群組凝聚力的推薦模型。
下一個項目推薦或順序推薦起源于音樂推薦、興趣點推薦等領(lǐng)域,目前廣泛應(yīng)用在電子商務(wù)領(lǐng)域。其認為用戶隨著時間的推移產(chǎn)生了大量線性的用戶-項目交互數(shù)據(jù),而用戶的偏好也隨之動態(tài)地變化,通過建模歷史項目之間的順序依賴關(guān)系推薦下一個用戶可能感興趣的項目[16]。
因此,目前主流的順序推薦算法是依賴于序列模型的,文獻[17]結(jié)合矩陣分解與馬爾可夫鏈(Markov chain,MC)為每一個用戶單獨設(shè)置個性化轉(zhuǎn)移矩陣,推薦下一個項目。但MC 僅依據(jù)最后幾個狀態(tài)來建模,僅在時間跨度較小的數(shù)據(jù)中效果較好。而遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)原則上能夠建模更長的語義。文獻[18]對RNN 進行了擴展,提出了一種專門用于推薦任務(wù)的新型門控循環(huán)單元,其能夠有效地通過建模項目序列表示用戶,從而生成個性化的下一個項目推薦。得益于Transformer 結(jié)構(gòu)在自然語言處理序列任務(wù)領(lǐng)域出色的表現(xiàn),自注意力機制也開始被用于順序推薦領(lǐng)域。文獻[19]試圖平衡長期語義與短期語義的建模,以使模型在簡單稀疏或復雜稠密的數(shù)據(jù)集中都能有效發(fā)揮作用,其提出了一種基于自注意力的順序推薦模型,該模型能在每個時間步自適應(yīng)地為之前的項目分配權(quán)重。文獻[20]還參考最先進的BERT(bidirectional encoder representations from transformers)序列結(jié)構(gòu),利用深度雙向自注意力對用戶行為序列進行建模,取得了較好的效果。
多標簽分類(multi-label classification,MLC)[21]問題是指在分類時,將項目擁有的多個標簽同時預(yù)測出來。該問題通常由圖片分類、文本分類和醫(yī)療診斷任務(wù)驅(qū)動,如在服裝圖像識別上,一張圖片既要給顏色打標簽,也要給服裝所屬的部位打標簽。同理,一篇文章可能有多個主題,一個病人可能同時患有多個疾病,要同時識別出來也需要進行多標簽分類。在推薦系統(tǒng)中,采用多標簽分類能夠更精準地定義項目,從而產(chǎn)生質(zhì)量更高的推薦。如文獻[22]針對給文章推薦審稿人問題,考慮審稿人有多個擅長的領(lǐng)域,采用多標簽分類作為問題框架,從而更清楚地反映論文與審稿人的語義,產(chǎn)生高效而精準的推薦。
EBSN 中的信息網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。圖中包含用戶(User)、群組(Group)、事件(Event)、時間(Time)、地點(Venue)和主題(Topic)等實體。實體之間的連線表示關(guān)系,其中實線代表直接關(guān)系,虛線代表間接關(guān)系。線上標注的N和1 代表多對一的關(guān)系,N和N代表多對多關(guān)系。以用戶與事件的關(guān)系為例,在EBSN 中,一個用戶可以參與多個事件,一個事件也可被多個用戶參加。本文研究對象是規(guī)模較小但內(nèi)聚力較高的群組而非EBSN中廣義上的興趣組,因此,群組與事件是間接參與和被參與關(guān)系,用虛線表示。
圖3 EBSN 中的信息網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Information network structure in EBSN
基于上述符號,給出群組g的成員偏好、靜態(tài)偏好和動態(tài)偏好定義。
定義1(群組成員偏好)群組成員m在時間窗T內(nèi)訪問的事件序列可表示為,則成員m在T內(nèi)的偏好向量可表示為,其中f1表示建模群組成員偏好的聚合函數(shù)。
定義2(群組靜態(tài)偏好)群組g在時間窗T內(nèi)的靜態(tài)偏好由其對應(yīng)時間內(nèi)群成員的偏好聚合而成,即群組靜態(tài)偏好,其中f2表示建模群組靜態(tài)偏好的聚合函數(shù)。
定義3(群組動態(tài)偏好)群組g的動態(tài)偏好由其多個時段的靜態(tài)偏好聚合而成,即群組動態(tài)偏好,其中f3表示群組動態(tài)偏好的聚合函數(shù)。
根據(jù)上述定義,現(xiàn)在可以給出本文研究問題的定義。
定義4(面向群組的Next事件推薦)給定群組g及其所有成員在所有時段的訪問記錄,目標是計算條件概率P(e∈ET+1|Pg,?e∈Ec),其中e表示根據(jù)Pg預(yù)測的群組g下一個時段可能訪問的事件,ET+1表示群組在下一個時段真實訪問的事件集合,Ec為生命周期在T之后的候選事件集合。
為解決上述問題,本文提出一種基于注意力的動態(tài)群組推薦策略(attention-based dynamic group recommendation,ADGR),完成Next事件推薦。
要進行動態(tài)推薦,首先要建模群組的靜態(tài)偏好。靜態(tài)偏好建模的總體架構(gòu)如圖4 所示,由群組g在T時段內(nèi)的訪問記錄作為輸入,由表示當前時段內(nèi)群組偏好的特征向量作為輸出。建模過程分為4 個階段:
(1)基于參與度的排序與篩選(圖4-①):對原始數(shù)據(jù)進行過濾,找出核心群成員緩解數(shù)據(jù)稀疏性。
(2)事件的特征表示(圖4-②):用上下文表示用戶交互的事件,借助EBSN 中豐富的上下文信息來緩解新事件冷啟動問題。
(3)成員偏好的特征表示(圖4-③):基于序列模型利用核心群成員在時段T內(nèi)的歷史記錄來建模核心群成員的偏好。
(4)群組靜態(tài)偏好的特征表示(圖4-④):利用核心群成員的偏好融合出群組的靜態(tài)偏好。
圖4 群組靜態(tài)偏好建模架構(gòu)Fig.4 Architecture of group static preference modeling
3.1.1 基于參與度的排序與篩選
將群組成員的訪問數(shù)據(jù)按時間片劃分后,會加劇數(shù)據(jù)的稀疏性。為解決這一問題,首先引入?yún)⑴c度(Engagement)的概念,如式(1)所示,群組g中成員m在T時段內(nèi)的參與度被定義為其在該時段內(nèi)參與事件的數(shù)目。顯然,組成員在T時段內(nèi)參與的事件越多,其在該時段內(nèi)的參與度越高。
本文認為,群組的靜態(tài)偏好往往是由在該時段內(nèi)參與度較高的成員偏好所構(gòu)成。因此,將成員的原始數(shù)據(jù)按參與度排序,取參與度最高的前n個用戶用于后續(xù)偏好建模,具體如式(2)和式(3)所示。
其中,為群組g在T時段內(nèi)所有成員的歷史訪問序列,而為將排序并過濾后的對應(yīng)數(shù)據(jù)。sort()為按參與度排序函數(shù),符號[:n]表示截取前n個數(shù)據(jù)。
這樣做的好處在于,盡管損失了部分數(shù)據(jù),但一方面剔除了如圖4 中成員m2這一類無效冗余數(shù)據(jù),緩解了稀疏性,另一方面將群組決策建模為少數(shù)意見領(lǐng)袖共同決策的過程,符合部分已有研究的先驗知識[23-24]。
3.1.2 事件的特征表示
由于事件與各類上下文都是多對一的關(guān)系,可以由一組上下文來表示事件[25]。在神經(jīng)網(wǎng)絡(luò)中,將數(shù)據(jù)進行嵌入表示是常用的特征表示方法,因此成員i在時段T內(nèi)訪問的事件j將被表示為向量其可由該事件對應(yīng)的一組上下文經(jīng)由MLP(multilayer perceptron)層嵌入后拼接而得。
具體而言,事件中任意一個具體的上下文會被編碼為one-hot 向量,輸入到神經(jīng)網(wǎng)絡(luò)中。經(jīng)過如式(4)所示的線性變換轉(zhuǎn)碼成一個更低維而稠密的向量。拼接各個類別的上下文即得到事件的特征表示。
3.1.3 成員偏好的特征表示
成員的偏好由成員在當前時段內(nèi)交互過的事件序列構(gòu)成,因此,將成員m在時段T內(nèi)的歷史記錄輸入到序列模型里,以得到成員偏好的特征表示,具體如式(5)所示。
其中,lstm(?)為長短期記憶網(wǎng)絡(luò)單元,此處為多輸入單輸出模式。為成員m的偏好,dm為成員偏好的嵌入維度,其大小取決于lstm(?)中神經(jīng)元的個數(shù)。為成員m交互的第i個事件的特征表示,n為基于參與度過濾后的群組大小。
3.1.4 群組靜態(tài)偏好的特征表示
群組的靜態(tài)偏好由成員偏好聚合而得,而聚合方法即為注意力機制,其過程如式(6)、式(7)所示。
在得到成員注意力權(quán)重后,接下來就要融合成員偏好。由于已經(jīng)通過參與度剔除了部分成員,為了使核心成員的信息得到最大利用,使用拼接操作進行聚合。再讓融合過后的向量輸入到一個MLP層。這樣做的好處在于:一方面可以得到更深層的偏好表示;另一方面可以更好地控制群組靜態(tài)偏好的維度。群組的靜態(tài)偏好就等于MLP 層的輸出,完整過程如式(8)所示。
其中,表示群組g在T時段的靜態(tài)偏好,W1∈分別為將注意力融合后的結(jié)果映射到群組靜態(tài)偏好的權(quán)重矩陣和偏置向量,其中ds為靜態(tài)偏好的嵌入維度,σ1(?)是MLP 層的激活函數(shù),這里選用“Sigmoid”。
群組的動態(tài)偏好可看成各個時段的靜態(tài)偏好經(jīng)由聚合函數(shù)構(gòu)成,這同樣是一個權(quán)重分配的過程。本文采用長短期記憶網(wǎng)絡(luò)和注意力結(jié)合的模塊對動態(tài)偏好進行建模。其過程如圖5 所示,群組的靜態(tài)偏好被輸入到序列模型中,注意力模型融合序列模型輸出的隱狀態(tài),再將其結(jié)果輸入到MLP 層進行深度表示得到最終的群組動態(tài)偏好。
圖5 群組動態(tài)偏好建模框架Fig.5 Architecture of group dynamic preference modeling
具體而言,群組靜態(tài)偏好隨時間變化也形成了一個序列,將這個靜態(tài)偏好序列輸入到lstm(?)中,獲得每一個時間步的隱狀態(tài)矩陣h,具體過程如式(9)所示。
得到隱狀態(tài)矩陣后,用注意力機制進行融合,其計算過程具體如式(10)、式(11)所示。
如式(12)所示,得到注意力得分后,用拼接的方式進行聚合,并將拼接的結(jié)果送入MLP 層,獲取更深層的特征表示。MLP 層的輸出即可視為群組當前的動態(tài)偏好。
其中,Pg表示群組g動態(tài)偏好,和b2∈分別為將注意力融合后的結(jié)果映射到群組動態(tài)偏好的權(quán)重矩陣和偏置向量。其中dd為動態(tài)偏好的嵌入維度,σ2(?) 是MLP層的激活函數(shù),這里選用“Sigmoid”。
至此,群組動態(tài)偏好已經(jīng)建模,接下來將基于動態(tài)偏好完成推薦任務(wù)。傳統(tǒng)的Next 項目推薦常常被建模為多分類問題,即預(yù)測下一個項目屬于候選集中各個項目的概率,選擇概率最大的前K個項目進行推薦。
然而,由于新事件冷啟動問題的存在,候選集中的事件全部都在測試集,這就意味著基于多分類的推薦模型在訓練時無法學習到新事件,導致推薦失效。為了解決這一問題,本文率先將多標簽分類引入Next事件推薦問題中來。
下面給出基于多標簽分類的推薦框架,其如圖6所示。ADGR 的輸出層為Sigmoid 層(即激活函數(shù)為sigmoid(?)的MLP 層),群組的動態(tài)偏好會被轉(zhuǎn)化為每類上下文的概率。之后,將其與候選事件的上下文分布向量進行相似度比較,選擇最高的前K個事件作為該群組的推薦結(jié)果,從而完成整個推薦任務(wù)。
圖6 事件推薦框架Fig.6 Framework of events recommendation
因為多分類問題可以轉(zhuǎn)化為多個二分類問題[22],所以損失函數(shù)采用二分類交叉熵(binary crossentropy),其計算過程如式(13)~式(15)所示。
得到預(yù)測的概率分布向量后,采用余弦相似度進行推薦。為了將事件表示成如一樣的概率分布形式,事件的每一個上下文將被進行one-hot 編碼并被拼接起來,得到其表示Le,如式(16)所示。
最后,同樣采用余弦相似度來衡量推薦哪一個事件。至此,整個群組Next 事件推薦完成,根據(jù)定義4,可得式(17)。
其中,cos(?)為余弦函數(shù),用于計算相似度。
盡管EBSN 中有顯式的興趣組,但這些群組往往規(guī)模比較大,凝聚度不夠強。本文認為向規(guī)模較小、凝聚度較高的隱式群組進行推薦更有意義。因此,對Meetup 網(wǎng)站上2015 年至2017 年中紐約(NY)、芝加哥(CHI)、圣地亞哥(SD)3 個城市的用戶-事件簽到數(shù)據(jù)進行處理,得到群組信息如表1 所示。其中,群組根據(jù)用戶事件訪問記錄的余弦相似度生成,群組內(nèi)的任意兩個成員相似度閾值不低于0.3。
表1 數(shù)據(jù)集Table 1 Datasets
本文采用精確率(Pre@K)、召回率(Rec@K)、F1值(F1@K)、命中率(HR@K)作為評價指標,其計算過程如式(18)至式(21)所示。
其中,K∈{1,10,20,30,40,50} 為TopK推薦列表的長度。Ti為第i次推薦中用戶真實訪問的項目集,Ri為第i次推薦中推薦給用戶的項目集,N代表推薦的總次數(shù)。hits為推薦的項目出現(xiàn)在Ti的用戶數(shù)目,users為用戶總數(shù)。
本實驗選擇下一個項目推薦算法、事件推薦算法、群組推薦算法進行改造,與本文方法及其變種進行對比,具體如下:
(1)PRME+Avg[26],經(jīng)典的單用戶下一個項目推薦方法,考慮了時空上下文與序列關(guān)系。采用平均的策略融合組成員偏好。
(2)PRME+UL(upward leveling)[27],群組偏好的融合采用UL 策略,該策略為基于結(jié)果融合的群組推薦方法,其同時考慮成員用戶對項目評分的平均值、方差以及排名位置三種因素進行偏好融合。
(3)Event2vec+Avg[28],近年來的事件推薦算法,也用到了歷史序列信息,采用平均的策略融合組成員偏好。
(4)Event2vec+UL,同樣,單用戶采用Event2vec獲取評分,采用UL 策略融合組成員偏好。
(5)ADGR(attention-based dynamic group recommendation),本文提出的方法。
(6)DGR(dynamic group recommendation),去除ADGR 方法里所有注意力模塊得到的模型。
(7)ADGR-,在ADGR 上去除基于參與度排序過濾模塊后的模型。
(8)ADGR+,在成員偏好及上下文聚合模塊都增加注意力機制而得到的模型。
實驗結(jié)果如圖7 所示。在三個規(guī)模不同的數(shù)據(jù)集上,ADGR 都有較好表現(xiàn)。尤其是在規(guī)模更大的紐約數(shù)據(jù)集上,ADGR 與次優(yōu)方法DGR 的差距最大,這說明本文方法即使在大數(shù)據(jù)集上也有較好的表現(xiàn)。Event2vec+Avg 比PRME+Avg 更為出色,Event2vec+UL 同樣比PRME+UL 效果好,這是因為Event2vec 建模時不僅考慮了序列信息,還考慮了更多的上下文。而群組聚合策略UL 比簡單的平均效果更好,說明偏好融合是組偏好建模的重要部分。無論是對比基于PRME 還是基于Event2vec 的群組推薦方法,ADGR的性能有顯著優(yōu)勢。這說明在EBSN 中,僅通過下一個項目推薦和群組推薦的組合策略,仍難以刻畫好群組動態(tài)偏好。
圖7 三個數(shù)據(jù)集上的性能比較Fig.7 Performance comparison on three datasets
對比ADGR、DGR、ADGR-、ADGR+這四個方法可以看到,在大部分評價指標和數(shù)據(jù)集上,ADGR 優(yōu)于所有其他變種方法。次優(yōu)的方法是DGR,盡管去掉了注意力部分,剩余模塊依然能較好地發(fā)揮作用。再次則為ADGR-,此方法沒有做排序和過濾,因此網(wǎng)絡(luò)更為復雜,同時大部分的網(wǎng)絡(luò)會因稀疏數(shù)據(jù)的存在而被誤導,整體學習能力較差。表現(xiàn)最差的方法是ADGR+,它在更細粒度的層面上也增加了注意力機制,然而其效果表現(xiàn)很差,這可能是模型復雜從而產(chǎn)生嚴重的過擬合所導致的。
在本文中上下文嵌入維度dc=16,事件嵌入維度de=80,成員偏好嵌入維度dm=64,單位時段內(nèi)成員訪問的最大事件數(shù)等于5,核心成員數(shù)n=5,LSTM 里隱藏層的嵌入維度dh=64,群組靜態(tài)偏好嵌入維度ds=320,群組動態(tài)偏好嵌入維度dd=320Lseq。時段數(shù)Tcnt和序列長度Lseq將由實驗結(jié)果確定。
4.4.1 時段數(shù)Tcnt
群組下一個事件推薦會將數(shù)據(jù)集以時段劃分,而時段數(shù)Tcnt指的是數(shù)據(jù)集被劃分的時段總數(shù),調(diào)整Tcnt一方面在于選擇合適的參數(shù)使模型效果更佳,另一方面在于可以看出數(shù)據(jù)量的多少對模型性能的影響。圖8(a)~(d)展示了實驗結(jié)果。上述指標是在群組靜態(tài)偏好序列長度Lseq=3,推薦列表長度K=20情況下三個數(shù)據(jù)集上的性能對比,劃分的依據(jù)依賴于時間的分位數(shù)??梢钥吹皆赟D 和NY 數(shù)據(jù)集下,各指標在Tcnt從8 變化到24 一直是增長態(tài)勢,而CHI盡管在一些指標上有所下降但仍相差不大,因此選擇Tcnt=24 作為時段數(shù)的參數(shù)。另一方面,數(shù)據(jù)集被劃分得越細致,單位時段內(nèi)的數(shù)據(jù)量就會越少,而在序列長度不變的情況下,數(shù)據(jù)量少反而指標能夠上升,這說明所提出的模型在稀疏數(shù)據(jù)和短期偏好建模上表現(xiàn)更佳,符合Next事件推薦的需求。
4.4.2 序列長度Lseq
接下來,對群組靜態(tài)偏好的序列長度Lseq進行測試,同樣保持Tcnt=24,K=20 的情況下將Lseq從3 變化到15 進行檢驗,其結(jié)果如圖8(e)~(h)所示。
圖8 不同Tcnt和Lseq的性能比較Fig.8 Performance comparison with different Tcnt and Lseq
可以看到Lseq=3 并不是最優(yōu)的,三個數(shù)據(jù)集來自不同城市,因此它們的數(shù)據(jù)分布可能是不同的。三個數(shù)據(jù)集的指標在前期都是呈現(xiàn)先下降后增長的趨 勢,在Lseq從12 至15 上 變 化 不 同,CHI 和NY 在Lseq=12 達到峰值而SD 則是在Lseq=15。綜合整體考慮,選擇Lseq=12 作為最后的參數(shù)。
從實驗結(jié)果來看,所提方法取得了較好的效果。然而,如何將其應(yīng)用于實際場景,如何在一直動態(tài)變化的EBSN 中進行增量更新,保證模型的性能,尚不明確,本節(jié)將針對這兩點進行討論。
4.5.1 實際應(yīng)用
在豆瓣同城或Meetup 上,以群組為單位收集組成員數(shù)據(jù)進行訓練,由于Tcnt和Lseq作為超參數(shù)可以人工調(diào)控,面對不同規(guī)模的歷史數(shù)據(jù)可以采用不同的參數(shù)進行訓練。模型訓練完成后通過群組短期內(nèi)的歷史數(shù)據(jù)在候選事件集中進行預(yù)測,其結(jié)果向群組所有組成員進行推薦。
4.5.2 增量更新
在EBSN 中,新事件不在歷史記錄中,而訓練好的模型只推薦歷史存在的事件,因此直接以事件作為推薦單元不合理。在本文中,事件被視為各類上下文抽象得到的結(jié)果,多分類問題將預(yù)測事件轉(zhuǎn)換為預(yù)測各類上下文。因此,新事件的冷啟動轉(zhuǎn)化為各類上下文的冷啟動,而部分上下文值域固定,從而減緩冷啟動帶來的影響。
因此,當新事件的各類上下文仍處于歷史值域之中,那么模型就不用更新,新事件也可被推薦。反之,則需要對模型進行更新,由于模型是按時段劃分的,模型的更新也可按時段進行更新,從而減少更新頻率及提高效率。
在EBSN 中面向群組進行下一個事件推薦是一個新穎而復雜的問題。針對稀疏性的問題,基于參與度對成員數(shù)據(jù)進行了篩選與過濾,選取少數(shù)核心成員構(gòu)成低秩稠密數(shù)據(jù)。針對新事件冷啟動問題,將推薦過程由事件的多分類轉(zhuǎn)換為基于上下文的多標簽分類問題,緩解了冷啟動。為了建模群組的動態(tài)偏好,基于序列模型和注意力機制提出了一種動態(tài)群組推薦算法,其將事件看作由各類上下文組成的抽象單元,將短期的成員事件序列構(gòu)建為成員偏好,通過核心成員的偏好融合出群組靜態(tài)偏好,最后由靜態(tài)偏好序列建模出群組動態(tài)偏好,從而為群組推薦下一個事件。在Meetup 三個數(shù)據(jù)集上的實驗結(jié)果表明,所提方法有較好的表現(xiàn)。
盡管如此,仍然有許多問題可以深入研究。例如,如何更好地衡量成員的參與度,探索參與度與注意力機制結(jié)合的可能性,如何在考慮偏好的時序動態(tài)性的情形下基于更先進的圖方法如超圖、圖神經(jīng)網(wǎng)絡(luò)設(shè)計下一個事件推薦算法等。將繼續(xù)立足于EBSN 這一特殊的推薦場景,探索更多可能的推薦方法和推薦問題。