李詩(shī)文 潘善亮
(寧波大學(xué)信息科學(xué)與工程學(xué)院 浙江 寧波 315211)
互聯(lián)網(wǎng)的飛速發(fā)展給人們帶來(lái)了極大的便利,同時(shí)造成了信息呈現(xiàn)指數(shù)型的增長(zhǎng)。人們翱翔在科技信息、娛樂(lè)信息、新聞信息、廣告信息和社交信息[1]的海洋中,卻面臨著難以尋找到喜愛(ài)的物品的窘境。淘寶、京東、今日頭條等移動(dòng)APP的實(shí)踐表明,推薦系統(tǒng)能夠緩解“信息過(guò)載”造成人們獲取有價(jià)值的信息越來(lái)越難、時(shí)間成本越來(lái)越高的問(wèn)題,為用戶提供真正需求的商品,實(shí)現(xiàn)用戶與商家的共贏。推薦系統(tǒng)能夠根據(jù)用戶的購(gòu)買記錄、評(píng)分?jǐn)?shù)據(jù)、歷史瀏覽記錄和發(fā)表言論信息等行為和商品的材質(zhì)、顏色、尺寸、用途和價(jià)格等屬性信息,挖掘用戶與商品之間的潛在關(guān)系。通過(guò)推薦算法從海量的商品中發(fā)現(xiàn)用戶感興趣的商品,用推薦列表的形式呈現(xiàn)給用戶。
傳統(tǒng)的推薦算法目標(biāo)是為用戶提供個(gè)性化推薦,然而,在實(shí)際生活中更多是群體活動(dòng),例如,現(xiàn)實(shí)中的同事們聚餐、情侶約會(huì)、朋友旅游、看電影和社交網(wǎng)絡(luò)中的微信公眾號(hào)、微信讀書及豆瓣討論組、電影組、音樂(lè)組等。如何權(quán)衡群組間用戶的差異性同時(shí)為群組推薦一個(gè)滿意的商品,使群組推薦成為一個(gè)熱門且具有挑戰(zhàn)性的研究課題。已經(jīng)有很多學(xué)者對(duì)群組推薦算法進(jìn)行了相關(guān)研究,群組推薦算法主要分為推薦模型融合和推薦結(jié)果融合兩類。推薦模型融合算法首先獲取各個(gè)組員的偏好,然后根據(jù)組員的偏好融合為群組的偏好,最后利用個(gè)性化推薦算法進(jìn)行推薦。常用的模型策略有以下四種:① 多元投票策略[12],優(yōu)點(diǎn)是考慮了多數(shù)用戶的偏好推薦得票數(shù)最多的項(xiàng)目,但不能解決負(fù)面偏好和投票時(shí)間過(guò)長(zhǎng)的問(wèn)題;② 專家策略[4],優(yōu)點(diǎn)是由特定工作領(lǐng)域知識(shí)經(jīng)驗(yàn)豐富組員的推薦,但需要專家有權(quán)威性和組員服從專家的決定才能有高質(zhì)量的推薦;③ 最小痛苦策略[5],優(yōu)點(diǎn)是生成所有用戶都認(rèn)可的商品,但推薦的商品通常過(guò)于普通,組員既不討厭也不喜歡;④ 均值策略[6]能夠平均多用戶的偏好,若組內(nèi)用戶相似性較高則可以生成滿意度高的推薦。推薦結(jié)果融合算法[2]首先根據(jù)各個(gè)用戶的偏好生成個(gè)性化推薦列表,然后融合所有組員的個(gè)性化推薦列表生成群組推薦列表,根據(jù)不同的個(gè)性化推薦算法,其推薦結(jié)果的差異性較大。
本文將注意力模型引入神經(jīng)網(wǎng)絡(luò)貝葉斯個(gè)性化排序算法(NBPR)[9]中,利用注意力權(quán)重表示組員對(duì)于群組的重要程度,考慮多用戶的特征聚合和多用戶的特征交互,提出基于注意力機(jī)制的貝葉斯群組推薦算法(ANBGR)。首先根據(jù)群組和項(xiàng)目的交互記錄和群組中的組員信息,將用戶和項(xiàng)目映射到高維空間,得到用戶和項(xiàng)目的高維潛在矩陣,然后在注意力模型層考慮了群組用戶的偏好聚合和群組用戶的偏好相互影響,最后利用貝葉斯理論知識(shí)預(yù)測(cè)群組的偏好。相比較傳統(tǒng)推薦算法,本文算法不僅考慮不同組員在群組中具有不同的重要性,還考慮了組員相互影響新生成的偏好,提高了推薦算法的預(yù)測(cè)精度;使用貝葉斯個(gè)性化排序的思想,生成用戶和項(xiàng)目的高維潛在矩陣信息,利用正負(fù)數(shù)據(jù)構(gòu)建三元組,在模型層面解決了矩陣稀疏性問(wèn)題。
面向群組的推薦算法不僅要盡可能地滿足群組成員的需求,還要盡可能地減少群組成員偏好的沖突,使群組推薦不僅面臨著傳統(tǒng)推薦算法的問(wèn)題,還有亟待解決的新問(wèn)題。針對(duì)群組偏好相似性與差異性問(wèn)題,Sihem等[10]基于共識(shí)函數(shù)的理論,計(jì)算組員對(duì)于項(xiàng)目偏好的相似程度及組員之間的差異程度。針對(duì)群組推薦算法中忽略組員間交互和影響問(wèn)題,Liu等[11]通過(guò)分析群組的決策過(guò)程提出個(gè)人影響主題模型,其假設(shè)用戶與群組服從主題的狄利克雷分布,考慮組員的個(gè)人偏好、個(gè)人影響和社交網(wǎng)絡(luò)信息,具有影響力的用戶能夠代表群組決策,但該模型沒(méi)有考慮到用戶在不同模型的影響力。Yuan等[3]提出概率模型來(lái)對(duì)群組活動(dòng)進(jìn)行建模,認(rèn)為與主題相關(guān)的專家更具有影響力,結(jié)合用戶的歷史和個(gè)人信息分配不同的權(quán)重。針對(duì)群組推薦結(jié)果融合問(wèn)題,Ortega等[2]提出群組推薦相似度度量方法,將推薦過(guò)程分為相似度度量、建立領(lǐng)域、預(yù)測(cè)階段和推薦項(xiàng)四個(gè)基本階段,證明了協(xié)同過(guò)濾在群組推薦的適應(yīng)性。針對(duì)群組推薦中不確定性問(wèn)題,Campos等[7]提出貝葉斯協(xié)作網(wǎng)絡(luò)模型來(lái)考慮群組推薦過(guò)程中的用戶偏好不確定性和群組成員相互影響導(dǎo)致決策過(guò)程的不確定性,根據(jù)相似用戶的投票計(jì)算群組評(píng)分。針對(duì)群組推薦中時(shí)效性問(wèn)題,Masthof等[16]提出上下文感知系統(tǒng),聚合單個(gè)用戶的模型信息,并針對(duì)用戶的情感建模。
注意力模型最初是在機(jī)器翻譯和閱讀理解領(lǐng)域中提出,用于解決編碼器問(wèn)題,隨后在圖像領(lǐng)域用于生成高質(zhì)量的圖片。Gong等[15]提出了全局通道和局部通道注意力模型解決微博中的標(biāo)簽推薦問(wèn)題,它將標(biāo)簽推薦看成一個(gè)多目標(biāo)分類問(wèn)題,局部通道可以看成是一個(gè)決策過(guò)程,將所有微博詞匯連接成一個(gè)序列,計(jì)算每個(gè)詞匯的重要程度,全局通道設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)作為架構(gòu),在池化層使用過(guò)濾器提取最重要的功能圖。Wang等[8]提出了一種動(dòng)態(tài)注意力模型解決文章推薦問(wèn)題,它使用字符集文本建模和卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)文章的表達(dá)形式,獲取其中有助于預(yù)測(cè)行為的單詞,使用注意力模型獲取編輯者選擇文章的動(dòng)態(tài)特征。Vinh等[18]認(rèn)為在作出群組決策之前群組用戶會(huì)相互討論,提出用戶會(huì)影響群組其他用戶決策的模型,利用注意模型學(xué)習(xí)其他群體成員的專業(yè)知識(shí)對(duì)同一群體中某一成員決策的影響,從而模擬群體決策過(guò)程,不僅可以探索每個(gè)用戶對(duì)組的影響,還可以獲得不同組中一個(gè)用戶的各種影響。Zhou等[17]基于用戶行為建模,將用戶的行為描述為(動(dòng)作類型,目標(biāo),時(shí)間)三元組,然后語(yǔ)義映射空間將用戶行為映射多個(gè)語(yǔ)義空間,通過(guò)注意力模型層模擬一個(gè)行為被其他行為影響后的表征?;谝延械难芯繂l(fā),本文考慮在群組推薦系統(tǒng)中引入注意力模型,動(dòng)態(tài)地給群組中不同組員分配不同的權(quán)重,同時(shí)考慮組員偏好交互的影響生成新的特征,以期實(shí)現(xiàn)一個(gè)更有效的群組推薦算法。
本文使用注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)貝葉斯個(gè)性化排序模型,模型采用神經(jīng)網(wǎng)絡(luò)架構(gòu),從下往上依次是嵌入層、注意力模型層、隱藏層、BGR層,如圖1所示。其中:嵌入層分別得到用戶和項(xiàng)目的高維統(tǒng)一向量表示;注意力模型層不僅考慮組員偏好聚合,同時(shí)考慮組員偏好交互,生成群組對(duì)于項(xiàng)目的表示;隱藏層使用多層感知機(jī)模型學(xué)習(xí)非線性高階特征;BGR層通過(guò)神經(jīng)網(wǎng)絡(luò)反向傳播實(shí)現(xiàn)。
圖1 ANBGR框架圖
嵌入層將用戶和項(xiàng)目映射到高維空間,生成用戶和項(xiàng)目的潛在向量表示。其有兩個(gè)嵌入矩陣F1和F2,F1表示u×d維的用戶潛在高維矩陣,F(xiàn)2表示i×d維的項(xiàng)目的潛在矩陣,u和i分別表示用戶和項(xiàng)目的個(gè)數(shù),d是自定義值,輸入用戶和項(xiàng)目就可以生成用戶和項(xiàng)目的高維統(tǒng)一向量。
本文使用注意力模型進(jìn)行建模,評(píng)估群組中每個(gè)組員對(duì)于群組的重要性,權(quán)重越高的用戶說(shuō)明其重要性越高,其推薦的項(xiàng)目更可能被群組其他成員采納。在計(jì)算的過(guò)程中,考慮了用戶偏好聚合策略和用戶偏好交互策略,最后將兩者作為注意力模型的輸出,公式如下:
(1)
式中:fgi表示群組g對(duì)于項(xiàng)目i的偏好;fut表示群組中用戶的潛在高維向量;aut表示群組中用戶的權(quán)重;huk表示群組中多用戶交互生成的潛在高維特征向量;buk表示群組中多用戶交互生成的特征向量的權(quán)重;q為偏置參數(shù)。
2.2.1 用戶偏好聚合策略
本文使用加權(quán)求和的方法聚合用戶的偏好,模型如圖2所示,其中系數(shù)aut表示用戶在群組中的權(quán)重。在實(shí)際中,一個(gè)用戶對(duì)于一個(gè)領(lǐng)域有更多的專業(yè)知識(shí),群組其他用戶可能服從他的決定,即專家策略。計(jì)算注意力權(quán)重時(shí)考慮了用戶潛在向量fut={fu1,fu2,…,fun}、項(xiàng)目潛在向量fi和上下文向量c1,其計(jì)算過(guò)程如下:
(2)
(3)
式中:系數(shù)矩陣Wa、Wb、Wc和偏置項(xiàng)c1為模型參數(shù),然后使用Softmax函數(shù)進(jìn)行歸一化處理。
圖2 用戶偏好聚合策略圖
2.2.2 用戶偏好交互策略
在計(jì)算群組偏好時(shí),不僅要考慮組員對(duì)于群組的影響,還要考慮組員間的行為博弈。例如:情侶在一起選擇影劇時(shí),男生喜歡看科幻類型,而女生喜歡看宮廷類型,最后的選擇可能是青春校園類型。fut={fu1,fu2,…,fun},將fut看成一個(gè)集合,定義H為fut的非空子集,則huk=H-fut。其模型如圖3所示,在模型中,將不同組員的特征用紅綠藍(lán)三基色表示,不同組員交互影響就會(huì)生成七原色。
(4)
(5)
式中:矩陣Wd、We、Wf和偏置c2為模型參數(shù),然后使用Softmax函數(shù)進(jìn)行歸一化處理。
圖3 用戶偏好交互模型圖
隱藏層是一個(gè)多層感知機(jī)網(wǎng)絡(luò)結(jié)構(gòu),分別將注意力模型的輸出fgi、fi與fg j、fj作為隱藏層的輸入,通過(guò)隱藏層網(wǎng)絡(luò)獲取群組與項(xiàng)目之間的非線性高階關(guān)系,從而預(yù)測(cè)群組對(duì)于項(xiàng)目的偏好Sgi和Sg j。
BGR算法基于貝葉斯理論在先驗(yàn)知識(shí)下極大化后驗(yàn)概率,其核心是針對(duì)一個(gè)群組面對(duì)兩個(gè)項(xiàng)目的排序進(jìn)行建模,如果一個(gè)群組g對(duì)于項(xiàng)目i的評(píng)分高于項(xiàng)目j的評(píng)分,表示群組更喜歡項(xiàng)目i,本文用三元組
p(θ|>g)∝p(>g|θ)p(θ)
(6)
式中:>g表示群組g對(duì)于所有項(xiàng)目的全序關(guān)系;θ表示模型參數(shù)。
第一步 似然函數(shù)p(>g|θ)可以改寫為:
(7)
式中:i>gj表示群組g對(duì)于項(xiàng)目i偏好程度高于項(xiàng)目j。
p(i>gj|θ)=σ(Sgi-Sg j)
(8)
式中:σ(θ)是Sigmoid函數(shù);Sgi表示群組g對(duì)于項(xiàng)目i的偏好;Sg j表示群組g對(duì)于項(xiàng)目j的偏好。
第二步 假設(shè)θ是均值為0、參數(shù)為λ的正態(tài)分布:
p(θ)~N(0,λθI)
(9)
第三步 BGR算法的最大似然函數(shù)為:
lnp(θ|>g)∝lnp(>g|θ)p(θ)=
(10)
式中:Sgi表示群組g對(duì)于項(xiàng)目i的偏好;Sg j表示群組g對(duì)于項(xiàng)目j的偏好;θ是模型的參數(shù)。
本文研究的數(shù)據(jù)集是CAMRa2011,來(lái)源于ACM推薦系統(tǒng)大賽,是一個(gè)記錄了個(gè)人用戶和家庭電影評(píng)分的真實(shí)數(shù)據(jù)集。該數(shù)據(jù)集中用戶與電影、家庭與電影的交互是評(píng)分等級(jí)為0到100的反饋,數(shù)據(jù)集包含602個(gè)用戶、290個(gè)家庭組、7 710部電影、116 344個(gè)用戶與電影交互和145 068個(gè)家庭組與電影交互。
為了評(píng)價(jià)推薦模型的性能,本文采用了HR、歸一化折損積累增益(Normalized Discounted Cumulative Gain,NDCG)作為評(píng)價(jià)指標(biāo)。在推薦列表中,靠近前面的推薦項(xiàng)目應(yīng)該是最重要的,靠近后面的項(xiàng)目是次要的,推薦列表的每一項(xiàng)除以一個(gè)遞增的數(shù),得到折損值,然后計(jì)算出整個(gè)推薦列表的折損積累總值。將算法得到的DCG除以理想狀況下推薦列表的折損積累總值(IDCG),這個(gè)值越大說(shuō)明推薦結(jié)果越接近理想推薦列表,最重要的推薦結(jié)果排在推薦列表的前面,則歸一化折損積累表示為:
(11)
(12)
推薦命中率(Hit Ratio)表述為HR,按TOP_N推薦列表中的項(xiàng)目占總體測(cè)試集的比例計(jì)算。命中率越高說(shuō)明推薦結(jié)果越好,更符合用戶的需求,則推薦命中率表示為:
(13)
本文共選擇了7種對(duì)比實(shí)驗(yàn)來(lái)衡量算法的有效性,其中NCF為個(gè)性化推薦算法,而在為群組推薦時(shí)使用均值策略、最小痛苦策略、最大滿意度策略、專家策略作為合成算法。此外,為了與最新的算法進(jìn)行對(duì)比,本文采用了Yuan等[3]提出的生成建模的概率方法COM,以及文獻(xiàn)[13]提出的根據(jù)項(xiàng)目的受歡迎程度向用戶和群組推薦算法Popularity。為了衡量注意力模型的重要性,本文做了ANBGR的變體實(shí)驗(yàn),引入群組成員均值權(quán)重NBGR算法。綜上,本文使用的對(duì)比方法為以NCF為基礎(chǔ)的群組推薦算法NCF_avg、NCF_lm、NCF_ms、NCF_exp,以及最新算法COM[3]、Popularity[13]和NBGR算法。
3.4.1 推薦個(gè)數(shù)分析
在推薦個(gè)數(shù)為5和10的條件下,圖4和圖5分別展示了本文算法與對(duì)比算法的推薦命中率和歸一化折損積累增益情況。
圖4 不同算法的推薦命中率
圖5 不同算法的歸一化折損增益
可以看出,本文推薦算法表現(xiàn)結(jié)果均優(yōu)于對(duì)比實(shí)驗(yàn)算法。在推薦個(gè)數(shù)為5的條件下,本文提出算法在推薦命中率上比NCF_avg算法提升4.9%,在歸一化折損積累增益上比NCF_avg提升3.9%,在推薦個(gè)數(shù)為10的條件下,本文提出算法在推薦命中率上比NCF_avg算法提升3.6%,在歸一化折損積累增益上比NCF_avg提升3.8%。這表明了本文推薦算法使用注意力模型的有效性。其次NCF為基礎(chǔ)的群組推薦算法NCF_avg、NCF_lm、NCF_ms、NCF_exp比Popularity算法有更好的結(jié)果,說(shuō)明神經(jīng)網(wǎng)絡(luò)模型的優(yōu)越性,能夠獲取到群組的高維特征,有更強(qiáng)的泛化能力。
3.4.2 計(jì)算性能分析
為了驗(yàn)證注意力權(quán)重模型相對(duì)均值權(quán)重模型的有效性,在最優(yōu)參數(shù)設(shè)置條件下,圖6和圖7分別展示了算法ANBGR和NBGR的迭代性能情況??梢钥闯觯谕扑]個(gè)數(shù)為5的條件下,由于注意力模型的參數(shù)需要一個(gè)學(xué)習(xí)的過(guò)程,所以,在前5次迭代過(guò)程中,NBGR模型推薦結(jié)果略高于ANBGR,但迭代30次時(shí),ANBGR算法在推薦命中率上比NBGR提升3.5%,在歸一化折損積累上比NBGR提升4.3%;在推薦個(gè)數(shù)為10的條件下,ANBGR算法在推薦命中率上比NBGR提升3.9%,在歸一化折損積累上比NBGR提升4.0%。這驗(yàn)證了注意力模型能夠提高推薦結(jié)果。
圖6 ANBGR與NBGR在TOP5的迭代HR
圖7 ANBGR與NBGR在TOP5的迭代NDCG
本文將貝葉斯個(gè)性化排序算法引入群組推薦中,成對(duì)的優(yōu)化群組對(duì)于積極項(xiàng)目和消極項(xiàng)目間的差異,避免了矩陣稀疏的影響;基于注意力模型提出用戶偏好聚合和用戶偏好交互的兩種策略來(lái)融合群組的特征,既保留了群組多用戶的相似特征,又增強(qiáng)了群組的泛化能力;隱藏層使用多層感知機(jī)網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)群組的非線性高階關(guān)系。實(shí)驗(yàn)結(jié)果表明,本文算法相對(duì)于對(duì)比算法,有較好的推薦結(jié)果。
本文算法并未考慮到用戶、項(xiàng)目的固有屬性特征信息,下一步的研究工作包括:用戶、項(xiàng)目屬性的多樣化、個(gè)性化,考慮引入語(yǔ)義分析;用戶、項(xiàng)目屬性具有不同的重要性,考慮引入注意力機(jī)制突出重要的屬性特征,提高推薦算法的推薦準(zhǔn)確率。