張利鴿
(渭南師范學(xué)院,陜西渭南 714000)
當(dāng)前,網(wǎng)絡(luò)技術(shù)高度發(fā)達(dá),我國(guó)網(wǎng)絡(luò)域名規(guī)模達(dá)到千萬(wàn)級(jí)以上,網(wǎng)絡(luò)技術(shù)在人們生活中無(wú)處不在[1]。推薦系統(tǒng)作為主要的網(wǎng)絡(luò)營(yíng)銷(xiāo)工具[2],可使用戶在面對(duì)海量網(wǎng)絡(luò)商品信息時(shí)獲取有價(jià)值的建議,并提升網(wǎng)絡(luò)商品的銷(xiāo)售量[3]。
音樂(lè)瀏覽是網(wǎng)絡(luò)技術(shù)的一種主要應(yīng)用形式[4],面對(duì)互聯(lián)網(wǎng)上海量的音樂(lè)媒體信息,如何快速地獲取用戶所需的音樂(lè)類(lèi)型,并將用戶感興趣的音樂(lè)推薦給用戶,成為當(dāng)前網(wǎng)絡(luò)媒體網(wǎng)站提升自身市場(chǎng)占有率的主要方式。以此為目的,設(shè)計(jì)基于用戶興趣偏好度的音樂(lè)智能推薦系統(tǒng)。在設(shè)計(jì)數(shù)據(jù)采集模塊、離線數(shù)據(jù)處理模塊和在線推薦模塊的總體架構(gòu)基礎(chǔ)上,考慮用戶音樂(lè)興趣偏好度和個(gè)性化的需求,引入?yún)f(xié)同過(guò)濾算法,利用近鄰數(shù)目確定音樂(lè)推薦偏好度,實(shí)現(xiàn)對(duì)用戶的精準(zhǔn)音樂(lè)推薦。
該文設(shè)計(jì)的音樂(lè)智能推薦系統(tǒng)主要由數(shù)據(jù)采集模塊、離線數(shù)據(jù)處理模塊和在線推薦模塊組成,整體結(jié)構(gòu)設(shè)計(jì)如圖1 所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
數(shù)據(jù)采集模塊的主要功能是采集用戶注冊(cè)信息[5]和目標(biāo)音樂(lè)的在線評(píng)分?jǐn)?shù)據(jù),并進(jìn)行在線調(diào)查。離線數(shù)據(jù)處理模塊以數(shù)據(jù)采集模塊采集的數(shù)據(jù)為基礎(chǔ),分析用戶興趣偏好度、統(tǒng)計(jì)用戶信息等。在線推薦模塊根據(jù)用戶興趣偏好度分析結(jié)果,針對(duì)不同用戶需求為用戶推薦能夠滿足其需求的音樂(lè)。
該文系統(tǒng)的數(shù)據(jù)采集模塊運(yùn)行流程如圖2所示。
圖2 數(shù)據(jù)采集模塊運(yùn)行流程設(shè)計(jì)
數(shù)據(jù)采集模塊可在系統(tǒng)處于初始啟動(dòng)狀態(tài)條件下或獨(dú)立線下運(yùn)行時(shí),得到系統(tǒng)運(yùn)行所需的數(shù)據(jù)資源。數(shù)據(jù)采集模塊的重點(diǎn)作用是高效獲取海量有效數(shù)據(jù),同時(shí)以合適的格式記錄數(shù)據(jù)信息,并生成相應(yīng)文件[6],便于后續(xù)的聚類(lèi)處理與數(shù)據(jù)庫(kù)存儲(chǔ)。數(shù)據(jù)采集模塊內(nèi),部分功能需以處理好的數(shù)據(jù)信息為基礎(chǔ),因此需要模塊內(nèi)不同功能交替協(xié)作才能完成全部數(shù)據(jù)的準(zhǔn)備。
離線數(shù)據(jù)處理模塊中利用基于POI(Point of Interest,興趣點(diǎn),即用戶搜索過(guò)的音樂(lè))的用戶興趣偏好度計(jì)算方法,基于POI關(guān)聯(lián)圖[7],提出基于時(shí)間的用戶興趣偏好度計(jì)算方法,以此確定用戶興趣偏好度。
1.3.1 構(gòu)建POI關(guān)聯(lián)圖
POI 的構(gòu)建可在離線狀態(tài)下進(jìn)行[8]。將全部用戶的音樂(lè)搜索序列內(nèi)的POI 作為關(guān)聯(lián)圖內(nèi)的節(jié)點(diǎn),表示用戶搜索的音樂(lè),通過(guò)分析用戶在音樂(lè)搜索序列內(nèi)的連續(xù)訪問(wèn)行為[9]生成關(guān)聯(lián)圖的邊。
1.3.2 音樂(lè)映射
用戶分享的音樂(lè)數(shù)據(jù)結(jié)構(gòu)由以下4 方面構(gòu)成:音樂(lè)ID[10]、用戶ID、時(shí)間、類(lèi)型。基于用戶分享的音樂(lè)數(shù)據(jù)結(jié)構(gòu)能夠獲取用戶搜索音樂(lè)的具體信息,確定用戶的POI 列表,用SM=(p1,p2,…,pn)表示。
1.3.3 確定POI流行度
利用式(1)可計(jì)算POI 流行度:
式(1)內(nèi),N(p) 和Nmax分別表示用戶搜索POI的次數(shù)和全部同類(lèi)型音樂(lè)中用戶搜索音樂(lè)的上限數(shù)值。
1.3.4 用戶興趣偏好度計(jì)算方法
基于用戶的歷史音樂(lè)搜索信息,提出基于時(shí)間的用戶興趣偏好度計(jì)算方法。用戶在搜索一個(gè)POI音樂(lè)時(shí),均會(huì)在該音樂(lè)POI 停留一定時(shí)間[11],由全部用戶的歷史音樂(lè)搜索記錄內(nèi)依照以下過(guò)程確定用戶搜索過(guò)的各音樂(lè)POI 的瀏覽時(shí)間。用u表示一個(gè)用戶,確定其POI 集合。依照時(shí)間順序定義用戶u的歷史音樂(lè)搜索記錄:其中px表示用戶搜索過(guò)的音樂(lè)表示用戶開(kāi)始瀏覽的POIpx時(shí)間,表示用戶結(jié)束POIpx瀏覽的時(shí)間?;谥g的差值能夠確定用戶瀏覽音樂(lè)POIpx的時(shí)間。
基于各音樂(lè)POI 的瀏覽時(shí)間能夠確定隨機(jī)用戶瀏覽任意音樂(lè)POI 所需的時(shí)間均值[12]。設(shè)定隨機(jī)用戶在POIpx的平均訪問(wèn)時(shí)間為Vˉ(p),其計(jì)算公式如下:
式(2)內(nèi),U和n分別表示全部用戶和全部用戶內(nèi)瀏覽音樂(lè)p的用戶數(shù),
但用戶在各音樂(lè)POI 的瀏覽時(shí)間均值無(wú)法準(zhǔn)確體現(xiàn)其對(duì)該類(lèi)音樂(lè)POI 的興趣偏好度,利用基于時(shí)間的用戶興趣偏好度計(jì)算方法,確定用戶u對(duì)音樂(lè)POI 類(lèi)別屬性c的偏好度Int(u,c):
式(3)中,Catpx表示音樂(lè)的POIpx類(lèi)別屬性,
通過(guò)式(3)能夠確定用戶u對(duì)于一個(gè)特定音樂(lè)POI 類(lèi)別屬性c的興趣度,相對(duì)于全部用戶對(duì)同一個(gè)音樂(lè)POI 的瀏覽時(shí)間均值,Int()u,c是以用戶在不同類(lèi)別屬性c的POI 瀏覽時(shí)間為基礎(chǔ)確定的,即用戶有較大概率花費(fèi)時(shí)間瀏覽其感興趣的音樂(lè)POI 類(lèi)型[13],由此確定此用戶對(duì)該音樂(lè)POI 類(lèi)型的興趣偏好度。
音樂(lè)智能推薦系統(tǒng)的關(guān)鍵在于推薦算法,為提升用戶的使用感,提高用戶的黏合度,需要對(duì)用戶的音樂(lè)興趣偏好進(jìn)行深度分析,以達(dá)到精準(zhǔn)推薦的效果。為此,該文引入?yún)f(xié)同過(guò)濾推薦算法,在分析多個(gè)用戶興趣相似度的基礎(chǔ)上,考慮用戶個(gè)性化問(wèn)題,利用近鄰數(shù)目確定音樂(lè)推薦偏好度,提高對(duì)用戶的音樂(lè)推薦精準(zhǔn)度。在線推薦模塊中,采用協(xié)同過(guò)濾算法,以志同道合觀點(diǎn)為基礎(chǔ)[14],該算法的核心觀點(diǎn)為:若興趣偏好度相同的用戶均搜索過(guò)某音樂(lè),則興趣偏好度一致的用戶有較大概率會(huì)對(duì)某音樂(lè)產(chǎn)生明顯偏好;若用戶對(duì)某音樂(lè)產(chǎn)生興趣偏好,則其同樣會(huì)更傾向于選擇同該音樂(lè)一致度較高的音樂(lè)。普遍使用的協(xié)同過(guò)濾推薦過(guò)程實(shí)現(xiàn)方式大致可分為3 種[15]:以用戶為基礎(chǔ)的推薦方式、以項(xiàng)目為基礎(chǔ)的推薦方式、以模型為基礎(chǔ)的推薦方式。
以用戶為基礎(chǔ)的推薦方式[16]:給定一個(gè)用戶,評(píng)分?jǐn)?shù)據(jù)與音樂(lè)項(xiàng)目。部分音樂(lè)項(xiàng)目并未產(chǎn)生評(píng)分,在此條件下可利用與此用戶相近的其他用戶評(píng)分結(jié)果進(jìn)行預(yù)測(cè)。通過(guò)式(4)可描述用戶a與用戶b的興趣偏好度的一致度函數(shù):
以項(xiàng)目為基礎(chǔ)的推薦方式與以用戶為基礎(chǔ)的推薦方式在本質(zhì)上具有較強(qiáng)相似性。但隨著時(shí)間的變化,用戶的興趣偏好具有波動(dòng)性,因此以用戶為基礎(chǔ)推薦方式的推薦結(jié)果無(wú)法完全滿足用戶需求。以項(xiàng)目為基礎(chǔ)的推薦方式可有效避免時(shí)間造成的波動(dòng)性問(wèn)題,可提升推薦結(jié)果的穩(wěn)定性。在獲取用戶之間興趣偏好度的一致度后,考慮不同用戶的思維方式與評(píng)分標(biāo)準(zhǔn)有所差異,因此以項(xiàng)目為基礎(chǔ)的推薦方式可通過(guò)余弦一致度進(jìn)行分析,音樂(lè)項(xiàng)目m和音樂(lè)項(xiàng)目n的余弦一致度可通過(guò)式(5)確定:
以用戶為基礎(chǔ)的推薦方式和以項(xiàng)目為基礎(chǔ)的推薦方式均包含選擇近鄰的過(guò)程,通常情況下,這兩種推薦方式均需通過(guò)大量的計(jì)算過(guò)程,但數(shù)據(jù)僅取其中少量部分,造成協(xié)同推薦算法產(chǎn)生數(shù)據(jù)稀疏問(wèn)題,降低推薦結(jié)果的精度。且考慮新用戶并未進(jìn)行音樂(lè)搜索與評(píng)分,無(wú)法使用選近鄰的過(guò)程,造成冷啟動(dòng)問(wèn)題。以模型為基礎(chǔ)的推薦方式依照數(shù)據(jù)庫(kù)內(nèi)對(duì)目標(biāo)音樂(lè)的評(píng)分結(jié)果,通過(guò)離線計(jì)算現(xiàn)有用戶對(duì)目標(biāo)音樂(lè)的評(píng)分,利用模型評(píng)估過(guò)程得到全局推薦結(jié)果。但采用以模型為基礎(chǔ)的推薦方式在評(píng)估訓(xùn)練過(guò)程中會(huì)消耗大量資源,且頻繁更新模型。
基于上述分析可知,系統(tǒng)在線推薦模塊采用協(xié)同過(guò)濾算法,以用戶興趣偏好度為基礎(chǔ),針對(duì)不同的用戶采用不同推薦方式生成推薦列表,以此提升系統(tǒng)推薦性能。
為驗(yàn)證該文設(shè)計(jì)的基于用戶興趣偏好度的音樂(lè)智能推薦系統(tǒng)在實(shí)際音樂(lè)推薦應(yīng)用中的性能,選取某互聯(lián)網(wǎng)知名音樂(lè)APP 為應(yīng)用對(duì)象,采用該文系統(tǒng)對(duì)用戶進(jìn)行音樂(lè)推薦測(cè)試。從應(yīng)用對(duì)象中隨機(jī)選取1 000 名用戶信息,在這些用戶信息中共包含有效評(píng)價(jià)數(shù)據(jù)448 539 條與不同類(lèi)型歌曲記錄183 580 條。
系統(tǒng)功能的實(shí)現(xiàn)是系統(tǒng)有效運(yùn)行的基礎(chǔ),因此采用黑盒測(cè)試法測(cè)試該文系統(tǒng)的功能,主要測(cè)試用例為:①用戶登錄成功:輸入正確的用戶名與密碼,期望輸出結(jié)果為成功登錄;②用戶登錄不成功:輸入錯(cuò)誤的用戶名與密碼,期望輸出結(jié)果為用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入;③生成推薦結(jié)果:輸入為針對(duì)不同用戶,在不同條件下點(diǎn)擊推薦列表,期望輸出結(jié)果為正確預(yù)測(cè)用戶興趣偏好度,推薦相應(yīng)音樂(lè)。④創(chuàng)建歌單收藏音樂(lè):輸入為點(diǎn)擊推薦歌曲,點(diǎn)擊收藏至相應(yīng)歌單下,期望輸出結(jié)果為收藏成功,推薦列表內(nèi)不再顯示;⑤未創(chuàng)建歌單下收藏音樂(lè):輸入為在未創(chuàng)建歌單條件下單擊收藏推薦歌曲,期望輸出為提示創(chuàng)建歌單。各測(cè)試用例的黑盒測(cè)試結(jié)果如圖3所示。
圖3 黑盒測(cè)試結(jié)果
分析圖3得到,該文系統(tǒng)功能測(cè)試中,除用例3的實(shí)際輸出結(jié)果與期望輸出結(jié)果一致度為62%外,剩余4 個(gè)用例的實(shí)際輸出結(jié)果均與期望輸出結(jié)果完全一致,由此說(shuō)明該文系統(tǒng)功能滿足實(shí)際應(yīng)用需求。
該文系統(tǒng)在線推薦模塊包含一個(gè)重要過(guò)程,即選擇近鄰過(guò)程,所選近鄰數(shù)量對(duì)于系統(tǒng)推薦結(jié)果產(chǎn)生直接影響。因此在測(cè)試該文系統(tǒng)音樂(lè)推薦性能時(shí),選取準(zhǔn)確率Zp、召回率Hp、覆蓋率Fp和流行度Lp為評(píng)價(jià)指標(biāo),計(jì)算過(guò)程如下:
在不同近鄰數(shù)量條件下,該文系統(tǒng)推薦性能評(píng)價(jià)的結(jié)果如圖4 所示。
圖4 該文系統(tǒng)性能評(píng)價(jià)結(jié)果
分析圖4 得到,近鄰數(shù)量的提升對(duì)于該文系統(tǒng)推薦結(jié)果產(chǎn)生直接影響。
準(zhǔn)確率與召回率:該文系統(tǒng)的準(zhǔn)確率與召回率同近鄰數(shù)量之間呈現(xiàn)正比例相關(guān)性,即隨著該文系統(tǒng)在線推薦模塊中近鄰數(shù)量的提升,系統(tǒng)推薦結(jié)果的準(zhǔn)確率與召回率均整體表現(xiàn)為上升趨勢(shì)。但隨著近鄰數(shù)量的提升,該文系統(tǒng)推薦結(jié)果的準(zhǔn)確率與召回率提升幅度并不顯著,由此說(shuō)明近鄰數(shù)量與該文系統(tǒng)推薦結(jié)果的準(zhǔn)確率與召回率之間相關(guān)性并不高。
覆蓋率:該文系統(tǒng)的覆蓋率指標(biāo)與近鄰數(shù)量為反相關(guān)性。隨著近鄰數(shù)量提升,該文系統(tǒng)覆蓋率降低,且覆蓋率下降幅度較大,由此說(shuō)明近鄰數(shù)量與該文系統(tǒng)推薦結(jié)果的覆蓋率之間相關(guān)性較高。
流行度:該文系統(tǒng)的流行度指標(biāo)與近鄰數(shù)量為正相關(guān)性。隨著近鄰數(shù)量提升,該文系統(tǒng)流行度評(píng)價(jià)結(jié)果提高。
但考慮參考用戶數(shù)量的提升對(duì)該文系統(tǒng)推薦效率也產(chǎn)生直接影響,會(huì)顯著降低該文系統(tǒng)推薦效率,因此綜合對(duì)比之下,設(shè)定近鄰數(shù)量高于30較為合適。
獲取應(yīng)用對(duì)象過(guò)去三年中不同月份的市場(chǎng)占有率,以其均值為標(biāo)準(zhǔn),對(duì)比采用文中系統(tǒng)后相同月份的市場(chǎng)占有率,結(jié)果如圖5所示。由圖5得到,未采用文中系統(tǒng)之前,應(yīng)用對(duì)象每年的市場(chǎng)占有率波動(dòng)范圍為55.7%~66.8%,平均市場(chǎng)占有率約為61.25%。采用該文系統(tǒng)之后,應(yīng)用對(duì)象每年的市場(chǎng)占有率均值提升至92.4%,提升幅度達(dá)到50.86%。由此說(shuō)明應(yīng)用對(duì)象利用該文系統(tǒng)為用戶推薦感興趣的音樂(lè),能夠顯著提升應(yīng)用對(duì)象的市場(chǎng)占有率,即該文系統(tǒng)推薦結(jié)果可令用戶滿意,具有較好的實(shí)際應(yīng)用效果。
圖5 市場(chǎng)占有率分析
該文設(shè)計(jì)基于用戶興趣偏好度的音樂(lè)智能推薦系統(tǒng),基于用戶數(shù)據(jù)與音樂(lè)數(shù)據(jù),確定用戶對(duì)目標(biāo)音樂(lè)類(lèi)型的興趣偏好度,基于興趣偏好度采用協(xié)同過(guò)濾推薦算法將用戶感興趣的音樂(lè)推薦給用戶。應(yīng)用測(cè)試結(jié)果說(shuō)明該文系統(tǒng)能夠準(zhǔn)確向用戶推薦感興趣的音樂(lè),提升應(yīng)用對(duì)象的市場(chǎng)占有率。