韓 麗, 楊 青, 陳奕衡, 張敬偉
(1.桂林電子科技大學 廣西自動檢測技術與儀器重點實驗室,廣西 桂林 541004;2.桂林電子科技大學 廣西可信軟件重點實驗室,廣西 桂林 541004)
信息、產品等的日益豐富在為人們生活方式提供極大便利的同時,也使得用戶與信息匹配需求形成一對矛盾。例如,自助旅行希望得到周圍多種及時的旅游信息,音樂聆聽需要在不同場景獲取類別相異的音樂。如何將信息準確而具有多樣性地推薦給用戶是一個重要需求,也是一個巨大挑戰(zhàn)。在諸多領域發(fā)揮重要作用的大規(guī)模數(shù)據(jù)也帶來準確識別用戶興趣等挑戰(zhàn)性問題。作為解決上述問題的重要策略,推薦技術彰顯了重要地位。推薦系統(tǒng)根據(jù)推薦模式的不同可分為個性化推薦、多樣化推薦、包組推薦等。
推薦系統(tǒng)為用戶提供個性化的產品或服務,其在電子商務等領域占有越來越重要的地位。它最初由Resnick等[1]第一次正式提出。個性化推薦旨在根據(jù)算法進行用戶感興趣內容的精準推薦。Kazai等[2]展示了一個原型手機應用程序,將結合地理位置的開機即用的個性化內容推薦給用戶,檢索時通過混合不同來源,直接從他們的社交網(wǎng)絡平臺中基于內容進行個性化推薦。李瑞敏等[3]提出了一個以二部圖節(jié)點結構相似與重啟型隨機游走為基礎的模型。該模型分析了音樂社交網(wǎng)絡Last.fm中用戶、項目、標簽兩兩之間的聯(lián)系,構建音樂及標簽間的相鄰關系,得出音樂推薦列表,實現(xiàn)了個性化音樂推薦算法。個性化推薦解決了為個人推薦的問題,能夠推薦精確的產品或服務,但不能夠為用戶挖掘其潛在感興趣的內容。多樣化的推薦為用戶推薦多樣化的產品和服務,幫助用戶發(fā)現(xiàn)感興趣的內容。Belém等[4]利用關于新穎性和多樣化的標簽推薦,提出了一種新的標簽推薦策略,以彌補更多元化的標簽來覆蓋主題的問題和突出的挑戰(zhàn),提高了用戶的體驗和滿意度。黃璐等[5]針對推薦中熱門效應問題,提出了將用戶主題模型和應用的主題模型與MF相結合的LDA-MF模型,以及將應用的標簽信息和用戶行為數(shù)據(jù)同時加以考慮的LDA-CF算法與協(xié)同過濾模型相融合的混合推薦算法,該算法能夠得到多樣性的移動應用推薦,且準確率較高。現(xiàn)有的多樣化推薦算法根據(jù)多樣化標簽、用戶特征等提高了推薦的多樣性,未考慮用戶潛在的上下文信息,而用戶潛在的上下文信息可以挖掘用戶潛在的興趣,提高推薦的多樣性。包組推薦是近年來備受關注的一種推薦模式,其聚焦將一組產品或服務推薦給一組用戶,提高推薦性能。Naamani等[6]提出了一種迭代優(yōu)先提取的啟發(fā)式算法,用戶為每個需求提供項目評級,在2種聚合策略下最小化偏好,在少量的目標項中為組用戶推薦最為喜歡的前K項產品,通過引入迭代優(yōu)先提取的方法解決了因數(shù)據(jù)量過于大而引起的計算量復雜的問題。胡川等[7]提出一種改進的偏好融合組推薦方法,它結合了模型融合與推薦融合2種方法,提高了推薦準確率。包組推薦能夠為用戶推薦一組產品或服務,但未體現(xiàn)出推薦的多樣化,不能滿足用戶的需求。
綜上,個性化推薦聚焦用戶個體興趣開展精準推薦;多樣化推薦聚焦避免推薦項目的單一性,以提升推薦質量并提高用戶滿意度;包組推薦將服務對象定位為一組用戶,為其生成由一系列產品或服務組成的推薦列表。上述各項推薦模式多以用戶的歷史行為作為核心推薦依據(jù),但在音樂推薦方面,對用戶上下文信息等影響推薦性能的因素考慮不充分,在面向場景的音樂推薦性能方面仍存在較大提升空間。
針對用戶的多樣化音樂欣賞需求,提出了一種嵌入用戶上下文信息的面向場景的音樂推薦算法。該算法在穩(wěn)定推薦準確率的基礎上,較好地提升了推薦項目的覆蓋率和多樣性。其基于用戶歷史行為及改進相似度計算方法,獲取特定用戶的相似用戶;綜合用戶歷史行為和用戶上下文信息建立隱馬爾科夫模型,獲取用戶最大音樂類別概率序列,并融合輸出的最大音樂類別概率序列和相似用戶的音樂類別偏好生成項目推薦列表。
通用的推薦根據(jù)用戶對項目的評分計算出用戶間相似度及用戶對未體驗項目的預測評分,根據(jù)評分高低為用戶作推薦。而用戶潛在的上下文信息對推薦具有非常重要的作用,因此基于用戶的上下文信息與項目類別,即用戶的行為及項目所屬類別,為用戶作多樣化推薦。推薦問題表示如下:
給定一個項目集I,一個用戶集U,一個類別集C,每項i∈I,i∈C,a∈U,b∈U,每個用戶有休息(R)、工作(W)、購物(SH)、旅途(T)4種行為,D代表一組〈r;w;s;t〉行為信息;每個行為伴隨聽民歌(F)、搖滾(RO)、輕音樂(LI)、流行音樂(PO)四種音樂類別,E代表一組〈f;ro;l;po〉音樂類別,O1,O2,…,Ot代表一組音樂類別概率序列。輸入:用戶當前的行為D1、下一個行為D2及其概率P1,在各個行為D下聽音樂類別E的概率P2,對特定音樂的喜愛程度Pr。輸出:用戶間相似度S,最大推薦概率類別序列K及推薦的L首多樣化音樂。
將用戶歷史行為信息、用戶上下文信息以及音樂類別信息等融入推薦模型及改進的相似度計算中,綜合最大概率類別序列,計算相似用戶偏好,為用戶推薦多樣化音樂。提出的模型如圖1所示。整個模型由4個階段組成:
1)進行數(shù)據(jù)預處理,篩選出需要的信息;
2)從數(shù)據(jù)中提取用戶的行為特征參數(shù),并通過建立模型獲取最大音樂類別概率序列;
3)根據(jù)改進的相似度計算方法獲取相似用戶;
4)根據(jù)相似用戶音樂偏好類別與最大音樂類別概率序列,為用戶作多樣化推薦。
音樂推薦中用戶偏好受多因素影響,諸如用戶的工作狀態(tài)、情感情緒等上下文信息對推薦性能具有重要影響,如何融合用戶歷史行為信息和上下文信息提高推薦性能是主要挑戰(zhàn)。

圖1 用戶上下文信息驅動的推薦模型
用戶行為蘊含用戶偏好,其可建模為一個序列模型,與用戶上下文信息進行融合能有效提升推薦的性能。隱馬爾可夫模型可以融合用戶行為序列和用戶上下文狀態(tài)信息,且具有從不同矩陣獲取最大概率序列的能力,為改進用戶上下文驅動的音樂推薦提供了新途徑。而協(xié)同過濾是能夠提升推薦準確率的重要方法[8]。因此,基于上述分析和音樂推薦需求,提出一種集成協(xié)同過濾與隱馬爾可夫模型的音樂推薦算法(CF-HMM)。
隱馬爾科夫模型從一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態(tài)隨機序列,主要從可觀察的參數(shù)中確定該過程的隱含參數(shù),再利用這些參數(shù)作進一步分析。針對音樂推薦需求,將隱馬爾可夫模型建模為從用戶行為狀態(tài)序列生成一個不可觀測的音樂類別序列的過程,進而對隱馬爾科夫模型進行更新,從而獲取最大音樂類別序列概率。其中,初始概率分布為Π={πi},πi為用戶當前的行為狀態(tài),如休息、工作、購物、旅途等。行為狀態(tài)轉移概率分布Α=[aij]N×N表示系統(tǒng)中用戶從一個行為狀態(tài)轉移到另一個行為狀態(tài)的概率。音樂觀測概率分布B=[bjk]M×N表示用戶在行為狀態(tài)下聽音樂類別的概率。
在面向音樂推薦的隱馬爾可夫模型訓練方面,應用概率計算,并引入Baum-Welch方法估計參數(shù),從而實現(xiàn)隱馬爾可夫模型的更新[9]。
1)概率計算。
前向概率初值為
α1(i)=πibi(o1),i=1,2,…,N;
(1)
前向概率遞推為
t=1,2,…,T-1;
(2)
因
αT(i)=P(O1,O2,…,OT,iT=qi|λ),
故音樂類別觀測序列概率為
(3)
2)參數(shù)估計。
根據(jù)訓練集音樂類別觀測序列O={O1,O2,…,OT},隱藏音樂項目狀態(tài)序列I={I1,I2,…,IT},用Baum-Welch算法估計模型參數(shù)λ=(A,B,π),使得在該模型下音樂類別觀測序列概率值P(O|λ)最大。前向變量αt(i)在t時刻行為狀態(tài)為i,t+1時刻狀態(tài)為j,根據(jù)前向算法有
at+1(j)=P(O1,O2,…,Ot+1;it+1=qj|λ)=
(4)
其中,1≤j≤N,1≤t≤T-1。
后向變量βt(i)表示t時刻的行為狀態(tài)為qi,從t+1時刻到T時刻的音樂類別觀察序列為Ot+1,Ot+2,…,OT的概率,則根據(jù)后向計算方法有
(5)
若用戶在時間點t聽Ot音樂類別時的狀態(tài)為Qi的概率為γt(i,j),則有
γt(i)=P(It=Qi|O,λ)=
(6)
(7)
(8)
(9)

根據(jù)用戶行為路徑與音樂偏好,獲取目標用戶的相似用戶,將相似用戶所聽音樂類別及頻率根據(jù)最大觀測序列類別為用戶作多樣化推薦,將音樂類別融入推薦,能夠增加推薦的新穎性和多樣性。2個用戶的行為相似度為
(10)
其中:N1為用戶a、b均從狀態(tài)qm轉移到狀態(tài)qn的頻率之和;N2為用戶a、b均從狀態(tài)qm轉移到任意狀態(tài)的頻率之和。
(11)
其中:N3為用戶a、b在狀態(tài)qm下聽音樂類別相同的頻率;N4為狀態(tài)qm下聽音樂的頻率;Z為2個用戶關于項i的類別偏好。
用戶的行為轉移可以體現(xiàn)用戶的行為偏好,用戶聽音樂類別能夠體現(xiàn)用戶的音樂喜好,把用戶的行為偏好與音樂喜好相結合更能夠體現(xiàn)用戶的習慣偏好。用戶間習慣偏好相似度越高,則相似度權重越大,故定義相似度權重為
ω(i)=μK+(1-μ)Z,
(12)
(13)
(14)

由用戶的上下文信息與更新后隱馬爾科夫模型獲取下一時刻最大音樂類別概率序列,而改進的相似度計算方法可以獲取相似用戶及用戶對未聽音樂的預測評分,綜合最大音樂類別概率序列與用戶對音樂的預測評分,為用戶生成對應類別的推薦列表。
為了驗證算法的可行性,通過微信發(fā)布問卷調查的方式獲取用戶的真實數(shù)據(jù)。問卷調查收回372名有效用戶的真實上下文數(shù)據(jù),包含用戶當前的行為狀態(tài)、下一時刻的行為狀態(tài)的概率值,在某種狀態(tài)下最喜歡的項目及喜愛程度,包含83個項目,覆蓋4種類別。設計了6組實驗對提出的方法進行驗證,實驗平臺為CPU主頻3.5 GHz、內存8 GiB,所有代碼用Python和Matlab實現(xiàn)。
為了驗證本算法的有效性,采用問卷調查的方式獲取真實行為數(shù)據(jù),其中包含用戶的行為狀態(tài)、用戶在某種行為狀態(tài)下所參與的項目等內容。P(u)為推薦的準確率,C(u)為推薦的覆蓋率,D(u)為推薦的多樣性,
(15)
(16)
(17)
其中:n為能夠為用戶推薦正確項目的數(shù)量;Nr為全部推薦的項目數(shù)量;nd為推薦不同的項目數(shù)量;N為項目的總數(shù);c為當前推薦列表中的項目類別;P(c|u)為推薦給u用戶的所有項中屬于c類的比例。D(u)值越大,表明推薦越具有多樣性。
為了使推薦更加準確和多樣化,用戶間相似度應當精確計算,在數(shù)據(jù)集上進行多次實驗,從而獲取最優(yōu)的參數(shù)值μ,為獲取相似度做鋪墊。實驗數(shù)據(jù)隨機抽樣分為4組,每組有93條記錄。如圖2所示,將整體數(shù)據(jù)分為4個數(shù)據(jù)集進行實驗,分別為數(shù)據(jù)組1~4。實驗表明,參數(shù)μ=0.5時準確度最高,故根據(jù)實驗數(shù)據(jù)取μ值為0.5,此時準確率最高。

圖2 參數(shù)測試

圖3
對數(shù)據(jù)集采取隨機抽樣的方法將其分為訓練集和測試集,并進行交叉驗證。采用協(xié)同過濾直接進行推薦與提出的將協(xié)同過濾與隱馬爾可夫相融合的算法進行比較,如圖3所示。從圖3可看出,本算法與協(xié)同過濾相比準確率基本持平、覆蓋率和多樣性均有較大提升。本算法因融入隱馬爾可夫模型和類別信息,其覆蓋率和多樣性得到有效提高。
對協(xié)同過濾與提出的協(xié)同過濾融合隱馬爾科夫模型算法進行實驗對比,從圖3可看出,盡管簡單的CF推薦在準確率上與CF-HMM基本持平,但覆蓋率和多樣性有明顯提高。將提出的策略融入隱含因素,由用戶行為和項目類別為用戶推薦多樣化項目,推薦的準確率基本持平;由于用戶不同行為時類別偏好有所不同,根據(jù)類別偏好為用戶做推薦,提高了推薦的多樣性。上述實驗結果表明,多樣化的推薦對推薦準確率性能稍有影響,但用戶上下文信息和隱馬爾可夫模型能夠讓推薦獲取最大觀測概率序列,其在推薦中融入了隱含的用戶上下文信息,這是提高推薦的覆蓋率和多樣化的主要原因。
為了給用戶推薦更加多樣化的音樂,提出了一種集成協(xié)同過濾和隱馬爾可夫模型的音樂推薦算法。與現(xiàn)有算法相比,其嵌入了用戶上下文信息作為重要推薦因素,基于相似度計算進行優(yōu)化、隱馬爾科夫建模用戶歷史行為和上下文信息獲取音樂類別最大概率序列,進而綜合用戶偏好和音樂類別最大概率序列生成項目序列從而進行推薦,提高了推薦的多樣性。在真實數(shù)據(jù)集上的實驗驗證了該算法的有效性。本研究重點考慮了用戶上下文信息驅動的多樣化推薦問題,后續(xù)可將音樂內容本身的特征引入到用戶興趣的偏好匹配中,以進一步提升推薦性能。