最強(qiáng)的Attention函數(shù)誕生啦,帶給你意想不到的巨大提升!
Non-invasive Self-attention for Side Information Fusion in Sequential Recommendation(AAAI2021)
1. 前言
序列推薦系統(tǒng)的目標(biāo)是從用戶的歷史行為中對用戶的興趣進(jìn)行建模,從而進(jìn)行時(shí)間相關(guān)的個(gè)性化推薦。
早期的模型,比如CNN和RNN等深度學(xué)習(xí)方法在推薦任務(wù)中都取得了顯著的提升。近年來,BERT框架由于其在處理序列數(shù)據(jù)時(shí)的self-attention機(jī)制,已經(jīng)成為了一種最好的方法。然而,原BERT框架的一個(gè)局限性是它只考慮自然語言符號的一個(gè)輸入源。
在BERT框架下如何利用各種類型的信息仍然是一個(gè)懸而未決的問題。
盡管如此,利用其他方面的信息,如商品的類別或tag標(biāo)簽,進(jìn)行更全面的描述和更好的推薦,在直覺上還是很有吸引力的。在我們的初步實(shí)驗(yàn)中,我們發(fā)現(xiàn)一些簡單的方法,直接將不同類型的附加信息融合到商品embedding中,通常只帶來很少甚至負(fù)面的影響。
因此,本文在BERT框架下提出了一種有效利用邊信息的無創(chuàng)自我注意機(jī)制(NOVA,NOninVasive self-Attention mechanism)。NOVA利用side信息來產(chǎn)生更好的注意力分布,而不是直接改變商品嵌入,這可能會(huì)導(dǎo)致信息泛濫。
我們在公共數(shù)據(jù)集和商業(yè)數(shù)據(jù)集上都驗(yàn)證了NOVA-BERT模型,并且我們的方法在計(jì)算開銷可以忽略的情況下可以穩(wěn)定地優(yōu)于最新的模型。
序列化推薦的目標(biāo)之一基于用戶的歷史行為,預(yù)測用戶下一個(gè)感興趣的商品。和用戶級別或者基于相似度的靜態(tài)方法相比,序列化推薦系統(tǒng)還會(huì)對用戶變化的興趣進(jìn)行建模,因此對于現(xiàn)實(shí)的應(yīng)用會(huì)更為受歡迎。
在大量的實(shí)驗(yàn)中,我們發(fā)現(xiàn)基于transformer的模型被認(rèn)為是處理序列化數(shù)據(jù)最好的選擇。而其中,最為出名的就是Bert模型,通過利用bert模型,Bert4Rec取得了當(dāng)時(shí)的SOTA效果。盡管Bert框架在許多任務(wù)上都取得了SOTA的效果,但是還存在一個(gè)較大的問題。
對于利用不同類型的side信息,還沒有進(jìn)行過系統(tǒng)的研究;
除了Item的ID信息,我們還存在非常多的side信息,例如評分和商品描述。然而,BERT框架最初設(shè)計(jì)為只接受一種類型的輸入(即wordid),限制了side信息的使用。通過試點(diǎn)實(shí)驗(yàn),我們發(fā)現(xiàn)現(xiàn)有的方法通常利用side信息(圖1),但很少有效果。

但是理論上來說,side信息通過提供更多的數(shù)據(jù)是可以帶來幫助的,但是,如何使用好這些額外的信息來設(shè)計(jì)模型是非常有挑戰(zhàn)的。
在本文中,我們研究如何使用大量的side信息,并提出了NOVA(Non-inVasive self-Attention mechanism),通過使用side信息來提升模型的預(yù)測準(zhǔn)確率并且取得了非常好的效果。

在NOVA中,side信息作為self-attention模塊的輔助信息來學(xué)習(xí)更好的注意分布,而不是融合到Item表示中,這可能會(huì)導(dǎo)致信息壓倒性等副作用。我們在實(shí)驗(yàn)室數(shù)據(jù)集和從真實(shí)應(yīng)用商店收集的私有數(shù)據(jù)集上驗(yàn)證了NOVA-BERT設(shè)計(jì)效果。結(jié)果證明了該方法的優(yōu)越性。本文的核心貢獻(xiàn)有三點(diǎn):
提出了NOVA-BERT框架,該框架可以有效地利用各種side信息進(jìn)行序列化的推薦任務(wù); 我們提出了非切入(non-invasive)的self-attention機(jī)制(NOVA),這是一種新的設(shè)計(jì),可以實(shí)現(xiàn)對復(fù)合序列數(shù)據(jù)的self-attention; 基于可視化給出了模型的可解釋性。
2. 相關(guān)工作
從早期的CNN->RNN->Attention的演化中,我們發(fā)現(xiàn)基于BERT類型的模型可以獲得最好的效果。

2.2 序列化推薦模型的問題
在之前諸多的問題中,大家都知道side information是非常重要的,但是關(guān)于side information如何使用的問題卻很少研究,之前的框架都是基于invasive fusion的方式;關(guān)于Invasive fusion的方法包括:
Summation Concatenation Gated Sum
通過上面的操作,然后將混合的信息輸入到NN中,我們稱此類方法為Invasive的方法,因?yàn)樗鼈兏淖兞嗽嫉谋硎尽?/span>
以前的CNN和RNN工作都試圖利用side信息,將side信息直接融合到商品embedding中,并進(jìn)行concatenation和addition等操作。
其它一些工作如GRU等提出了更復(fù)雜的特征融合門機(jī)制和其它訓(xùn)練技巧,試圖使特征選擇成為可學(xué)習(xí)的過程。然而,根據(jù)他們的實(shí)驗(yàn)結(jié)果,簡單的方法不能有效地利用各種場景下的豐富信息。盡管Hidasi等人通過為每種類型的side信息部署一個(gè)并行子網(wǎng)來提高預(yù)測精度,但該模型變得繁瑣且不靈活。
還有一些研究,并不直接改變商品的embedding,而是使用RNN模型通過item boosting的trick來加入停留時(shí)間,這么做我們希望損失函數(shù)能意識到dwell time,用戶看一個(gè)商品的時(shí)間越長,她/他可能對某件商品更加感興趣,但是該trick卻更加依賴于啟發(fā)式。另一方面,一些與商品相關(guān)的輔助信息(如價(jià)格)描述了商品的內(nèi)在特征,這些特征與停留時(shí)間不同,不容易被此類方式利用。
3. 方法
3.1 問題描述
給定一個(gè)用戶的歷史交互,順序推薦任務(wù)要求與下一個(gè)商品交互,或者執(zhí)行下一個(gè)操作。我們用表示一個(gè)用戶, 他的歷史交互可以被表示為:
其中商品表示第個(gè)交互(也可以表示為行為),當(dāng)有一類行為并且沒有side信息,每個(gè)交互可以通過商品的id進(jìn)行表示:
其中表示第個(gè)商品ID,
是所有商品的vocabulary, 是字典大小,給定用戶的歷史,我們的目標(biāo)是預(yù)測用戶最有可能交互的下一個(gè)商品。
3.2 Side信息
Side信息可以是為推薦提供額外有用信息的任何內(nèi)容,可以分為兩種類型:
商品相關(guān)信息或行為相關(guān)信息。
基于商品的side信息是固有的,它們可以表述商品,除了商品ID等還可以加入(price,商品的日期,生產(chǎn)者等等)。
與行為相關(guān)的side信息與用戶發(fā)起的交互有關(guān),例如操作類型(例如,購買、打分)、執(zhí)行時(shí)間或用戶反饋分?jǐn)?shù)。每個(gè)交互的順序(即,原始BERT中的位置ID)也可以作為一種行為相關(guān)的side信息。如果加入side信息,那么我們的交互就變?yōu)椋?/span>
其中 表示用戶的第個(gè)交互行為相關(guān)的side信息, 表示一個(gè)商品,包括了商品的ID和許多商品相關(guān)的成分。商品相關(guān)的side信息是靜態(tài)的,并且包含了每個(gè)特定商品的內(nèi)部特征,所以我們的詞典可以被重新表示為:
我們的目標(biāo)是預(yù)測下一個(gè)商品的ID:
其中,是潛在行為相關(guān)的side信息。
3.3 BERT和Invasive的self-attention
BERT4Rec是第一次將BERT框架用于序列化推薦任務(wù)的,并且取得了SOTA的效果,在BERT框架下面,Item被表示為向量,在訓(xùn)練的過程中,一些商品被隨機(jī)mask掉,BERT模型需要盡力將它們的向量表示恢復(fù)過來,
其中是softmax函數(shù),是比例因子。BERT使用encoder decoder的設(shè)計(jì)形式對每個(gè)輸入的序列中的商品產(chǎn)出一個(gè)上下文的表示,BERT使用embedding層來存儲個(gè)向量,每個(gè)對應(yīng)詞典中的一個(gè)商品。
為了更好地使用side信息,傳統(tǒng)方法經(jīng)常會(huì)使用分開的embedding層來將side信息編碼為向量,然后將它們fuse加入到ID的embedding中,
是用戶的第個(gè)交互的集成embedding,是embedding層,然后我們將集成的embedding序列輸入到模型當(dāng)中。
BERT使用self-attention機(jī)制來更新表示層,
我們知道self-attention操作是位置不變的函數(shù),所以此處我們將位置embedding編碼加入其中。也就是說,此處我們的BERT僅僅是將位置信息作為了side信息,并且使用addition作為fusion函數(shù)。

3.4 Non-invasive Self-attention
如果我們考慮端到端的BERT框架,它是一個(gè)自動(dòng)編碼器,具有堆疊的self-attention層。相同的embedding映射用于編碼商品ID和解碼還原的向量表示。因此,我們認(rèn)為
invasive方法有復(fù)雜嵌入空間的缺點(diǎn),
因?yàn)樯唐稩D不可逆地與其他邊信息融合?;旌蟻碜詉d的信息和其他輔助信息可能會(huì)使模型難以解碼商品ID。對應(yīng)地,我們提出了一種新的方法,即non-invasive自注意(NOVA),在利用side信息對序列進(jìn)行更有效建模的同時(shí),保持嵌入空間的一致性。其思路是:
修改自我注意機(jī)制,仔細(xì)控制自已組件的信息源,即Q、K和V
NOVA不僅是第3.3節(jié)中定義的集成嵌入E,還保留了純ID嵌入的分支。
因此,對于NOVA,用戶的歷史由兩個(gè)表示集合表示,純ID embedding以及集成的embedding。
NOVA從集成的embedding R,來自于商品ID的emebdding 中計(jì)算Q和V,實(shí)踐中,我們以張量的形式處理整條序列。
其中是Batch size, 是序列長度, 是embedding向量的大小, NOVA可以被表示為:
其中是通過線性轉(zhuǎn)化得到:
NOVA和invasive方法的比較可以通過下圖看到:

3.5 Fusion操作
NOVA和invasive方法在使用side信息下的不同在于,NOVA將其作為一個(gè)輔助的并通過fusion函數(shù)將side信息作為Keys和Querys輸入。此處我們定義concatfusion, 來將所有的side信息進(jìn)行fusion,后面會(huì)接一個(gè)全鏈接層。
我們可以使用從上下文中提取可訓(xùn)練的系數(shù)來設(shè)計(jì)gating的fusion,
其中, 是所有特征的矩陣形式, ,是可訓(xùn)練的參數(shù),是被fused的特征向量的維度,
3.6 NOVA-BERT
每個(gè)NOVA層接受兩個(gè)輸入,
side信息 商品表示序列
然后輸出相同形狀的更新表示,再將這些表示輸送送到下一層。
對于第一層的輸入,商品表示是純商品ID嵌入。由于我們只使用side信息作為輔助來學(xué)習(xí)更好的注意分布,side信息不會(huì)隨著NOVA層傳播。為每個(gè)NOVA層明確提供相同的side信息集。

NOVA-BERT遵循原始的BERT框架,除了將self-attention層替換為了NOVA層之外,所以額外的參數(shù)和計(jì)算是可以忽略的。
我們認(rèn)為,在NOVA-BERT算法中,隱藏表示保持在相同的嵌入空間中,這將使解碼過程成為一個(gè)齊次向量搜索,有利于預(yù)測。
4. 實(shí)驗(yàn)
4.1 效果比較

NOVA-BERT的效果比其它的都要好; 與Bert4Rec僅利用位置ID相比,invasive式方法使用了多種side信息,但改進(jìn)非常有限甚至沒有正向效果。相反,NOVA-BERT方法能有效地利用side信息,性能穩(wěn)定,優(yōu)于其他方法。 在我們實(shí)驗(yàn)中,發(fā)現(xiàn)越大的denser數(shù)據(jù)集,模型提升的幅度會(huì)下降;我們假設(shè),在語料庫更為豐富的情況下,這些模型甚至可以從商品的上下文中學(xué)習(xí)到足夠好的商品embedding,從而為輔助信息的補(bǔ)充留下更小的空間。 NOVA-BERT的魯棒性是非常好的;不管我們使用什么fusion函數(shù),Nova-Bert的效果一直比baseline模型要好; 最佳融合函數(shù)可能取決于數(shù)據(jù)集。一般來說,gating方法具有很強(qiáng)的性能,這可能得益于其可訓(xùn)練的gating機(jī)制。結(jié)果還表明,對于實(shí)際部署,融合函數(shù)的類型可以是一個(gè)超參數(shù),并應(yīng)根據(jù)數(shù)據(jù)集的內(nèi)在屬性進(jìn)行調(diào)整,以達(dá)到最佳的在線性能。
4.2 不同side信息的貢獻(xiàn)

None:是原始的Bert+position ID; 商品相關(guān)和行為相關(guān)的side信息并未帶來準(zhǔn)確率的明顯提升; 如果結(jié)合了與行為相關(guān)的side信息,則改進(jìn)的效果明顯大于其中任何一個(gè)帶來的改進(jìn)的總和;也就是說不同類型的side信息并不是獨(dú)立的; NOVA-BERT從綜合信息中獲益更多,并且有很強(qiáng)的能力利用豐富的數(shù)據(jù)而不受信息的困擾;
4.3 Attention 分布的可視化

NOVA-BERT的注意力得分在局部性方面表現(xiàn)出更強(qiáng)的模式,大致集中在對角線上。另一方面,在基線模型的圖中沒有觀察到。 根據(jù)我們對整個(gè)數(shù)據(jù)集的觀察,這種對比是普遍存在的。我們注意到側(cè)邊信息導(dǎo)致模型在早期層次形成更明顯的attention。實(shí)驗(yàn)結(jié)果表明,NOVA-BERT算法以side信息作為計(jì)算attention矩陣的輔助工具,可以學(xué)習(xí)目標(biāo)的注意分布,從而提高計(jì)算的準(zhǔn)確性。
此外,我們也進(jìn)行個(gè)案研究,以了解NOVA的注意分布,并進(jìn)行更詳細(xì)的分析。詳情請參閱附錄。
4.4 NOVA-BERT的部署和代價(jià)

NOVA-BERT幾乎沒有額外的計(jì)算開銷,與invasive方法的大小相同。
5. 結(jié)論
在本文中,我們提出了NOVA-BERT推薦系統(tǒng)和Non-invasive自我注意機(jī)制(NOVA)。提出的NOVA機(jī)制沒有將sidw信息直接融合到商品表示中,而是利用side信息作為方向引導(dǎo),保持商品表示在向量空間中不被摻雜。我們在實(shí)驗(yàn)數(shù)據(jù)集和工業(yè)應(yīng)用兩個(gè)方面對NOVA-BERT進(jìn)行了評估,在計(jì)算和模型尺寸方面的開銷可以忽略不計(jì)的情況下實(shí)現(xiàn)了SOTA性能。

?------------------------------------------------
看到這里了,說明您也喜歡這篇文章,您可以點(diǎn)擊「分享」與朋友們交流,點(diǎn)擊「在看」使我們的新文章及時(shí)出現(xiàn)在您的訂閱列表中,或順手「點(diǎn)贊」給我們一個(gè)支持,讓我們做的更好哦。
歡迎微信搜索并關(guān)注「目標(biāo)檢測與深度學(xué)習(xí)」,不被垃圾信息干擾,只分享有價(jià)值知識!
