白誠瑞
河北建筑工程學院 河北 張家口 065000
本文提出的推薦算法的基本思路是:首先利用隱語義模型矩陣分解的方法構建出用戶偏好模型;接著利用卷積神經網絡對音樂音頻特征進行提取并融合音樂的多種信息(歌手ID、發表年份等),將音樂隱性特征向量與用戶隱性特征向量做內積運算,獲取用戶偏好得分,根據偏好得分進行推薦列表的TOPN排序,實現對用戶的個性化推薦。
推薦系統中決定推薦性能的好壞最重要的就是推薦算法,目前,常用的推薦算法主要分為3個類型。
以內容為基礎的推薦算法在應用時,主要以用戶為基礎針對物品完成標記,分析所標記的物品和用戶關系,參考關聯信息構建推薦模型,進而完成內容和物品的推薦。目前這種算法的應用比較廣泛,尤其在工業領域的應用效果比較好。
在這種算法應用的過程中,主要是基于矩陣分解,矩陣的構成主要為推薦系統形成的用戶行為信息,這種方式在應用時,參考用戶之前的喜好狀況,從而實現推薦。基于協同過濾的推薦算法大致分為2種,一種是基于item的推薦算法,一種是基于user的推薦算法[1]。
在實際推薦中可能存在復雜的應用場景,單一的推薦算法無法滿足實際應用需求,此時混合推薦應運而生,可以有效解決單一算法存在的問題與不足,常見的混合推薦算法包括:加權式、切換式、混雜式。
深度學習在近些年逐漸成為人們關注的熱點,其中卷積神經網絡是一種高效的識別方法,其在目前語音識別、圖像識別等領域的應用比較廣泛,利用這種方式解決大規模的機器學習問題,和傳統機器學習效果相比,這種算法無論是推薦效率還是推薦質量都更好[2]。本文以卷積神經網絡為基礎,并且將其和多種音樂標簽特征進行結合,提出一種推薦效果更佳的推薦算法,與傳統的推薦算法相比,這種算法參考了用戶的歷史數據,并且將其和音樂音頻對應的聲學特征相互結合,構建對應的卷積神經網絡回歸模型,并且利用 Embedding 層對音樂標簽信息進行挖掘,進而完成個性化推薦。本文進行的研究可以作為音樂推薦算法的補充,能有效解決傳統推薦系統中出現的推薦準確率較低、特征分析不夠深入等問題,進而更好地滿足個性化推薦需求。本文構建的推薦系統整體設計框圖如圖1:
圖1 系統總體設計圖
取得的數據集內含有用戶收聽音樂的相關記錄,可將其視為隱式反饋,同一個用戶對某首歌曲反復播放次數,則可看作該用戶對該歌曲的喜愛程度,播放行為可視為隱性評分[3]。經過特定的數據處理后,得到以相對播放次數為依據得出音樂所對應的評分,且稀疏度處于特定水平的一類用戶——音樂矩陣。
對通過數字信號對音樂音頻具備的特征進行提取,可有效解決對原始數據進行直接處理時需開展的龐大且復雜計算的問題,且得到的特征更為鮮明,可更便捷地對其進行處理及運用。對音頻特征進行分析時能夠運用的方法較為多樣,常見的有聲譜圖、梅爾頻譜等[4]。所以本文對數據集中音頻資源進行了梅爾頻譜圖的提取,并作為后續訓練中的輸入內容。同時,還可以使用Embedding層融合歌手和音樂的其他信息進行音樂信息挖掘。
2.2.1 Embedding 部分。本文通過Embedding層對各類標識信息進行融合,該層可以顯著增強模型的可擴展性,對獲得的信息進行嵌入訓練,提高特征系統的完整性。利用one-hot編碼實現對特征值的表示。如果模型對應的特征域為,通過該編碼對特征包含的第j個特征值所對應one-hot向量進行表示。
嵌入層內,每一特征均有與之對應的嵌入矩陣,將Embedding向量通過多層感知機學習后拼接在一起,得到下一層的輸入。
2.2.2 音頻數據處理。一般來說,我們首先處理連續的音頻信號,對其預加重、分幀以及加窗;然后通過FFT處理所有短時分析窗,這樣就得到了相應的頻譜;接著將頻譜基于 Mel標度濾波器組可以得到Mel頻譜;接著對上述Mel頻譜取對數,就可以完成整個提取過程[5]。
在本文的研究之中,我們引入了python 工具包之中的 Librosa 進行了處理與分析,主要對音樂音頻進行了詳細的分析。基于 Librosa 工具包中的處理函數specshow(),其中橫軸代表時間,縱軸代表頻率,最終得到一個256×256 梅爾頻譜圖。
本文使用用戶音樂偏好得分作為用戶對音樂的喜愛程度表示,首先預測新音樂M的潛在因子向量,然后將與用戶潛在因子向量的內積作為用戶對音樂M的偏好得分。計算過程如下式所示:
3.1.1 來源。本文運用的音樂元數據全部都是通過百萬歌曲數據集(MSD)取得的,與用戶收聽情況相關的各項數據,全部都是通過MSD所包含的子集Echo Nest Taste Profile Subset取得的。
3.1.2 數據處理與數據形式。本文在獲取對應的數據以后,首先對數據展開稀疏化處理。考慮到整體的時間成本,本實驗在取數據時僅對某一聲道中提取任意3s的音頻且表現為wav格式,取得音頻數據后對其進行分割處理以保證不同數據的格式具有較高的一致性[7]。
3.2.1 系統評價指標。本文基于評分精準性與列表準確性兩個維度展開評價。
3.2.1.1 預測評分準確性。常見的用于度量預測評分準確性的標準有:平均絕對誤差MAE、歸一化平均絕對誤差NMAE、平均平方誤差MSE和均方根誤差RMSE等。在本文的研究過程中,我們引入上述4個指標展開評價。
3.2.1.2 推薦列表準確性。本文研究的推薦算法能夠做到多位用戶形成TopN推薦,也就是說對所有的用戶,都可以實現音樂排名,進而確定排名靠前的N首音樂形成一個列表,分別進行推薦[8]。為了對該列表的精確度進行檢驗,在本文的研究中我們分別通過準確率、召回率、F1值評價推薦質量,檢驗實驗的精確性。
3.2.2 結果分析。利用訓練集數據對CNN網絡模型進行訓練,訓練結果發現,當訓練的迭代輪次不斷增加時,模型的損失誤差在開始時快速下降,隨著迭代次數增加,減少的趨勢逐漸變緩,當epoch接近10時,誤差開始趨于平穩。為了驗證模型的有效性,接下來從不同角度對實驗進行分析評價。
3.2.2.1 潛在因子維數 k 以及迭代次數的選擇。在整體實驗期間應用均方根誤差 RMSE,基于此判定預測評分的準確性。對于不同的特征維度k 與訓練輪次 epoch而言,最終獲取的模型預測評分 RMSE如圖2所示。
圖2 不同k及epoch下預測評分的 RMSE
由此可見,潛在因子k為15,訓練輪次epoch 為 20 時,實驗可以取得較好的評分預測效果。
3.2.2.2 不同推薦模型的推薦結果對比分析。本文使用 MSE、RMSE與 MSLE算法,針對模型訓練效果展開全面評價。并且使用了 Frunk-SVD、User-CF與CB等算法模型進行對比分析,最終獲取不同推薦列表長度對應的準確率、召回率、F1值。
各方法及本文方法均使用Keras實現,優化器使用 Adam,測試集實驗結果如表1所示:
表1 誤差對比表
這種方式主要包含了音頻信息和其他的標識信息,通過對4個誤差指標的分析,其指標全部低于其他模型,表明潛在因子向量在預測的過程中實際效果優于其他模型。在推薦任務的評價上,本文使用召回率、F1值和準確率作為評價標準。利用TopN推薦策略形成需要的推薦列表,在N取值不同時,其最終結果也存在差異,最終獲取的結果如圖3到圖5所示。
圖3 準確率結果
圖4 召回率結果
圖5 F1值結果
從圖中能夠看出,當推薦列表長度相同的時候,F1值、準確率與召回率均優于其他模型,這是因為傳統的推薦算法模型僅使用了較為稀疏的評分矩陣,并且沒有充分利用音樂的其他的相關屬性[9]。因為深度卷積神經網絡可以較好地學習數據的特征,本文的推薦算法在其中加入了深度學習相關內容,同時結合了音樂標簽的相關屬性,從而使得推薦效果得到較好的提升。
本文主要進行的是多特征融合的音樂推薦算法的研究,研究的主要內容是利用深度神經網絡模型融合多種音樂標識信息,和傳統的推薦算法模型進行結合,利用深度神經網絡的優勢,充分學習音樂音頻特征并融合多種音樂標簽信息,提升了推薦的效率與效果。為了驗證本文提出的推薦算法的可行性,從推薦準確率、召回率、F1值等方面對實驗結果進行全方面的評判分析。最后實驗結果表明,本文的推薦算法使得最終的推薦結果相對于Frunk-SVD、User-CF 以及 CB 等傳統的推薦算法模型有較好的優化。