李詩文 潘善亮
(寧波大學信息科學與工程學院 浙江 寧波 315211)
互聯網的飛速發展給人們帶來了極大的便利,同時造成了信息呈現指數型的增長。人們翱翔在科技信息、娛樂信息、新聞信息、廣告信息和社交信息[1]的海洋中,卻面臨著難以尋找到喜愛的物品的窘境。淘寶、京東、今日頭條等移動APP的實踐表明,推薦系統能夠緩解“信息過載”造成人們獲取有價值的信息越來越難、時間成本越來越高的問題,為用戶提供真正需求的商品,實現用戶與商家的共贏。推薦系統能夠根據用戶的購買記錄、評分數據、歷史瀏覽記錄和發表言論信息等行為和商品的材質、顏色、尺寸、用途和價格等屬性信息,挖掘用戶與商品之間的潛在關系。通過推薦算法從海量的商品中發現用戶感興趣的商品,用推薦列表的形式呈現給用戶。
傳統的推薦算法目標是為用戶提供個性化推薦,然而,在實際生活中更多是群體活動,例如,現實中的同事們聚餐、情侶約會、朋友旅游、看電影和社交網絡中的微信公眾號、微信讀書及豆瓣討論組、電影組、音樂組等。如何權衡群組間用戶的差異性同時為群組推薦一個滿意的商品,使群組推薦成為一個熱門且具有挑戰性的研究課題。已經有很多學者對群組推薦算法進行了相關研究,群組推薦算法主要分為推薦模型融合和推薦結果融合兩類。推薦模型融合算法首先獲取各個組員的偏好,然后根據組員的偏好融合為群組的偏好,最后利用個性化推薦算法進行推薦。常用的模型策略有以下四種:① 多元投票策略[12],優點是考慮了多數用戶的偏好推薦得票數最多的項目,但不能解決負面偏好和投票時間過長的問題;② 專家策略[4],優點是由特定工作領域知識經驗豐富組員的推薦,但需要專家有權威性和組員服從專家的決定才能有高質量的推薦;③ 最小痛苦策略[5],優點是生成所有用戶都認可的商品,但推薦的商品通常過于普通,組員既不討厭也不喜歡;④ 均值策略[6]能夠平均多用戶的偏好,若組內用戶相似性較高則可以生成滿意度高的推薦。推薦結果融合算法[2]首先根據各個用戶的偏好生成個性化推薦列表,然后融合所有組員的個性化推薦列表生成群組推薦列表,根據不同的個性化推薦算法,其推薦結果的差異性較大。
本文將注意力模型引入神經網絡貝葉斯個性化排序算法(NBPR)[9]中,利用注意力權重表示組員對于群組的重要程度,考慮多用戶的特征聚合和多用戶的特征交互,提出基于注意力機制的貝葉斯群組推薦算法(ANBGR)。首先根據群組和項目的交互記錄和群組中的組員信息,將用戶和項目映射到高維空間,得到用戶和項目的高維潛在矩陣,然后在注意力模型層考慮了群組用戶的偏好聚合和群組用戶的偏好相互影響,最后利用貝葉斯理論知識預測群組的偏好。相比較傳統推薦算法,本文算法不僅考慮不同組員在群組中具有不同的重要性,還考慮了組員相互影響新生成的偏好,提高了推薦算法的預測精度;使用貝葉斯個性化排序的思想,生成用戶和項目的高維潛在矩陣信息,利用正負數據構建三元組,在模型層面解決了矩陣稀疏性問題。
面向群組的推薦算法不僅要盡可能地滿足群組成員的需求,還要盡可能地減少群組成員偏好的沖突,使群組推薦不僅面臨著傳統推薦算法的問題,還有亟待解決的新問題。針對群組偏好相似性與差異性問題,Sihem等[10]基于共識函數的理論,計算組員對于項目偏好的相似程度及組員之間的差異程度。針對群組推薦算法中忽略組員間交互和影響問題,Liu等[11]通過分析群組的決策過程提出個人影響主題模型,其假設用戶與群組服從主題的狄利克雷分布,考慮組員的個人偏好、個人影響和社交網絡信息,具有影響力的用戶能夠代表群組決策,但該模型沒有考慮到用戶在不同模型的影響力。Yuan等[3]提出概率模型來對群組活動進行建模,認為與主題相關的專家更具有影響力,結合用戶的歷史和個人信息分配不同的權重。針對群組推薦結果融合問題,Ortega等[2]提出群組推薦相似度度量方法,將推薦過程分為相似度度量、建立領域、預測階段和推薦項四個基本階段,證明了協同過濾在群組推薦的適應性。針對群組推薦中不確定性問題,Campos等[7]提出貝葉斯協作網絡模型來考慮群組推薦過程中的用戶偏好不確定性和群組成員相互影響導致決策過程的不確定性,根據相似用戶的投票計算群組評分。針對群組推薦中時效性問題,Masthof等[16]提出上下文感知系統,聚合單個用戶的模型信息,并針對用戶的情感建模。
注意力模型最初是在機器翻譯和閱讀理解領域中提出,用于解決編碼器問題,隨后在圖像領域用于生成高質量的圖片。Gong等[15]提出了全局通道和局部通道注意力模型解決微博中的標簽推薦問題,它將標簽推薦看成一個多目標分類問題,局部通道可以看成是一個決策過程,將所有微博詞匯連接成一個序列,計算每個詞匯的重要程度,全局通道設計卷積神經網絡作為架構,在池化層使用過濾器提取最重要的功能圖。Wang等[8]提出了一種動態注意力模型解決文章推薦問題,它使用字符集文本建模和卷積神經網絡學習文章的表達形式,獲取其中有助于預測行為的單詞,使用注意力模型獲取編輯者選擇文章的動態特征。Vinh等[18]認為在作出群組決策之前群組用戶會相互討論,提出用戶會影響群組其他用戶決策的模型,利用注意模型學習其他群體成員的專業知識對同一群體中某一成員決策的影響,從而模擬群體決策過程,不僅可以探索每個用戶對組的影響,還可以獲得不同組中一個用戶的各種影響。Zhou等[17]基于用戶行為建模,將用戶的行為描述為(動作類型,目標,時間)三元組,然后語義映射空間將用戶行為映射多個語義空間,通過注意力模型層模擬一個行為被其他行為影響后的表征。基于已有的研究啟發,本文考慮在群組推薦系統中引入注意力模型,動態地給群組中不同組員分配不同的權重,同時考慮組員偏好交互的影響生成新的特征,以期實現一個更有效的群組推薦算法。
本文使用注意力機制的神經網絡貝葉斯個性化排序模型,模型采用神經網絡架構,從下往上依次是嵌入層、注意力模型層、隱藏層、BGR層,如圖1所示。其中:嵌入層分別得到用戶和項目的高維統一向量表示;注意力模型層不僅考慮組員偏好聚合,同時考慮組員偏好交互,生成群組對于項目的表示;隱藏層使用多層感知機模型學習非線性高階特征;BGR層通過神經網絡反向傳播實現。

圖1 ANBGR框架圖
嵌入層將用戶和項目映射到高維空間,生成用戶和項目的潛在向量表示。其有兩個嵌入矩陣F1和F2,F1表示u×d維的用戶潛在高維矩陣,F2表示i×d維的項目的潛在矩陣,u和i分別表示用戶和項目的個數,d是自定義值,輸入用戶和項目就可以生成用戶和項目的高維統一向量。
本文使用注意力模型進行建模,評估群組中每個組員對于群組的重要性,權重越高的用戶說明其重要性越高,其推薦的項目更可能被群組其他成員采納。在計算的過程中,考慮了用戶偏好聚合策略和用戶偏好交互策略,最后將兩者作為注意力模型的輸出,公式如下:
(1)
式中:fgi表示群組g對于項目i的偏好;fut表示群組中用戶的潛在高維向量;aut表示群組中用戶的權重;huk表示群組中多用戶交互生成的潛在高維特征向量;buk表示群組中多用戶交互生成的特征向量的權重;q為偏置參數。
2.2.1 用戶偏好聚合策略
本文使用加權求和的方法聚合用戶的偏好,模型如圖2所示,其中系數aut表示用戶在群組中的權重。在實際中,一個用戶對于一個領域有更多的專業知識,群組其他用戶可能服從他的決定,即專家策略。計算注意力權重時考慮了用戶潛在向量fut={fu1,fu2,…,fun}、項目潛在向量fi和上下文向量c1,其計算過程如下:
(2)
(3)
式中:系數矩陣Wa、Wb、Wc和偏置項c1為模型參數,然后使用Softmax函數進行歸一化處理。

圖2 用戶偏好聚合策略圖
2.2.2 用戶偏好交互策略
在計算群組偏好時,不僅要考慮組員對于群組的影響,還要考慮組員間的行為博弈。例如:情侶在一起選擇影劇時,男生喜歡看科幻類型,而女生喜歡看宮廷類型,最后的選擇可能是青春校園類型。fut={fu1,fu2,…,fun},將fut看成一個集合,定義H為fut的非空子集,則huk=H-fut。其模型如圖3所示,在模型中,將不同組員的特征用紅綠藍三基色表示,不同組員交互影響就會生成七原色。
(4)
(5)
式中:矩陣Wd、We、Wf和偏置c2為模型參數,然后使用Softmax函數進行歸一化處理。

圖3 用戶偏好交互模型圖
隱藏層是一個多層感知機網絡結構,分別將注意力模型的輸出fgi、fi與fg j、fj作為隱藏層的輸入,通過隱藏層網絡獲取群組與項目之間的非線性高階關系,從而預測群組對于項目的偏好Sgi和Sg j。
BGR算法基于貝葉斯理論在先驗知識下極大化后驗概率,其核心是針對一個群組面對兩個項目的排序進行建模,如果一個群組g對于項目i的評分高于項目j的評分,表示群組更喜歡項目i,本文用三元組
p(θ|>g)∝p(>g|θ)p(θ)
(6)
式中:>g表示群組g對于所有項目的全序關系;θ表示模型參數。
第一步 似然函數p(>g|θ)可以改寫為:
(7)
式中:i>gj表示群組g對于項目i偏好程度高于項目j。
p(i>gj|θ)=σ(Sgi-Sg j)
(8)
式中:σ(θ)是Sigmoid函數;Sgi表示群組g對于項目i的偏好;Sg j表示群組g對于項目j的偏好。
第二步 假設θ是均值為0、參數為λ的正態分布:
p(θ)~N(0,λθI)
(9)
第三步 BGR算法的最大似然函數為:
lnp(θ|>g)∝lnp(>g|θ)p(θ)=
(10)
式中:Sgi表示群組g對于項目i的偏好;Sg j表示群組g對于項目j的偏好;θ是模型的參數。
本文研究的數據集是CAMRa2011,來源于ACM推薦系統大賽,是一個記錄了個人用戶和家庭電影評分的真實數據集。該數據集中用戶與電影、家庭與電影的交互是評分等級為0到100的反饋,數據集包含602個用戶、290個家庭組、7 710部電影、116 344個用戶與電影交互和145 068個家庭組與電影交互。
為了評價推薦模型的性能,本文采用了HR、歸一化折損積累增益(Normalized Discounted Cumulative Gain,NDCG)作為評價指標。在推薦列表中,靠近前面的推薦項目應該是最重要的,靠近后面的項目是次要的,推薦列表的每一項除以一個遞增的數,得到折損值,然后計算出整個推薦列表的折損積累總值。將算法得到的DCG除以理想狀況下推薦列表的折損積累總值(IDCG),這個值越大說明推薦結果越接近理想推薦列表,最重要的推薦結果排在推薦列表的前面,則歸一化折損積累表示為:
(11)
(12)
推薦命中率(Hit Ratio)表述為HR,按TOP_N推薦列表中的項目占總體測試集的比例計算。命中率越高說明推薦結果越好,更符合用戶的需求,則推薦命中率表示為:
(13)
本文共選擇了7種對比實驗來衡量算法的有效性,其中NCF為個性化推薦算法,而在為群組推薦時使用均值策略、最小痛苦策略、最大滿意度策略、專家策略作為合成算法。此外,為了與最新的算法進行對比,本文采用了Yuan等[3]提出的生成建模的概率方法COM,以及文獻[13]提出的根據項目的受歡迎程度向用戶和群組推薦算法Popularity。為了衡量注意力模型的重要性,本文做了ANBGR的變體實驗,引入群組成員均值權重NBGR算法。綜上,本文使用的對比方法為以NCF為基礎的群組推薦算法NCF_avg、NCF_lm、NCF_ms、NCF_exp,以及最新算法COM[3]、Popularity[13]和NBGR算法。
3.4.1 推薦個數分析
在推薦個數為5和10的條件下,圖4和圖5分別展示了本文算法與對比算法的推薦命中率和歸一化折損積累增益情況。

圖4 不同算法的推薦命中率

圖5 不同算法的歸一化折損增益
可以看出,本文推薦算法表現結果均優于對比實驗算法。在推薦個數為5的條件下,本文提出算法在推薦命中率上比NCF_avg算法提升4.9%,在歸一化折損積累增益上比NCF_avg提升3.9%,在推薦個數為10的條件下,本文提出算法在推薦命中率上比NCF_avg算法提升3.6%,在歸一化折損積累增益上比NCF_avg提升3.8%。這表明了本文推薦算法使用注意力模型的有效性。其次NCF為基礎的群組推薦算法NCF_avg、NCF_lm、NCF_ms、NCF_exp比Popularity算法有更好的結果,說明神經網絡模型的優越性,能夠獲取到群組的高維特征,有更強的泛化能力。
3.4.2 計算性能分析
為了驗證注意力權重模型相對均值權重模型的有效性,在最優參數設置條件下,圖6和圖7分別展示了算法ANBGR和NBGR的迭代性能情況。可以看出,在推薦個數為5的條件下,由于注意力模型的參數需要一個學習的過程,所以,在前5次迭代過程中,NBGR模型推薦結果略高于ANBGR,但迭代30次時,ANBGR算法在推薦命中率上比NBGR提升3.5%,在歸一化折損積累上比NBGR提升4.3%;在推薦個數為10的條件下,ANBGR算法在推薦命中率上比NBGR提升3.9%,在歸一化折損積累上比NBGR提升4.0%。這驗證了注意力模型能夠提高推薦結果。

圖6 ANBGR與NBGR在TOP5的迭代HR

圖7 ANBGR與NBGR在TOP5的迭代NDCG
本文將貝葉斯個性化排序算法引入群組推薦中,成對的優化群組對于積極項目和消極項目間的差異,避免了矩陣稀疏的影響;基于注意力模型提出用戶偏好聚合和用戶偏好交互的兩種策略來融合群組的特征,既保留了群組多用戶的相似特征,又增強了群組的泛化能力;隱藏層使用多層感知機網絡結構學習群組的非線性高階關系。實驗結果表明,本文算法相對于對比算法,有較好的推薦結果。
本文算法并未考慮到用戶、項目的固有屬性特征信息,下一步的研究工作包括:用戶、項目屬性的多樣化、個性化,考慮引入語義分析;用戶、項目屬性具有不同的重要性,考慮引入注意力機制突出重要的屬性特征,提高推薦算法的推薦準確率。