陳恩華,方寶富
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,合肥230601)
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)信息量呈爆炸式增長(zhǎng),人類社會(huì)已經(jīng)進(jìn)入到一個(gè)信息過(guò)載的時(shí)代。如何使信息接收者花費(fèi)少量的時(shí)間和精力,即能夠從龐大的信息庫(kù)中獲取所需的信息是一個(gè)急需解決的問(wèn)題。傳統(tǒng)解決信息過(guò)載的方式一般有兩種:一種是信息分類,如hao123 等信息分類網(wǎng)站,雖然信息已經(jīng)成功分類,但還是會(huì)花費(fèi)用戶大量的時(shí)間去查找;另一種方式是搜索引擎,在大部分情況下搜索引擎能幫助用戶找到需要的信息,然而有時(shí)用戶不知自己需要什么或者無(wú)法準(zhǔn)確地選取關(guān)鍵詞進(jìn)行搜索。因此,如何在節(jié)省用戶時(shí)間的同時(shí)提高效率是一個(gè)重要的問(wèn)題。除用戶主動(dòng)在系統(tǒng)查找商品外,系統(tǒng)也應(yīng)該了解用戶的偏好,從而使系統(tǒng)精準(zhǔn)匹配用戶的需求以達(dá)到節(jié)省時(shí)間與提高效率的目的??紤]到現(xiàn)實(shí)生活中用戶的豐富需求,研究人員提出了推薦系統(tǒng)技術(shù)。2006年,Netflix組織競(jìng)賽極大地促進(jìn)了推薦系統(tǒng)技術(shù)的發(fā)展。近年來(lái),越來(lái)越多的領(lǐng)域,如電商[1]、電影[2]、音樂(lè)[3]等廣泛地應(yīng)用了推薦系統(tǒng)技術(shù)。
推薦系統(tǒng)根據(jù)不同的場(chǎng)景采用不同的推薦算法,常用的推薦算法有協(xié)同過(guò)濾推薦算法[4-5]、基于內(nèi)容的推薦算法、基于模型的推薦算法[2,6]等。其中協(xié)同過(guò)濾推薦算法與基于內(nèi)容的推薦算法需要采集用戶信息從而對(duì)用戶進(jìn)行畫(huà)像。這表明當(dāng)系統(tǒng)采集不到用戶信息時(shí),這些方法不能很好地應(yīng)用于推薦系統(tǒng)?;跁?huì)話的推薦算法利用用戶的會(huì)話信息可以很好地解決這一問(wèn)題,即用戶發(fā)起的事件序列信息。例如在B2C 網(wǎng)站中,該信息就是用戶對(duì)感興趣的物品的一系列點(diǎn)擊事件序列。在大數(shù)據(jù)環(huán)境下,根據(jù)用戶的點(diǎn)擊序列可以發(fā)現(xiàn)用戶會(huì)話中的item(item 的信息含義比較廣泛,比如資訊、電影、商品等,下文統(tǒng)稱為item)有相似或者相關(guān)的關(guān)系。
通過(guò)使用word2vec 中的Skip-gram 模型和層次softmax 優(yōu)化方法訓(xùn)練會(huì)話數(shù)據(jù)。根據(jù)當(dāng)前會(huì)話中已經(jīng)發(fā)生的item 序列,針對(duì)每個(gè)item 分配合適的權(quán)值,對(duì)已經(jīng)發(fā)生的會(huì)話事件序列計(jì)算出一個(gè)特征向量,計(jì)算與該特征向量最相似的向量,并根據(jù)相似度大小篩選出排在前20 的item 進(jìn)行推薦,如果用戶點(diǎn)擊了其中的一個(gè),則說(shuō)明本次推薦是召回成功的。
本文提出一種基于item 嵌入向量相似性的推薦算法SR-I2V,該算法通過(guò)訓(xùn)練出每個(gè)item 的嵌入向量,使相似或者相關(guān)的item在嵌入空間中具有較近的距離。同時(shí)利用意圖遞進(jìn)公式,依據(jù)會(huì)話數(shù)據(jù)中已發(fā)生的用戶點(diǎn)擊行為計(jì)算出用戶當(dāng)前意圖特征向量。
基于會(huì)話的推薦是基于隱式反饋的推薦系統(tǒng)的典型應(yīng)用,其中沒(méi)有明確的偏好(如評(píng)分、評(píng)論等),只有一些正反饋信息(如點(diǎn)擊)可用。正反饋信息通常采用序列數(shù)據(jù)的形式,這些數(shù)據(jù)是通過(guò)系統(tǒng)在一段時(shí)間內(nèi)追蹤用戶行為獲得的。
推薦系統(tǒng)中的許多工作都集中在模型上,這些模型需要清晰地采集用戶信息才能工作。在這種情況下,矩陣分解方法[7-8]和鄰域模型[4]在推薦算法中占主導(dǎo)地位,并且在工業(yè)界得到廣泛使用。項(xiàng)目間推薦方法[5,9]不僅是基于會(huì)話的推薦采用的主要方法之一,而且是用戶信息缺失問(wèn)題的自然解決方案,項(xiàng)目與項(xiàng)目之間相似性矩陣是從采集的會(huì)話數(shù)據(jù)中預(yù)先計(jì)算的,即在會(huì)話中經(jīng)常一起點(diǎn)擊的項(xiàng)目被認(rèn)為是最相似的。在會(huì)話期間簡(jiǎn)單地使用該相似性矩陣來(lái)向用戶推薦當(dāng)前點(diǎn)擊的最相似的項(xiàng)目。這種方法雖然比較簡(jiǎn)單,已被證明是有效的并被廣泛使用,但是此方法僅考慮用戶的最后一次點(diǎn)擊行為,實(shí)際上忽略了前面的點(diǎn)擊信息。
文獻(xiàn)[1,10]提出基于馬爾科夫決策過(guò)程(MDP)的方法用于基于會(huì)話的推薦,該方法根據(jù)用戶的前一個(gè)行為來(lái)預(yù)測(cè)用戶的下一個(gè)行為,并將推薦生成視為順序優(yōu)化問(wèn)題,此方法采用了馬爾科夫決策過(guò)程作為解決方案。通過(guò)對(duì)用戶的個(gè)性化概率轉(zhuǎn)換矩陣進(jìn)行因子分解,F(xiàn)PMC[1]對(duì)每?jī)蓚€(gè)相鄰點(diǎn)擊之間的順序行為進(jìn)行建模,并為每個(gè)序列提供更準(zhǔn)確的預(yù)測(cè)。但是基于馬爾科夫鏈模型的一個(gè)主要問(wèn)題是,當(dāng)試圖獲取用戶選擇的所有可能序列時(shí),狀態(tài)空間很快變得難以管理。
近年來(lái),一些基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言預(yù)測(cè)模型[11]被提出。在眾多語(yǔ)言模型中,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是對(duì)句子建模最成功的模型[12],并已廣泛應(yīng)用于各種自然語(yǔ)言處理任務(wù),如機(jī)器翻譯[13]、機(jī)器人對(duì)話[14]和圖片說(shuō)明[15]。RNN 已成功應(yīng)用于眾多應(yīng)用中,例如順序點(diǎn)擊預(yù)測(cè)[16]、位置預(yù)測(cè)[17-18]、下一個(gè)添加購(gòu)物籃的推薦[19]等。文獻(xiàn)[6]將RNN 應(yīng)用于基于會(huì)話的推薦,并實(shí)現(xiàn)了對(duì)傳統(tǒng)方法的改進(jìn),其提出的模型利用并行小批量會(huì)話訓(xùn)練,并采用基于排名的損失函數(shù)來(lái)學(xué)習(xí)模型。
文獻(xiàn)[20]提出利用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)item 嵌入從而進(jìn)行推薦,Airbnb 學(xué)習(xí)房源的嵌入向量,然后根據(jù)會(huì)話信息向客戶推薦房源,微軟應(yīng)用item 向量嵌入向用戶推薦音樂(lè)[3]。
文獻(xiàn)[21]提出word2vec 模型,該神經(jīng)網(wǎng)絡(luò)模型根據(jù)上下文的語(yǔ)境來(lái)推斷出每個(gè)詞的詞向量,使得經(jīng)常出現(xiàn)在一起的詞的向量距離很接近,還有一種情況是如果兩個(gè)詞在上下文中可以被相互替代,那么這兩個(gè)詞的向量距離也會(huì)非常接近。比如,在上下文環(huán)境中,比較“喜歡”和“崇拜”兩個(gè)詞語(yǔ),會(huì)發(fā)現(xiàn)兩個(gè)詞語(yǔ)的向量距離非常接近。用戶在電子商務(wù)網(wǎng)站買東西時(shí),產(chǎn)生的點(diǎn)擊行為短時(shí)間內(nèi)不會(huì)有很大的跳躍性,后面感興趣的item 會(huì)和前面點(diǎn)擊的item類似或者相關(guān),即整個(gè)點(diǎn)擊序列中的item 往往在某些特征有很大的相似性。如上文所述,每個(gè)用戶的點(diǎn)擊序列類似于句子的組成形式,點(diǎn)擊序列中的每個(gè)item 相似于句子中的詞語(yǔ)。將數(shù)十萬(wàn)、甚至數(shù)百萬(wàn)的點(diǎn)擊序列用word2vec 模型學(xué)習(xí),能夠得到一些向量距離很相近的item。
word2vec 模型的理論基礎(chǔ)是距離較近的單詞相似度更高,進(jìn)行向量嵌入后它們的向量更近。word2vec常用的訓(xùn)練方法有CBOW(Continuous Bag-of-Words Model)和Skip-gram 兩種,CBOW 方法是根據(jù)前面和后面各n個(gè)詞推出中心詞,相反,Skip-gram 方法是用中心詞分別推出前面和后面n個(gè)詞。實(shí)驗(yàn)結(jié)果表明,Skipgram 比CBOW 能取得更好的效果。這兩種模型對(duì)應(yīng)負(fù)采樣和層次softmax 兩種優(yōu)化算法。
本文提出了SR-I2V 推薦算法,該算法將Skip-gram模型和層次softmax 應(yīng)用于僅有會(huì)話數(shù)據(jù)可利用的推薦場(chǎng)景中,本節(jié)主要闡述SR-I2V 算法的核心框架。
如圖1所示,SR-I2V 使用Skip-gram 模型和層次softmax 優(yōu)化方法求出每個(gè)item 的嵌入向量,根據(jù)用戶意圖遞進(jìn)計(jì)算出意圖特征向量,得出與意圖特征向量距離最相近的20 個(gè)item 進(jìn)行推薦。
圖1 SR-I2V 推薦算法框架Fig.1 Framework of SR-I2V recommendation algorithm
基于會(huì)話的推薦是指僅利用用戶與系統(tǒng)交互的點(diǎn)擊序列數(shù)據(jù),從而預(yù)測(cè)用戶下一步可能會(huì)發(fā)生點(diǎn)擊事件的item。假設(shè)系統(tǒng)從N個(gè)用戶那里獲得了|S|個(gè)點(diǎn)擊會(huì)話集S,其中每個(gè)會(huì)話s=(i1,i2,…,in)∈S定義為被用戶點(diǎn)擊的n個(gè)item 的不間斷序列。每當(dāng)兩次相鄰的用戶item 點(diǎn)擊之間的時(shí)間間隔超過(guò)30 min 時(shí),可以認(rèn)為用戶發(fā)生興趣漂移[20],將后面的item 序列重定義為新的會(huì)話。針對(duì)訓(xùn)練數(shù)據(jù)集,使用SR-I2V 算法訓(xùn)練出每個(gè)item 的d維嵌入向量,訓(xùn)練之后達(dá)到的效果是類似或者相關(guān)的item 在嵌入空間中的距離相對(duì)較近。也就是說(shuō),該算法的目的是通過(guò)最大化Skip-gram模型[21]中的目標(biāo)函數(shù)L來(lái)學(xué)習(xí)item 的嵌入向量。目標(biāo)函數(shù)L定義如下所示:
其中:超參數(shù)m定義為點(diǎn)擊item 的上下文(相鄰item)的長(zhǎng)度。
其中:v和v′是item 的輸入和輸出向量表示形式;V是數(shù)據(jù)集中的唯一itemID 的集合。
從式(1)和式(2)可以看出,本文方法對(duì)item 點(diǎn)擊序列的時(shí)間上下文進(jìn)行了建模,其中具有相似性上下文(即在點(diǎn)擊會(huì)話中相似的item)的item 將具有相似的向量表示形式。
式(1)中目標(biāo)函數(shù)的梯度?L所需的時(shí)間與item 總數(shù)|V|成正比,對(duì)于大量的item,例如數(shù)十萬(wàn)個(gè)item,在短時(shí)間內(nèi)計(jì)算出?L是一項(xiàng)不可完成的任務(wù)。作為替代方案,本文使用層次softmax 方法可以大大降低計(jì)算復(fù)雜度。
層次softmax 的主要優(yōu)勢(shì)在于不需要評(píng)估神經(jīng)網(wǎng)絡(luò)中的|V|個(gè)節(jié)點(diǎn)以獲得概率分布,而是僅需要評(píng)估大約lb|V|個(gè)節(jié)點(diǎn)。具體操作是先統(tǒng)計(jì)所有會(huì)話數(shù)據(jù)中的item 頻率,根據(jù)item 頻率構(gòu)造一棵哈夫曼樹(shù)。樹(shù)中的每個(gè)葉子節(jié)點(diǎn)代表一個(gè)item,而非葉子節(jié)點(diǎn)對(duì)應(yīng)著一些中間向量。每個(gè)非葉子節(jié)點(diǎn)都是一個(gè)基于邏輯回歸的二分類器,其將給定的輸入向量分為正負(fù)兩類。對(duì)于某一輸入Xi,根據(jù)邏輯回歸可知,其被分為正類的概率為:
其中:θ為分類器所包含的中間向量。在哈夫曼樹(shù)中,將左子樹(shù)編碼為1,表示該節(jié)點(diǎn)分類器輸出為負(fù)類,相反,右子樹(shù)編碼為0,表示該節(jié)點(diǎn)分類器輸出為正類。
在構(gòu)成的哈夫曼樹(shù)中,從iI預(yù)測(cè)出iO會(huì)對(duì)應(yīng)唯一一條從根節(jié)點(diǎn)(root)到表示iO葉子節(jié)點(diǎn)的路徑path(iO),路徑長(zhǎng)度為L(zhǎng)(iO)。n(iO,j)表示path(iO)上的第j個(gè)節(jié)點(diǎn),容易得出n(iO,1)=root,以及n(iO,L(iO))=iO。當(dāng)x為true時(shí)表示節(jié)點(diǎn)n的右子樹(shù)。結(jié)合式(3),層次softmax 對(duì)P(iO|iI)的定義如下:
為簡(jiǎn)化式(4)的表示,并且在不引入歧義的情況下進(jìn)行了以下簡(jiǎn)化:
由式(4)得到對(duì)數(shù)似然目標(biāo)函數(shù):
根據(jù)隨機(jī)梯度上升法得出哈夫曼樹(shù)中內(nèi)部節(jié)點(diǎn)n(iO,j)的向量表示和輸入層iI的向量表示,可以最大化對(duì)數(shù)似然目標(biāo)函數(shù)式(7)。
(5) 隨剪力連接度的降低,試驗(yàn)梁的動(dòng)力響應(yīng)變大;在剪力連接度相同情況下,不同栓釘損傷對(duì)結(jié)合梁動(dòng)力性能影響不大。
用戶在與系統(tǒng)交互的過(guò)程中,通常情況下自己的意圖越往后會(huì)越清晰,本文定義這種現(xiàn)象為意圖遞進(jìn)。靠后的item 點(diǎn)擊事件會(huì)對(duì)下一個(gè)被點(diǎn)擊的item 的預(yù)測(cè)產(chǎn)生更重要的影響。在用戶已經(jīng)和系統(tǒng)發(fā)生交互的n個(gè)item 中,第k個(gè)item 對(duì)將要發(fā)生的下一個(gè)item 產(chǎn)生影響的意圖權(quán)值是αi λ,其中,α是意圖遞進(jìn)參數(shù),λ由等式確定。綜合已發(fā)生的n個(gè)item 的向量值,定義意圖特征向量為:
最后求出與意圖特征向量在嵌入空間距離最近的20 個(gè)item 向量,按照相似度大小排名進(jìn)行推薦。基于SR-I2V 的會(huì)話型推薦算法的偽代碼如下:
算法1基于物品嵌入向量的會(huì)話型推薦算法
為了驗(yàn)證本文所提算法的有效性,本文在實(shí)驗(yàn)過(guò)程中選用兩個(gè)具有代表性的公共數(shù)據(jù)集評(píng)估SR-I2V算法,第1 個(gè)數(shù)據(jù)集是Yoochoose,該數(shù)據(jù)集來(lái)自RecSys Challenge 2015,它是從一個(gè)B2C 電子商務(wù)網(wǎng)站采集的,采集的是6個(gè)月內(nèi)用戶在電子商務(wù)網(wǎng)站上的點(diǎn)擊流,該數(shù)據(jù)集只保留了點(diǎn)擊序列。在預(yù)處理過(guò)程中,為了與GRU4REC等算法進(jìn)行公平的對(duì)比,將數(shù)據(jù)集中點(diǎn)擊序列長(zhǎng)度小于2的會(huì)話或者item出現(xiàn)次數(shù)少于5的事件過(guò)濾掉。實(shí)驗(yàn)過(guò)程中用最后一天的會(huì)話數(shù)據(jù)作為測(cè)試集評(píng)估算法,將測(cè)試集中不存在于訓(xùn)練集中的item過(guò)濾掉,并且將測(cè)試集中長(zhǎng)度小于2的會(huì)話過(guò)濾掉。
第2 個(gè)數(shù)據(jù)集Diginetica 來(lái)自于CIKM Cup2016,是從一個(gè)真實(shí)電子商務(wù)網(wǎng)站收集用戶的行為數(shù)據(jù)的公共數(shù)據(jù)集,包括5 個(gè)月內(nèi)網(wǎng)站訪問(wèn)者的行為數(shù)據(jù),實(shí)驗(yàn)中只利用其中的點(diǎn)擊數(shù)據(jù)。在數(shù)據(jù)預(yù)處理過(guò)程中,該數(shù)據(jù)集與Yoochoose 應(yīng)用相同的過(guò)濾規(guī)則,唯一不同之處是選擇最后一周數(shù)據(jù)作為測(cè)試集。
經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,兩個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息如表1所示。
表1 Yoochoose 和Diginetica 數(shù)據(jù)集統(tǒng)計(jì)信息Table 1 Yoochoose and Diginetica dataset statistics
由于推薦算法一次只能推薦幾個(gè)item,用戶實(shí)際選擇的item 應(yīng)該在列表的前幾個(gè)項(xiàng)目中。每次推薦20 個(gè)item,用戶點(diǎn)擊其中的一個(gè)表明本次推薦是召回成功的,因此,實(shí)驗(yàn)的主要評(píng)估指標(biāo)是召回率(Recall@20),即推薦成功的案例在所有推薦案例中的比例。召回率不考慮item 的實(shí)際排名,只需要它在推薦的20 個(gè)item 中。實(shí)驗(yàn)中使用的第2 個(gè)評(píng)價(jià)指標(biāo)是平均倒數(shù)排名(MRR@20),即召回item 的排名倒數(shù)的平均值。如果排名高于20,則將MRR@20 設(shè)置為零。MRR@20 考慮推薦項(xiàng)目的排名,這在實(shí)際推薦場(chǎng)景中是很重要的,例如電商系統(tǒng)中給用戶推薦的排名低的項(xiàng)目?jī)H在滾動(dòng)之后才能見(jiàn)到。
本文對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行處理,會(huì)話數(shù)據(jù)按照時(shí)間戳排名,再根據(jù)會(huì)話ID 進(jìn)行分類,將每個(gè)會(huì)話中的item 按照空格分割按照句子的形式記錄下來(lái),每個(gè)會(huì)話的分詞文本單獨(dú)占用一行。
用word2vec 對(duì)記錄的會(huì)話分詞文本進(jìn)行訓(xùn)練。在訓(xùn)練的過(guò)程中,發(fā)現(xiàn)有若干參數(shù)對(duì)實(shí)驗(yàn)結(jié)果會(huì)產(chǎn)生比較大的影響,需要調(diào)節(jié)的參數(shù)介紹如下:
1)sg:表示訓(xùn)練word2vec 的兩種模型,當(dāng)sg 為1時(shí),表示選用Skip-gram 模型,如果默認(rèn)為0,則選用CBOW 模型。
2)hs:表示兩種模型的各兩種優(yōu)化算法,當(dāng)hs 為1 時(shí),使用層次softmax 算法,如果默認(rèn)為0,則選用負(fù)采樣方法。
3)size:訓(xùn)練向量嵌入的維度。
4)window:表示由當(dāng)前item 預(yù)測(cè)前面和后面item 的個(gè)數(shù),如當(dāng)window 為5 時(shí),表示會(huì)考慮當(dāng)前item 的前面和后面各5 個(gè)item。
以SR-I2V 在Dignetica 數(shù)據(jù)集上調(diào)參過(guò)程為例,具體調(diào)參過(guò)程如圖2~圖4所示,從而找到最優(yōu)推薦效果的參數(shù)。該模型調(diào)優(yōu)的最佳參數(shù)如表2所示。實(shí)驗(yàn)結(jié)果表明:SR-I2V 選用Skip-gram 模型和層次softmax 優(yōu)化算法可以使推薦效果得到顯著提升。
表2 word2vec 最優(yōu)參數(shù)值Table 2 word2vec optimal parameter value
圖2 sg,hs 參數(shù)變化時(shí)產(chǎn)生的影響Fig.2 Effect of sg and hs parameters changes
圖4 window 參數(shù)變化時(shí)產(chǎn)生的影響Fig.4 Effect of window parameter changes
圖3 size 參數(shù)變化時(shí)產(chǎn)生的影響Fig.3 Effect of size parameter changes
針對(duì)會(huì)話已有的item 項(xiàng),根據(jù)意圖遞進(jìn)定義和式(5)得出意圖特征向量,然后求出與意圖特征向量距離最近的20 個(gè)item 進(jìn)行推薦。不同的意圖遞進(jìn)參數(shù)α對(duì)實(shí)驗(yàn)結(jié)果會(huì)有一定的影響,實(shí)驗(yàn)結(jié)果如表3所示。從表3 可以看出,在兩個(gè)數(shù)據(jù)集上的薦效果先隨著α值增長(zhǎng)而增長(zhǎng),當(dāng)α值在2.1 附近時(shí),推薦效果隨著α值增加而降低,最后推薦效果隨著α值增加而趨于穩(wěn)定。表明了本文提出的意圖遞進(jìn)公式的正確性,可以看出對(duì)預(yù)測(cè)影響最大的是最后一個(gè)item,也進(jìn)一步說(shuō)明了會(huì)話序列中前面的item 對(duì)預(yù)測(cè)有一定的影響。
表3 不同的意圖遞進(jìn)參數(shù)α 值對(duì)推薦結(jié)果的影響Table 3 Effect of different intent progressive parameter values of α on the recommended results %
本節(jié)對(duì)本文提出的方法與一系列常用的方法進(jìn)行比較。POP 是一種簡(jiǎn)單的基于流行度的推薦方法,始終推薦訓(xùn)練集中最受歡迎的項(xiàng)目。S-POP 推薦當(dāng)前會(huì)話中最受歡迎的項(xiàng)目。Item-KNN[9]推薦與實(shí)際項(xiàng)目類似的項(xiàng)目,相似性定義為會(huì)話向量之間的余弦相似度,即會(huì)話中兩個(gè)項(xiàng)目的共現(xiàn)次數(shù)除以發(fā)生單個(gè)項(xiàng)目的會(huì)話數(shù)的乘積,還包括正則化以避免很少訪問(wèn)的項(xiàng)目的高度相似性。BPR-MF[22]是常用的矩陣分解方法之一,它通過(guò)SGD 優(yōu)化成對(duì)排名目標(biāo)函數(shù)。矩陣分解不能直接應(yīng)用于基于會(huì)話的推薦,因?yàn)樾聲?huì)話沒(méi)有預(yù)先計(jì)算的向量表示。通過(guò)使用新會(huì)話中發(fā)生的項(xiàng)目的特征向量的平均值表示該會(huì)話,這樣處理就可以解決矩陣分解不能直接應(yīng)用于基于會(huì)話的推薦的問(wèn)題。FPMC[1]是關(guān)于下一個(gè)添加購(gòu)物籃推薦的最新混合模型。為使該模型適用于基于會(huì)話的推薦,一般在計(jì)算推薦分?jǐn)?shù)時(shí)不考慮用戶的潛在表示形式。GRU4Rec[6]使用RNN 模型對(duì)會(huì)話數(shù)據(jù)進(jìn)行建模,該模型使用RNN 改進(jìn)版本GRU,其利用會(huì)話并行小批量訓(xùn)練,并采用基于排名的損失函數(shù)來(lái)學(xué)習(xí)模型。
為了證明本文所提出算法的整體性能,在實(shí)驗(yàn)過(guò)程中將SR-I2V 算法與其他基于會(huì)話的推薦算法進(jìn)行了比較。表4所示為Recall@20 和MRR@20 的總體性能,最佳結(jié)果以黑體字突出顯示。
表4 SR-I2V 和其他對(duì)比算法在兩個(gè)數(shù)據(jù)集上的表現(xiàn)Table 4 Performance of SR-I2V and other comparison algorithms on two datasets %
對(duì)于POP和SPOP等傳統(tǒng)算法,其性能相對(duì)較差。這種簡(jiǎn)單的模型僅基于重復(fù)出現(xiàn)的項(xiàng)目或連續(xù)項(xiàng)目進(jìn)行推薦,這在基于會(huì)話的推薦方案中是存在問(wèn)題的,但S-POP 仍然優(yōu)于POP、BPR-MF 等算法,這說(shuō)明了會(huì)話上下文信息的重要性。GRU4Rec 和SR-I2V 均優(yōu)于所有的傳統(tǒng)算法,這說(shuō)明深度學(xué)習(xí)技術(shù)在基于會(huì)話的推薦領(lǐng)域的應(yīng)用是有效果的。GRG4Rec 主要是通過(guò)對(duì)會(huì)話時(shí)序信息進(jìn)行建模,用戶在點(diǎn)擊item 時(shí),雖然帶有一定的時(shí)序性但不是特別強(qiáng),所以利用循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)會(huì)話信息進(jìn)行建模然后進(jìn)行推薦能夠取得一定的效果,但是效果比較有限。用戶在網(wǎng)站瀏覽商品時(shí)大部分時(shí)候興趣不會(huì)發(fā)散,并且隨著用戶逐步和系統(tǒng)交互,用戶意圖會(huì)越來(lái)越清晰,SR-I2V 根據(jù)已有的item 序列利用意圖遞進(jìn)的規(guī)律總結(jié)用戶的意圖,往往可以比較準(zhǔn)確地把握用戶當(dāng)前的意圖。SR-I2V 不僅利用了會(huì)話中item 的相似性或者相關(guān)性,還利用了會(huì)話的上下文和時(shí)序信息,因此SR-I2V 可以取得比其他算法更好的效果。
本文提出一種基于item 嵌入向量相似性的推薦算法SR-I2V。通過(guò)將Skip-gram 和層次softmax 引入到SR-I2V 推薦算法中,充分挖掘會(huì)話中item 的特征信息,并推薦相似item,根據(jù)提出的意圖遞進(jìn)公式可以更好地總結(jié)用戶的意圖,從而進(jìn)一步提升推薦效果。SR-I2V由于不需要獲取用戶的相關(guān)信息,只需要獲取用戶在系統(tǒng)中的會(huì)話序列信息,以緩解用戶冷啟動(dòng)問(wèn)題和傳統(tǒng)推薦算法中存在的數(shù)據(jù)稀疏問(wèn)題。實(shí)驗(yàn)結(jié)果表明,相比I2I、PoP、S-POP、Item-KNN 等傳統(tǒng)算法,該算法推薦效果大幅提升,且相比應(yīng)用RNN 模型的GRU4Rec算法也有明顯提升。雖然會(huì)話中所有的item 都是用戶瀏覽過(guò)的,但是大量的item 都是在用戶發(fā)生興趣漂移后瀏覽或者不感興趣。下一步將研究如何把注意力機(jī)制融入到SR-I2V 算法中,識(shí)別出用戶不感興趣的item,從而獲取更好的推薦效果。