融合非負矩陣分解和圖全變分的歌曲推薦算法

摘要: Kirell Benzi, Vassilis Kalofolias, Xavier Bresson and Pierre Vandergheynst Signal Processing Laboratory 2 (LTS2), Swiss Federal Institute of Technology (EPFL) 代碼參見https://github.git

 

Kirell Benzi,github

Vassilis Kalofolias,算法

Xavier Bresson and Pierre Vandergheynst數據庫

Signal Processing Laboratory 2 (LTS2),模塊化

Swiss Federal Institute of Technology (EPFL)函數

代碼參見:https://github.com/hxsylzpf/recog學習

摘  要測試

 

本文正式地形式化一個全新的的歌曲推薦算法,其將歌曲推薦的問題轉化爲矩陣補全的問題來考慮,並經過基於非負矩陣分解(non-negative matrix factorization, NMF)的協同過濾算法以及圖上的結合圖的全變分(total variation, TV)的基於內容的過濾方法相結合來解決這個問題。相關的圖經過使用音頻、元數據以及社交特徵等豐富的信息的結合,對歌單的鄰接信息以及歌曲的類似度信息進行編碼。咱們證實,咱們提出的這個融合了幾種知名的方法的混合推薦系統,有着廣闊的應用前景,並在效果上超過融合的相關算法。經過在真實數據上進行的實驗,咱們證明了咱們的模型能僅僅根據低秩矩陣的信息或者基於圖的信息以及二者的結合進行歌曲的推薦。優化

 

關鍵字:推薦系統,圖,非負矩陣分解,全變分,音頻特徵編碼

 

一 引言

 

在 Netflix上推薦電影,在Facebook上推薦好友,或者在LinkedIn上推薦工做等任務在過去幾年中吸引了愈來愈多的關注。大部分Netflix獎的得到者喜好用的著名的低秩矩陣分解算法須要明確的用戶評級做爲輸入。一些其餘類似的方法則經過用戶對物品的操做來反映用戶對物品的偏好,以至力於解決用戶的不明確的反饋問題。具體到歌曲和歌單推薦問題,也已經有了各類不一樣的方法,其中既有單純的基於內容的方法,也有各類混合的模型。最近,圖的正則化被提出,用來提升矩陣補全算法的效果。

 

本文的主要貢獻在如下幾個方面:

l  設計並實現了一個數學上的融合協同過濾以及內容過濾的聲音混合系統;

l  介紹了一個新的圖正則化項(TV),在推薦系統的背景下,其效果要優於普遍應用的 Tikhonov 正則化;

l  一個良好定義的基於近端分裂方法的迭代優化模式。

大量的實驗證實咱們提出的推薦系統具備很好的表現。

 

二 本文的歌曲推薦算法

 

1. 歌曲推薦算法

 

假設咱們有n個歌單,每一個列表都包含m首歌中的其中一部分。咱們定義矩陣C∈{0,1}n×m,矩陣中的元素 Cij 爲 1 則表示歌單 i 中包含歌曲 j,不然爲 0。咱們再定義一個權重矩陣Ω∈{0,1}n×m,當輸入的 Cij 可能爲 1 時,Ωij=1,不然等於一個很小的值 ε(咱們使用的 ε=0.1)。這裏應用了不明確反饋問題的思路。在矩陣 C 中一個元素爲 0 不表明這首歌與這個歌單無關,而是更可能不相關。

 

訓練階段的目標是找到一個近似的低秩表示,使AB ≈ C,其中A ∈ R+n×r,B ∈R+r×m都是非負的,且 r 很小。這個問題被稱爲非負矩陣分解(NMF),並引發了普遍的關注。相比其餘的矩陣分解方法,NMF 因爲只使用了加性因子,可以學習到物體(本文中即爲歌單)的各個部分。NMF 的方法的缺點是其爲 NP-hard。因此對於找到一個局部最小點來講正則化使很重要的。在咱們的問題中,咱們使用歌曲和歌單的圖來肯定因子 A 和 B。咱們模型的公式計算以下:

              (1)

其中(∘)表明點級別的乘法運算符,θA, θB∈R+。咱們使用一個加權 KL 散度做爲 C 和 AB 之間距離的衡量,有研究代表對於不一樣的 NMF 設置,這比Frobenius 範式更爲準確。公式中的第二項是歌單圖中 A 的行的全變分,因此對其進行懲罰就提高了分段恆定信號。公式中的第三項與第二項相似,是 B 的列的全變分。最終咱們提出的模型利用了參考文獻[9, 16],並利用 TV 半範式將其擴展到圖。

 

1.1 利用全變分進行圖的正則化

 

在咱們基於 NMF 的推薦系統中,每一個歌單 i 都被矩陣 A 中的第 i 行 Ai 投影到一個低維空間。爲了學習到歌單 Ai 的低秩的表示,咱們經過歌單的低秩表示,定義歌單之間成對的類似度ωAii’。咱們能夠從 TV 正則化項的定義中推導出,

‖A‖TVA= ∑i∑i’~ iωAii’‖Ai-Ai’‖1因此當兩個歌單 i 和 i'是類似的,那麼它們在圖中則是連通的,且鏈接這兩個歌單的邊的權值ωAii’很大(這裏ωAii’≈ 1)。另外,相應的低維向量表示(Ai,Ai’)間的距離過大就會被懲罰,這使得在低維空間中,(Ai,Ai’)的距離會保持較近。同理,每首歌 j 都由矩陣 B 中的一列 Bj 表示到一個低維空間。若是兩首歌(j,j’)很接近(ωBii’′≈ 1),那麼(Bj,Bj’)以及圖的正則化‖B‖則遵循上述的規律。

 

參考文獻[10]的思路與本文類似,經過 Tikhonov 正則化將圖的信息引入到模型中,例如經過 Dirichlet 能量項1/2∑i∑i’~ iωAii’‖Ai-Ai’‖22。然而這種方法促進了A 的列之間平滑的變化,而本文的方法圖的 TV 項的懲罰則促進了在列 Ai 和 Ai’間具備潛在的突變邊緣的分段恆定信號。這對於須要尋找多個類別的任務是有益的,例如聚類,或者本文中的推薦系統所涉及的類似歌單屬於不一樣的目錄的狀況。

 

咱們在第 4 部分會詳細分析,歌曲和歌單的圖的使用能夠顯著的提高推薦效果,且 TV 項的表現要比 Tikhonov 正則化更好。

 

1.2 原始-對偶優化

 

對於矩陣 A 和 B 來講,優化問題是全局非凸,可是各自凸的。一個經常使用的方法是固定 A 去優化 B,而後再固定 B 去優化 A,反覆直到收斂。咱們這裏以固定 A 而優化 B 爲例來描述上述優化方法。相同的方法能夠在固定 B 時應用於A。咱們將上述問題從新寫爲以下形式:

F(AB) + G(KBB)                     (2)

其中

F(AB)=KL(Ω∘(C‖AB)) =(âΩijCij(log)+Ωij(AB)ij        (3)

 

                 (4)

其中KB∈Rne×m是圖的梯度算子,ne 是圖 B 中的邊的條數。使用函數 F 和G 的共軛函數 F*和 G*,則等價於鞍點問題:

               (5)

其中Y1 ∈ Rn×m,Y2 ∈ Rne×r。咱們定義最近項和時間間隔 σ1,σ2,τ1,τ2:

               (6)

迭代的方式是,當 k≥0 時:

         Y1K+1 = proxσ1F∗(Y1K+ σ1ABK)                  (7)

Y2K+1 = proxσ2G∗(Y2K+ σ2KBBK)                    (8)

BK+1=(BK-τ1ATY1K+1-(KTBY2K+1)T)+                                        (9)

其中 prox 是最近算子,(∙)+ = max(∙, 0)。在咱們的問題中,咱們選擇了標準Arrow-Hurwicz 時間間隔σ1 =τ1 = 1⁄‖A‖,σ2 =τ2 = 1⁄‖K‖,其中‖∙‖是算子範數。

則最近解爲:

          (10)

其中 shrink 即爲軟縮減算子。注意到,一樣的算法也能夠應用於 Tikhonov正則化,例如,經過將上面的第一個式子改成proxσ2G*(Y)=Yï¼å°±å¯ä»¥å°âKBBâ1æ¿æ¢ä¸ºG(KB B) = ‖KBB‖22。在式(10)中的正則化使用的是 KL 散度的一個對稱變形,可是與咱們使用的這種方法不一樣的是,Tikhonov 正則化不存在解析解。因此其目標函數並不像咱們的同樣知足一個有效的原始-對偶優化方法。咱們保留這種非對稱的 KL 模型,並稱其爲 GNMF,來將 TV 與

Tikhonov 正則化進行比較。

 

1.3 推薦歌曲

 

咱們經過式(1)學到矩陣 A 和 B 以後,咱們但願已知一些歌曲 cin 時(如圖 1-1),可以推薦新的歌單 crec。咱們也但願能實現實時的推薦,因而咱們定義一個快速推薦方法

 

給定一些歌曲 cin,咱們先經過解決一個正則最小平方問題來在歌單的低秩空間學習一個好的表示:ain=arg min a∈R1×r||Ωin。(cin-aB)||22+ε||a||22。其解析解ain=(BTΩinB+εI)-1(BTΩincin)當 r 很小時較容易計算(咱們令ε = 0.01)。

與給定的歌單有類似表示的歌單也對於咱們推薦歌單有益。因此在低維空間中,咱們用加權和arec=Σni=1ωiAi/Σni=1ωi來表示被推薦的歌單。這裏權重ωi=e-||ain-Ai||22/σ2, 取 決 於 與 其 他 歌 單 的 表 示 的 距 離ain, 且 σ =mean({||ain-Ai||2}ni=1)/4。最終推薦歌單的低秩表示爲:

crec=arecB                                (11)

這裏crec並非二元的,而是一個連續的值,表示歌的排名。

 

2.歌曲和歌單的圖

 

2.1 歌單的圖

 

歌單的圖中包含了歌單間成對的類似度信息。圖的節點爲歌單,邊的權重表示了兩個歌單之間的距離,當權重很大時(ωAii’ ≈ 1),表示兩個歌單具備很高的類似度。在咱們的模型中,歌單圖中邊的權重的計算不只與外部信息例如元數據有關,還與內部信息有關,例如歌單中的歌曲信息。咱們使用預約義好的 Art of the Mix 歌單分類來標註用戶的歌單。則歌單的圖中邊的權重的計算定義爲

            ωAii’=Υ1δcat{i}=cat{i’}+Υ2simcos(Ci,Ci’)

其中 cat 表示歌單的標籤,Ci是矩陣 C 的第 i 行simcos(p,q)=

pTq/||p||.||q||是兩個歌單的歌曲向量之間的餘弦類似度距離。餘弦類似度爲兩首歌類似的比例比上兩個歌單長度乘積的均方根。兩個正的參數Υ1和Υ2知足Υ1 + Υ2 = 1,用於決定歌單標籤的類似度和歌單元素級別的類似度之間的相對重要程度。爲了控制每一個分類的邊緣機率密度並讓咱們的模型更靈活,咱們在同一個分類的節點之間保留 20%的邊的一個子集。在實驗中咱們發現,令Υ2 = 0.3能得到較好的效果。 歌單圖的效果經過使用標準 Louvain 方法對圖進行分割進行衡量。分塊的數目由在模塊最大的地方切開造成的模塊化係數的樹圖自動給出。第 4 節使用的圖的模塊化係數在使用只餘弦類似度(Υ2 = 0)時爲 0.63。若是咱們加入元數據的信息,將每一個分類下全部歌單對中的 20%進行鏈接,並令Υ2 = 0.3,則模塊化係數增加到 0.82。

 

2.2 歌曲的圖

 

咱們模型中使用的第二個圖是歌曲的類似度圖。歌曲的圖由從音頻信號中抽取的 Echonest 特徵與元數據信息結合以及音軌的社會信息混合組成。

爲了提升咱們的音頻特徵的質量,咱們使用從 LastFm 相關標籤中抽取的歌曲類型訓練了一個大間隔最近鄰模型(Large Margin Nearest Neighbors,LMNN)。爲了抽取到真實的音樂類型,咱們使用了這些標籤通過其流行度(根據 LastFm)加權的 Levenshtein 距離以及 ID3 標籤中定義的音樂類型。 最終,咱們用 k 近鄰(k=5)來構建歌曲的圖,其中,對於 j 的 k 個最近鄰中的一首歌 j’,兩首歌 j 和 j’之間的邊的權重ωBjj’=exp(-||xj-xj’||1/σ),參數σ是尺度參數,表示 k 個鄰居之間距離的平均值。獲得的圖的模塊化係數很高(0.64),使用 k-NN 進行非監督的準確率爲 65%左右。

 

3. 實驗結果

 

在這部分,咱們經過在一個真實數據集上進行實驗,將咱們的模型與其餘 3個不一樣的推薦系統進行比較。咱們的測試數據集是從由 McFee 等構建 的 Art of the Mix 語料庫中抽取的。咱們以前就是在這個數據庫中抽取了上述的特徵。 評價一個音樂推薦系統是一個衆所周知的難題。在本文中,咱們使用一個經典的評價使用間接反饋的推薦系統的模型的方法,Mean percentage Ranking(MPR)以及歌單分類準確度,即在查詢的分類中,過去已經出現過的歌單中的歌曲的百分比。

 

3.1 模型

 

咱們先將咱們的模型與一個只基於圖的方法(咱們稱爲 Cosine only)進行比較。對於給定輸入,這個模型使用餘弦類似度計算 t 個最接近的歌單(這裏 t=50),經過將歌單中的全部歌曲用餘弦類似度進行加權從而計算出一個柱狀圖進行推薦,如式(11)所示。第二個模型是使用了 KL 散度的 NMF,咱們成爲 NMF。最後一個模型 GNMF 是基於使用了 Tikhonov 正則化的 KL 散度,並應用了咱們模型中的圖。

 

3.2 查詢

 

咱們用 3 種不一樣的查詢來測試咱們的模型。在全部 3 種查詢中,一個查詢ctest包含 s=3 首歌做爲輸入,系統以一個歌單的形式返回最相近的 k=30 首歌做爲輸出。第一種查詢爲隨機查詢,從全部類別的歌中隨機選擇歌曲,其結果僅做爲比較的基準。第二種測試查詢,在測試集中的一個歌單中隨機選擇 3 首歌。第三種採樣查詢,在一個類別下隨機選擇 3 首歌。這種查詢模擬了用戶經過歌曲類別查詢歌單的推薦系統。

 

3.3 訓練

 

咱們使用從全部歌單中隨機選擇出 70%的子集做爲訓練集,因爲咱們的模型不是聯合凸的,初始化可能會對系統的表現產生影響,因此咱們使用如今經常使用的 NNDSVD 技術來獲得一個好的近似解。在咱們的全部實驗中,r=15 的結果很好,這意味着每行都有 5-20 個非零元素。最好的參數θA= 18以及θB= 1使用了網格搜索的方法。爲了防止過擬合,咱們在驗證集的 MPR 剛中止增加的時候就使用提早中止的方法。

 

3.4 驗證集

 

咱們經過人工的在不用的歌單類別中進行查詢的方法來構建驗證集中的歌單。對於每一個類別,咱們在以前已經在用戶建立的標註了類別的歌單中出現的歌曲中隨機的選擇 s=3 首歌。

 

3.5 結果

 

模型的結果,即不一樣模型的歌單分類準確率和 MPR 咱們列在表 3-1 和表 3-2 中。如咱們所預料的,對於隨機查詢,全部的模型都不能根據輸入的歌曲返回歌單,並且使用了協同濾波同時沒有假如圖信息的 NMF 表現不好。這能夠理解爲是數據集的稀疏性形成的,數據集每行只含有 5-20 個非零元素,稀疏度只有 0.11-0.46%。協同過濾模型在有越多的觀察到的等級時的表現越好,cosine 模型在類別準確率上表現更好,由於它直接使用了輸入歌曲和歌單之間的餘弦距離。然而,它的 MPR 說明即便情況很複雜,咱們的模型在歌曲推薦時表現的更好。

 

4. 結論

 

在這篇論文中咱們介紹了一個新的靈活的歌曲推薦系統,這個系統結合了歌單的協同過濾信息以及圖中包含的歌曲類似度信息。咱們使用一個基於原始-對偶的優化模式來獲得一個高度並行的、能夠用來處理大型數據集的算法。咱們選擇圖的 TV 而不是 Tikhonov 正則化,並經過將咱們的系統與 3 個不一樣的算法在真實的音樂歌單數據集上作比較,展現了咱們模型的良好的實驗效果。

 

原文連接

閱讀更多幹貨好文,請關注掃描如下二維碼: 

相關文章
相關標籤/搜索