1. 程式人生 > >融合非負矩陣分解和圖全變分的歌曲推薦算法

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

算法

摘要: Kirell Benzi, Vassilis Kalofolias, Xavier Bresson and Pierre Vandergheynst Signal Processing Laboratory 2 (LTS2), Swiss Federal Institute of Technology (EPFL)

Kirell Benzi,

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)) =(a????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????°±??ˉ??¥?°?a??KBBa??1?????¢??oG(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 特征與元數據信息結合以及音軌的社會信息混合組成。表 2-1 給出了用於構建歌曲圖所使用到的特征。

為了提高我們的音頻特征的質量,我們使用從 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 個不同的算法在真實的音樂歌單數據集上做比較,展示了我們模型的良好的實驗效果。

原文鏈接

閱讀更多幹貨好文,請關註掃描以下二維碼:
技術分享圖片

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