吳海金, 陳 俊
(福州大學(xué)物理與信息工程學(xué)院,福建 福州 350108)
音樂是人們生活中重要的娛樂元素,隨著信息技術(shù)的發(fā)展,音樂資源呈海量增長態(tài)勢(shì)[1]. 個(gè)性化推薦作為信息過載問題的有效解決手段,在音樂領(lǐng)域得到了較為廣泛的關(guān)注[2],并取得了廣泛應(yīng)用. 目前幾乎所有的音樂平臺(tái)都提供個(gè)性化音樂推薦服務(wù),例如Spotify、 Pandara、 豆瓣音樂電臺(tái)、 網(wǎng)易云音樂等,不少平臺(tái)因推薦的音樂較為準(zhǔn)確而取得了較好的口碑. 當(dāng)前大多數(shù)音樂推薦系統(tǒng)基于用戶的歷史行為,發(fā)掘用戶的長期喜好[3]. 而在音樂推薦領(lǐng)域,根據(jù)一些學(xué)者的研究,用戶對(duì)音樂的短期偏好容易受用戶所處的情境影響[4],情境包含生理狀態(tài)、 行為、 外界環(huán)境等因素[5],如果只考慮用戶和被推薦的項(xiàng)目,會(huì)在一定程度上影響推薦系統(tǒng)的性能,個(gè)性化音樂推薦系統(tǒng)中很重要的一個(gè)環(huán)節(jié)是考慮用戶當(dāng)時(shí)的情境信息,并合理利用用戶的情境進(jìn)行個(gè)性化推薦[6].
針對(duì)如何融合豐富的情境信息,得到更能滿足用戶的個(gè)性化需求的推薦列表,以提高個(gè)性化推薦系統(tǒng)的性能和用戶體驗(yàn),本研究在傳統(tǒng)協(xié)同過濾算法的基礎(chǔ)上,融合了分類模型,實(shí)現(xiàn)基于情境感知的個(gè)性化音樂推薦算法,通過融入用戶情境信息的相似度計(jì)算方法,使得傳統(tǒng)的協(xié)同過濾算法具備情境感知的能力,并通過融合分類模型提高了推薦系統(tǒng)的性能,有效降低推薦過程的復(fù)雜度和改善冷啟動(dòng)問題,實(shí)現(xiàn)為用戶提供符合當(dāng)前情境的個(gè)性化音樂推薦.
協(xié)同過濾算法是在推薦系統(tǒng)領(lǐng)域中研究最為深入、 最為業(yè)界認(rèn)可、 應(yīng)用最為廣泛的推薦手段[7]. 但傳統(tǒng)的協(xié)同過濾推薦算法基本沒有考慮情境信息[8],將不同用戶不同情境下的興趣偏好同等看待,忽略了用戶興趣隨情境發(fā)生的變化,因而對(duì)推薦系統(tǒng)的性能產(chǎn)生影響[9]. 本研究將情境信息融入到協(xié)同過濾算法中. 協(xié)同過濾算法的核心思想是找尋近鄰用戶或近鄰項(xiàng)目對(duì)象,根據(jù)近鄰的程度,將用戶或項(xiàng)目進(jìn)行排序,從而得到top-N列表. 所以,基于協(xié)同過濾的推薦算法的核心步驟為用戶或項(xiàng)目的相似度計(jì)算. 常見的相似度計(jì)算方法包括歐氏距離、 曼哈頓距離、 明氏距離、 余弦相似度、 皮爾遜相關(guān)度等[10]. 這些相似度計(jì)算方式各有側(cè)重點(diǎn),在實(shí)際應(yīng)用中,往往是根據(jù)實(shí)際的場(chǎng)合進(jìn)行選擇.
由于情境信息種類繁多,上述相似度計(jì)算的方法實(shí)現(xiàn)較為復(fù)雜. 而融入情境信息的用戶相似度計(jì)算方法更關(guān)心的是用戶各類情境信息的區(qū)間是否一致,如是否都處于下雨天、 開心、 操場(chǎng)、 跑步等情境,即比較內(nèi)容的相似度. 而海明距離常用于比較內(nèi)容的相似程度,故采用海明距離計(jì)算情境信息的相似度,在一定程度上簡(jiǎn)化了相似度的計(jì)算,具體的處理方法為: 對(duì)于給定用戶u的特征向量用U={u1,u2, …,un}表示,給定用戶u的特征個(gè)數(shù)為u.length; 用戶v的特征向量用V={v1,v2, …,vn}表示,sim表示用戶之間的相似度,則可以通過公式(1)來計(jì)算用戶之間的相似度.
(1)
融入情境信息的協(xié)同過濾算法的核心代碼為相似度計(jì)算,將包含用戶情境信息的訓(xùn)練集定義為T={(u1,u2, …,un), (v1,v2, …,vn), …, (x1,x2, …,xn)},則相似度算法的實(shí)現(xiàn)過程描述如下
算法1 融入情境信息的相似度計(jì)算偽代碼輸入: 訓(xùn)練集T輸出: 用戶相似度simStep1: Initialize sumStep2: For i from 0 to u.length If u[i]==v[i] sum++ EndStep3: sim= sum/u.lengthStep4: Return sim
圖1 協(xié)同過濾模型示意圖Fig.1 Collaborative filtering model
最后,給定一個(gè)相似度的閾值,當(dāng)用戶之間相似度大于這個(gè)閾值時(shí),則判斷兩個(gè)用戶為相似度高的近鄰用戶,將他們喜歡的音樂進(jìn)行相互推薦.
綜上,算法的實(shí)現(xiàn)過程主要包括融入情境信息的相似度計(jì)算以及近鄰用戶選取. 相似度計(jì)算主要是通過海明距離計(jì)算出包含用戶情境的特征向量的相似度,然后根據(jù)協(xié)同過濾的常用處理手段獲取近鄰用戶. 最后根據(jù)用戶之間的距離及用戶對(duì)音樂的喜好信息生成推薦列表,將與被推薦用戶最相似的用戶所喜愛的音樂呈現(xiàn)給被推薦用戶. 協(xié)同過濾模型的示意圖如圖1所示,對(duì)于待推薦用戶u,通過上文的融入情境信息相似度計(jì)算的協(xié)同過濾算法解算得到用戶u的近鄰用戶集為{v,w,x,y},并根據(jù)近鄰用戶集與用戶u的距離關(guān)系得到top-N推薦列表.
圖2 分類模型示意圖Fig.2 Classification model
機(jī)器學(xué)習(xí)發(fā)展至今,誕生了許多可用于分類的算法. 分類算法各有特色,在前人的研究和實(shí)踐的基礎(chǔ)上,得出的結(jié)論是支持向量機(jī)(support vector machine, SVM)、 隨機(jī)森林以及XGBoost[11]的分類效果較為理想. 本研究的分類模型將以SVM、 隨機(jī)森林和XGBoost 3種算法分別構(gòu)建單模型,分類模型示意圖如圖2所示.
采用機(jī)器學(xué)習(xí)算法的分類模型的訓(xùn)練過程,可以歸納為根據(jù)提供的訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),從而得到特征與標(biāo)簽之間的關(guān)系模型,由該模型可以根據(jù)相關(guān)特征為新數(shù)據(jù)貼上標(biāo)簽[12]. 將用戶的心率、 情緒、 狀態(tài)、 時(shí)間、 天氣和位置等情境信息作為訓(xùn)練數(shù)據(jù)的特征集, 以及將所聽音樂的風(fēng)格、 年代、 節(jié)奏、 情感等類別信息作為訓(xùn)練數(shù)據(jù)的標(biāo)簽,通過3種分類算法分別進(jìn)行機(jī)器學(xué)習(xí)模型的訓(xùn)練,構(gòu)建聽眾在特定情境下所偏好音樂類型的推薦模型,再結(jié)合Top-N算法生成用戶在特定情境下的音樂推薦列表.
當(dāng)推薦系統(tǒng)中項(xiàng)目數(shù)量龐大,而有的類別卻在較小的數(shù)量范圍內(nèi)時(shí),采用協(xié)同過濾算法,會(huì)出現(xiàn)用戶-項(xiàng)目矩陣較為稀疏,在很大程度上影響推薦系統(tǒng)的性能[13]. 此外,每個(gè)人都有自己固有的類型偏好,而基于協(xié)同過濾的推薦算法得到的推薦列表包含的是近鄰用戶的全部類型偏好,可能包含了目標(biāo)用戶并不感興趣的類型,因而對(duì)推薦系統(tǒng)的性能造成影響. 采用融合分類與協(xié)同過濾的推薦方法可以在一定程度上解決上述問題,這種推薦方式實(shí)際是由粗到精篩選過濾過程,根據(jù)用戶情境信息分類獲得用戶的音樂類型偏好是粗粒度的過濾,在確定音樂類型的基礎(chǔ)上進(jìn)行協(xié)同過濾是細(xì)粒度的過濾,這種方式實(shí)現(xiàn)難度較低,而推薦的精度將會(huì)得到提升.
圖3 模型融合示意圖Fig.3 Process of hybrid model
假設(shè)通過分類模型得出用戶u會(huì)偏好類型為9的音樂,而通過協(xié)同過濾模型得出的用戶u的相似用戶v喜歡聽的兩首音樂b1,b2都不是類型9,則忽略用戶v所喜歡的歌曲,再從協(xié)同過濾模型中獲得下一首應(yīng)該推薦的音樂,直到滿足推薦的音樂類型為9為止,實(shí)現(xiàn)分類模型和協(xié)同過濾模型進(jìn)行模型融合,得出推薦結(jié)果.
模型融合的示意圖如圖3所示,其實(shí)現(xiàn)的主要步驟如算法2所示.
算法2 融合算法的構(gòu)建輸入: 數(shù)據(jù)集Data, 目標(biāo)用戶u輸出: 目標(biāo)用戶u的推薦列表Step1: 根據(jù)前文介紹的數(shù)據(jù)預(yù)處理的實(shí)現(xiàn)方式將數(shù)據(jù)進(jìn)行清洗得到規(guī)整數(shù)據(jù)格式的CSV子數(shù)據(jù)集, 然后進(jìn)行通過訓(xùn)練好的分類模型得到用戶音樂類型偏好Step2: 根據(jù)構(gòu)建融入情境相似度計(jì)算的協(xié)同過濾推薦模型生成預(yù)推薦列表Step3: 根據(jù)兩種算法得到的推薦候選集, 進(jìn)行融合規(guī)則過濾操作, 對(duì)預(yù)推薦列表進(jìn)行篩選, 得到最終的個(gè)性化音樂推薦列表
此外,對(duì)于個(gè)性化推薦系統(tǒng)因新用戶沒有歷史數(shù)據(jù)而產(chǎn)生的“冷啟動(dòng)”問題[14],情境感知音樂推薦算法可以較好地解決該問題,新用戶雖然沒有歷史數(shù)據(jù),但可以根據(jù)該用戶的當(dāng)前情境信息,找到與該情境信息相似的已有用戶,根據(jù)已有用戶在該情境下的音樂偏好為新用戶推薦音樂.
為了驗(yàn)證本研究所提出的情境感知推薦算法的有效性,選取60名志愿者日常采集的音樂情境數(shù)據(jù), 評(píng)估算法的性能. 志愿者佩戴特定的傳感器,如智能手環(huán)、 智能手表等,采集用戶心率、 運(yùn)動(dòng)狀態(tài)等數(shù)據(jù),并記錄不同情況下的用戶情境數(shù)據(jù). 為了最大限度發(fā)揮特征價(jià)值的多樣性,在不同的場(chǎng)景下收集數(shù)據(jù),盡可能保證覆蓋所有情境信息的類別. 收集的原始數(shù)據(jù)包含大約32 400條記錄. 經(jīng)過預(yù)處理后,完整且干凈的數(shù)據(jù)集包含29 880條記錄. 采用10次交叉驗(yàn)證的方式對(duì)推薦算法的性能進(jìn)行驗(yàn)證.
個(gè)性化推薦算法的評(píng)價(jià)指標(biāo)不能完全等同于分類算法的指標(biāo),因?yàn)榉诸愃惴ㄍ耆梢灾挥脺?zhǔn)確率等類似指標(biāo)進(jìn)行評(píng)價(jià). 推薦系統(tǒng)的評(píng)價(jià)指標(biāo)較為多元化,有準(zhǔn)確率、 召回率、 平均絕對(duì)差異、 多樣性和驚喜度等[15]. 過高的準(zhǔn)確度會(huì)使得推薦列表的項(xiàng)目數(shù)量減少,提升推薦系統(tǒng)的多樣性和驚喜度必然會(huì)使得準(zhǔn)確率有所下降[16],而用戶滿意度可以綜合評(píng)價(jià)推薦系統(tǒng)的性能. 因此,采用推薦準(zhǔn)確率和用戶滿意度兩個(gè)指標(biāo)綜合評(píng)估算法的性能,對(duì)研究進(jìn)行驗(yàn)證.
準(zhǔn)確率指的是推薦的列表中被用戶標(biāo)注為喜歡的項(xiàng)目數(shù)占列表總項(xiàng)目數(shù)的比例. 設(shè)Precision代表準(zhǔn)確率,T(u)表示用戶標(biāo)注為喜歡的相關(guān)列表,R(u)為給定推薦列表,則準(zhǔn)確率公式為
(2)
為了得到系統(tǒng)體驗(yàn)測(cè)評(píng)結(jié)果,另外邀請(qǐng)50名志愿者分別體驗(yàn)基于不同推薦算法的推薦系統(tǒng),在一段時(shí)間后給出滿意度評(píng)價(jià),根據(jù)用戶對(duì)兩種系統(tǒng)的推薦列表進(jìn)行打分,取打分的平均值為對(duì)該推薦系統(tǒng)的滿意度. 此外,根據(jù)用戶具有針對(duì)性的反饋,可以更好地改進(jìn)推薦系統(tǒng).
在協(xié)同過濾模型中,首先要知道用戶情境相似度閾值大小對(duì)準(zhǔn)確率的影響以及其具體的表現(xiàn)分布. 在協(xié)同過濾模型準(zhǔn)確率驗(yàn)證的實(shí)驗(yàn)中,根據(jù)閾值的不同設(shè)計(jì)了實(shí)驗(yàn),得到模型的準(zhǔn)確率如圖4所示. 從圖4中可以看出,模型的準(zhǔn)確率和情境信息的相似度閾值存在一定關(guān)系. 根據(jù)實(shí)驗(yàn)結(jié)果,本研究選取用戶情境信息的相似度閾值為0.75.
在驗(yàn)證融合模型的準(zhǔn)確率之前,對(duì)于分類模型的準(zhǔn)確率進(jìn)行了實(shí)驗(yàn)驗(yàn)證,分類模型預(yù)測(cè)的平均準(zhǔn)確率如圖5所示. 從實(shí)驗(yàn)結(jié)果可以看出, 隨機(jī)森林和XgBoost算法的模型準(zhǔn)確率較高.
圖4 協(xié)同過濾模型準(zhǔn)確率Fig.4 Precision of collaborative filtering model
圖5 分類模型準(zhǔn)確率Fig.5 Precision of classification model
融合模型的準(zhǔn)確率如圖6所示. 用戶滿意度對(duì)比如圖7所示. 由圖6、 7可以看出,通過模型融合,算法的準(zhǔn)確率明顯提升,當(dāng)融合模型中的分類模型采用XgBoost算法且推薦項(xiàng)目數(shù)為10時(shí),模型的正確率最高,明顯高于基于協(xié)同過濾模型的準(zhǔn)確率,此外,融合模型的用戶滿意度也最高,由此可以得出,融合模型的策略是正確有效的.
圖6 融合模型準(zhǔn)確率Fig.6 Precision of hybrid model
圖7 協(xié)同過濾模型和融合模型的用戶滿意度對(duì)比Fig.7 User satisfaction comparison user satisfaction between collaborative filtering model and hybrid model
情境信息對(duì)個(gè)性化音樂推薦系統(tǒng)的性能有著重大的影響,針對(duì)如何融合豐富的用戶情境信息,提出一種融合分類與協(xié)同過濾的情境感知音樂推薦算法,為特定情境下的用戶提供個(gè)性化音樂推薦. 實(shí)驗(yàn)結(jié)果表明,融合分類與協(xié)同過濾的推薦算法比融入情境信息的協(xié)同過濾推薦算法更能提供準(zhǔn)確率高和滿意度高的推薦結(jié)果. 由于實(shí)驗(yàn)數(shù)據(jù)與涉及的情境信息有限,因此研究還有待進(jìn)一步拓展與深入. 在分類模型中只是采用音樂的類型標(biāo)簽,并沒有深入去分析音樂的音頻特征,這在一定程度上會(huì)影響推薦算法的性能. 未來將嘗試融合基于內(nèi)容的推薦算法,分析音樂的音頻特征,進(jìn)一步提高分類模型的準(zhǔn)確率; 考慮在推薦模型中融入更多影響因子,如用戶的影響力、 可信度特征等,并采用機(jī)器學(xué)習(xí)算法分析各類因素的重要性,在融入情境信息等特征時(shí)考慮相關(guān)特征的權(quán)重進(jìn)行推薦.