韓 麗, 楊 青, 陳奕衡, 張敬偉
(1.桂林電子科技大學(xué) 廣西自動(dòng)檢測技術(shù)與儀器重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;2.桂林電子科技大學(xué) 廣西可信軟件重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
信息、產(chǎn)品等的日益豐富在為人們生活方式提供極大便利的同時(shí),也使得用戶與信息匹配需求形成一對(duì)矛盾。例如,自助旅行希望得到周圍多種及時(shí)的旅游信息,音樂聆聽需要在不同場景獲取類別相異的音樂。如何將信息準(zhǔn)確而具有多樣性地推薦給用戶是一個(gè)重要需求,也是一個(gè)巨大挑戰(zhàn)。在諸多領(lǐng)域發(fā)揮重要作用的大規(guī)模數(shù)據(jù)也帶來準(zhǔn)確識(shí)別用戶興趣等挑戰(zhàn)性問題。作為解決上述問題的重要策略,推薦技術(shù)彰顯了重要地位。推薦系統(tǒng)根據(jù)推薦模式的不同可分為個(gè)性化推薦、多樣化推薦、包組推薦等。
推薦系統(tǒng)為用戶提供個(gè)性化的產(chǎn)品或服務(wù),其在電子商務(wù)等領(lǐng)域占有越來越重要的地位。它最初由Resnick等[1]第一次正式提出。個(gè)性化推薦旨在根據(jù)算法進(jìn)行用戶感興趣內(nèi)容的精準(zhǔn)推薦。Kazai等[2]展示了一個(gè)原型手機(jī)應(yīng)用程序,將結(jié)合地理位置的開機(jī)即用的個(gè)性化內(nèi)容推薦給用戶,檢索時(shí)通過混合不同來源,直接從他們的社交網(wǎng)絡(luò)平臺(tái)中基于內(nèi)容進(jìn)行個(gè)性化推薦。李瑞敏等[3]提出了一個(gè)以二部圖節(jié)點(diǎn)結(jié)構(gòu)相似與重啟型隨機(jī)游走為基礎(chǔ)的模型。該模型分析了音樂社交網(wǎng)絡(luò)Last.fm中用戶、項(xiàng)目、標(biāo)簽兩兩之間的聯(lián)系,構(gòu)建音樂及標(biāo)簽間的相鄰關(guān)系,得出音樂推薦列表,實(shí)現(xiàn)了個(gè)性化音樂推薦算法。個(gè)性化推薦解決了為個(gè)人推薦的問題,能夠推薦精確的產(chǎn)品或服務(wù),但不能夠?yàn)橛脩敉诰蚱錆撛诟信d趣的內(nèi)容。多樣化的推薦為用戶推薦多樣化的產(chǎn)品和服務(wù),幫助用戶發(fā)現(xiàn)感興趣的內(nèi)容。Belém等[4]利用關(guān)于新穎性和多樣化的標(biāo)簽推薦,提出了一種新的標(biāo)簽推薦策略,以彌補(bǔ)更多元化的標(biāo)簽來覆蓋主題的問題和突出的挑戰(zhàn),提高了用戶的體驗(yàn)和滿意度。黃璐等[5]針對(duì)推薦中熱門效應(yīng)問題,提出了將用戶主題模型和應(yīng)用的主題模型與MF相結(jié)合的LDA-MF模型,以及將應(yīng)用的標(biāo)簽信息和用戶行為數(shù)據(jù)同時(shí)加以考慮的LDA-CF算法與協(xié)同過濾模型相融合的混合推薦算法,該算法能夠得到多樣性的移動(dòng)應(yīng)用推薦,且準(zhǔn)確率較高?,F(xiàn)有的多樣化推薦算法根據(jù)多樣化標(biāo)簽、用戶特征等提高了推薦的多樣性,未考慮用戶潛在的上下文信息,而用戶潛在的上下文信息可以挖掘用戶潛在的興趣,提高推薦的多樣性。包組推薦是近年來備受關(guān)注的一種推薦模式,其聚焦將一組產(chǎn)品或服務(wù)推薦給一組用戶,提高推薦性能。Naamani等[6]提出了一種迭代優(yōu)先提取的啟發(fā)式算法,用戶為每個(gè)需求提供項(xiàng)目評(píng)級(jí),在2種聚合策略下最小化偏好,在少量的目標(biāo)項(xiàng)中為組用戶推薦最為喜歡的前K項(xiàng)產(chǎn)品,通過引入迭代優(yōu)先提取的方法解決了因數(shù)據(jù)量過于大而引起的計(jì)算量復(fù)雜的問題。胡川等[7]提出一種改進(jìn)的偏好融合組推薦方法,它結(jié)合了模型融合與推薦融合2種方法,提高了推薦準(zhǔn)確率。包組推薦能夠?yàn)橛脩敉扑]一組產(chǎn)品或服務(wù),但未體現(xiàn)出推薦的多樣化,不能滿足用戶的需求。
綜上,個(gè)性化推薦聚焦用戶個(gè)體興趣開展精準(zhǔn)推薦;多樣化推薦聚焦避免推薦項(xiàng)目的單一性,以提升推薦質(zhì)量并提高用戶滿意度;包組推薦將服務(wù)對(duì)象定位為一組用戶,為其生成由一系列產(chǎn)品或服務(wù)組成的推薦列表。上述各項(xiàng)推薦模式多以用戶的歷史行為作為核心推薦依據(jù),但在音樂推薦方面,對(duì)用戶上下文信息等影響推薦性能的因素考慮不充分,在面向場景的音樂推薦性能方面仍存在較大提升空間。
針對(duì)用戶的多樣化音樂欣賞需求,提出了一種嵌入用戶上下文信息的面向場景的音樂推薦算法。該算法在穩(wěn)定推薦準(zhǔn)確率的基礎(chǔ)上,較好地提升了推薦項(xiàng)目的覆蓋率和多樣性。其基于用戶歷史行為及改進(jìn)相似度計(jì)算方法,獲取特定用戶的相似用戶;綜合用戶歷史行為和用戶上下文信息建立隱馬爾科夫模型,獲取用戶最大音樂類別概率序列,并融合輸出的最大音樂類別概率序列和相似用戶的音樂類別偏好生成項(xiàng)目推薦列表。
通用的推薦根據(jù)用戶對(duì)項(xiàng)目的評(píng)分計(jì)算出用戶間相似度及用戶對(duì)未體驗(yàn)項(xiàng)目的預(yù)測評(píng)分,根據(jù)評(píng)分高低為用戶作推薦。而用戶潛在的上下文信息對(duì)推薦具有非常重要的作用,因此基于用戶的上下文信息與項(xiàng)目類別,即用戶的行為及項(xiàng)目所屬類別,為用戶作多樣化推薦。推薦問題表示如下:
給定一個(gè)項(xiàng)目集I,一個(gè)用戶集U,一個(gè)類別集C,每項(xiàng)i∈I,i∈C,a∈U,b∈U,每個(gè)用戶有休息(R)、工作(W)、購物(SH)、旅途(T)4種行為,D代表一組〈r;w;s;t〉行為信息;每個(gè)行為伴隨聽民歌(F)、搖滾(RO)、輕音樂(LI)、流行音樂(PO)四種音樂類別,E代表一組〈f;ro;l;po〉音樂類別,O1,O2,…,Ot代表一組音樂類別概率序列。輸入:用戶當(dāng)前的行為D1、下一個(gè)行為D2及其概率P1,在各個(gè)行為D下聽音樂類別E的概率P2,對(duì)特定音樂的喜愛程度Pr。輸出:用戶間相似度S,最大推薦概率類別序列K及推薦的L首多樣化音樂。
將用戶歷史行為信息、用戶上下文信息以及音樂類別信息等融入推薦模型及改進(jìn)的相似度計(jì)算中,綜合最大概率類別序列,計(jì)算相似用戶偏好,為用戶推薦多樣化音樂。提出的模型如圖1所示。整個(gè)模型由4個(gè)階段組成:
1)進(jìn)行數(shù)據(jù)預(yù)處理,篩選出需要的信息;
2)從數(shù)據(jù)中提取用戶的行為特征參數(shù),并通過建立模型獲取最大音樂類別概率序列;
3)根據(jù)改進(jìn)的相似度計(jì)算方法獲取相似用戶;
4)根據(jù)相似用戶音樂偏好類別與最大音樂類別概率序列,為用戶作多樣化推薦。
音樂推薦中用戶偏好受多因素影響,諸如用戶的工作狀態(tài)、情感情緒等上下文信息對(duì)推薦性能具有重要影響,如何融合用戶歷史行為信息和上下文信息提高推薦性能是主要挑戰(zhàn)。
圖1 用戶上下文信息驅(qū)動(dòng)的推薦模型
用戶行為蘊(yùn)含用戶偏好,其可建模為一個(gè)序列模型,與用戶上下文信息進(jìn)行融合能有效提升推薦的性能。隱馬爾可夫模型可以融合用戶行為序列和用戶上下文狀態(tài)信息,且具有從不同矩陣獲取最大概率序列的能力,為改進(jìn)用戶上下文驅(qū)動(dòng)的音樂推薦提供了新途徑。而協(xié)同過濾是能夠提升推薦準(zhǔn)確率的重要方法[8]。因此,基于上述分析和音樂推薦需求,提出一種集成協(xié)同過濾與隱馬爾可夫模型的音樂推薦算法(CF-HMM)。
隱馬爾科夫模型從一個(gè)隱藏的馬爾科夫鏈隨機(jī)生成不可觀測的狀態(tài)隨機(jī)序列,主要從可觀察的參數(shù)中確定該過程的隱含參數(shù),再利用這些參數(shù)作進(jìn)一步分析。針對(duì)音樂推薦需求,將隱馬爾可夫模型建模為從用戶行為狀態(tài)序列生成一個(gè)不可觀測的音樂類別序列的過程,進(jìn)而對(duì)隱馬爾科夫模型進(jìn)行更新,從而獲取最大音樂類別序列概率。其中,初始概率分布為Π={πi},πi為用戶當(dāng)前的行為狀態(tài),如休息、工作、購物、旅途等。行為狀態(tài)轉(zhuǎn)移概率分布Α=[aij]N×N表示系統(tǒng)中用戶從一個(gè)行為狀態(tài)轉(zhuǎn)移到另一個(gè)行為狀態(tài)的概率。音樂觀測概率分布B=[bjk]M×N表示用戶在行為狀態(tài)下聽音樂類別的概率。
在面向音樂推薦的隱馬爾可夫模型訓(xùn)練方面,應(yīng)用概率計(jì)算,并引入Baum-Welch方法估計(jì)參數(shù),從而實(shí)現(xiàn)隱馬爾可夫模型的更新[9]。
1)概率計(jì)算。
前向概率初值為
α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ì)。
根據(jù)訓(xùn)練集音樂類別觀測序列O={O1,O2,…,OT},隱藏音樂項(xiàng)目狀態(tài)序列I={I1,I2,…,IT},用Baum-Welch算法估計(jì)模型參數(shù)λ=(A,B,π),使得在該模型下音樂類別觀測序列概率值P(O|λ)最大。前向變量αt(i)在t時(shí)刻行為狀態(tài)為i,t+1時(shí)刻狀態(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時(shí)刻的行為狀態(tài)為qi,從t+1時(shí)刻到T時(shí)刻的音樂類別觀察序列為Ot+1,Ot+2,…,OT的概率,則根據(jù)后向計(jì)算方法有
(5)
若用戶在時(shí)間點(diǎn)t聽Ot音樂類別時(shí)的狀態(tài)為Qi的概率為γt(i,j),則有
γt(i)=P(It=Qi|O,λ)=
(6)
(7)
(8)
(9)
根據(jù)用戶行為路徑與音樂偏好,獲取目標(biāo)用戶的相似用戶,將相似用戶所聽音樂類別及頻率根據(jù)最大觀測序列類別為用戶作多樣化推薦,將音樂類別融入推薦,能夠增加推薦的新穎性和多樣性。2個(gè)用戶的行為相似度為
(10)
其中:N1為用戶a、b均從狀態(tài)qm轉(zhuǎn)移到狀態(tài)qn的頻率之和;N2為用戶a、b均從狀態(tài)qm轉(zhuǎn)移到任意狀態(tài)的頻率之和。
(11)
其中:N3為用戶a、b在狀態(tài)qm下聽音樂類別相同的頻率;N4為狀態(tài)qm下聽音樂的頻率;Z為2個(gè)用戶關(guān)于項(xiàng)i的類別偏好。
用戶的行為轉(zhuǎn)移可以體現(xiàn)用戶的行為偏好,用戶聽音樂類別能夠體現(xiàn)用戶的音樂喜好,把用戶的行為偏好與音樂喜好相結(jié)合更能夠體現(xiàn)用戶的習(xí)慣偏好。用戶間習(xí)慣偏好相似度越高,則相似度權(quán)重越大,故定義相似度權(quán)重為
ω(i)=μK+(1-μ)Z,
(12)
(13)
(14)
由用戶的上下文信息與更新后隱馬爾科夫模型獲取下一時(shí)刻最大音樂類別概率序列,而改進(jìn)的相似度計(jì)算方法可以獲取相似用戶及用戶對(duì)未聽音樂的預(yù)測評(píng)分,綜合最大音樂類別概率序列與用戶對(duì)音樂的預(yù)測評(píng)分,為用戶生成對(duì)應(yīng)類別的推薦列表。
為了驗(yàn)證算法的可行性,通過微信發(fā)布問卷調(diào)查的方式獲取用戶的真實(shí)數(shù)據(jù)。問卷調(diào)查收回372名有效用戶的真實(shí)上下文數(shù)據(jù),包含用戶當(dāng)前的行為狀態(tài)、下一時(shí)刻的行為狀態(tài)的概率值,在某種狀態(tài)下最喜歡的項(xiàng)目及喜愛程度,包含83個(gè)項(xiàng)目,覆蓋4種類別。設(shè)計(jì)了6組實(shí)驗(yàn)對(duì)提出的方法進(jìn)行驗(yàn)證,實(shí)驗(yàn)平臺(tái)為CPU主頻3.5 GHz、內(nèi)存8 GiB,所有代碼用Python和Matlab實(shí)現(xiàn)。
為了驗(yàn)證本算法的有效性,采用問卷調(diào)查的方式獲取真實(shí)行為數(shù)據(jù),其中包含用戶的行為狀態(tài)、用戶在某種行為狀態(tài)下所參與的項(xiàng)目等內(nèi)容。P(u)為推薦的準(zhǔn)確率,C(u)為推薦的覆蓋率,D(u)為推薦的多樣性,
(15)
(16)
(17)
其中:n為能夠?yàn)橛脩敉扑]正確項(xiàng)目的數(shù)量;Nr為全部推薦的項(xiàng)目數(shù)量;nd為推薦不同的項(xiàng)目數(shù)量;N為項(xiàng)目的總數(shù);c為當(dāng)前推薦列表中的項(xiàng)目類別;P(c|u)為推薦給u用戶的所有項(xiàng)中屬于c類的比例。D(u)值越大,表明推薦越具有多樣性。
為了使推薦更加準(zhǔn)確和多樣化,用戶間相似度應(yīng)當(dāng)精確計(jì)算,在數(shù)據(jù)集上進(jìn)行多次實(shí)驗(yàn),從而獲取最優(yōu)的參數(shù)值μ,為獲取相似度做鋪墊。實(shí)驗(yàn)數(shù)據(jù)隨機(jī)抽樣分為4組,每組有93條記錄。如圖2所示,將整體數(shù)據(jù)分為4個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),分別為數(shù)據(jù)組1~4。實(shí)驗(yàn)表明,參數(shù)μ=0.5時(shí)準(zhǔn)確度最高,故根據(jù)實(shí)驗(yàn)數(shù)據(jù)取μ值為0.5,此時(shí)準(zhǔn)確率最高。
圖2 參數(shù)測試
圖3
對(duì)數(shù)據(jù)集采取隨機(jī)抽樣的方法將其分為訓(xùn)練集和測試集,并進(jìn)行交叉驗(yàn)證。采用協(xié)同過濾直接進(jìn)行推薦與提出的將協(xié)同過濾與隱馬爾可夫相融合的算法進(jìn)行比較,如圖3所示。從圖3可看出,本算法與協(xié)同過濾相比準(zhǔn)確率基本持平、覆蓋率和多樣性均有較大提升。本算法因融入隱馬爾可夫模型和類別信息,其覆蓋率和多樣性得到有效提高。
對(duì)協(xié)同過濾與提出的協(xié)同過濾融合隱馬爾科夫模型算法進(jìn)行實(shí)驗(yàn)對(duì)比,從圖3可看出,盡管簡單的CF推薦在準(zhǔn)確率上與CF-HMM基本持平,但覆蓋率和多樣性有明顯提高。將提出的策略融入隱含因素,由用戶行為和項(xiàng)目類別為用戶推薦多樣化項(xiàng)目,推薦的準(zhǔn)確率基本持平;由于用戶不同行為時(shí)類別偏好有所不同,根據(jù)類別偏好為用戶做推薦,提高了推薦的多樣性。上述實(shí)驗(yàn)結(jié)果表明,多樣化的推薦對(duì)推薦準(zhǔn)確率性能稍有影響,但用戶上下文信息和隱馬爾可夫模型能夠讓推薦獲取最大觀測概率序列,其在推薦中融入了隱含的用戶上下文信息,這是提高推薦的覆蓋率和多樣化的主要原因。
為了給用戶推薦更加多樣化的音樂,提出了一種集成協(xié)同過濾和隱馬爾可夫模型的音樂推薦算法。與現(xiàn)有算法相比,其嵌入了用戶上下文信息作為重要推薦因素,基于相似度計(jì)算進(jìn)行優(yōu)化、隱馬爾科夫建模用戶歷史行為和上下文信息獲取音樂類別最大概率序列,進(jìn)而綜合用戶偏好和音樂類別最大概率序列生成項(xiàng)目序列從而進(jìn)行推薦,提高了推薦的多樣性。在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)驗(yàn)證了該算法的有效性。本研究重點(diǎn)考慮了用戶上下文信息驅(qū)動(dòng)的多樣化推薦問題,后續(xù)可將音樂內(nèi)容本身的特征引入到用戶興趣的偏好匹配中,以進(jìn)一步提升推薦性能。