在推薦系統(tǒng)的相關(guān)研究中,我們常常用到兩個(gè)相關(guān)概念:矩陣分解和奇異值分解。這兩個(gè)概念是同一種算法嗎??jī)烧叩降子惺裁床顒e?在本文中,作者梳理了兩種算法的概念、來(lái)源和內(nèi)容,并進(jìn)行了比較。通過(guò)對(duì)相關(guān)內(nèi)容的梳理,作者提出,矩陣分解是推薦系統(tǒng)中最初使用的概念,奇異值分解是對(duì)該方法的進(jìn)一步發(fā)展。在現(xiàn)在的討論中,一般將兩種方法統(tǒng)一成為奇異值分解。
在 Andrew Ng 教授的機(jī)器學(xué)習(xí)課程中,介紹推薦系統(tǒng)時(shí)經(jīng)常涉及矩陣分解、奇異值分解等數(shù)學(xué)知識(shí),這些概念并不是很好理解。在 Andrew Ng 教授的課程提到了一種稱為稱為 (低因子) 矩陣分解的方法,而在 Google 搜索會(huì)得到另一個(gè)名稱:奇異值分解。網(wǎng)絡(luò)資源中對(duì)于該算法的解釋和 Andrew Ng 教授存在差異,但很多人都認(rèn)為這兩個(gè)名稱指的是同一種算法。為了更好的梳理這兩個(gè)概念,在本文中,我對(duì)兩者進(jìn)行了分別介紹,并對(duì)比了它們的不同。
推薦系統(tǒng)
推薦系統(tǒng) (Recommender Systems, RS) 是一種自動(dòng)化的針對(duì)用戶的內(nèi)容推薦方式,被廣泛用于電子商務(wù)公司,流媒體服務(wù) (streaming services) 和新聞網(wǎng)站等系統(tǒng)。根據(jù)用戶的喜好,推薦系統(tǒng)能夠投其所好,為用戶推薦一些合適的內(nèi)容,以便減少用戶篩選過(guò)程中一些不必要的麻煩。
推薦系統(tǒng)并不是一種全新的技術(shù),相關(guān)概念最晚在1990年就出現(xiàn)了。事實(shí)上,當(dāng)前的機(jī)器學(xué)習(xí)熱潮,一部分要?dú)w因于人們對(duì) RS 的廣泛關(guān)注。 在2006年,Netflix 贊助了一場(chǎng)為電影尋找最佳推薦系統(tǒng)的競(jìng)賽,在當(dāng)時(shí)引起了一片轟動(dòng),也讓推薦系統(tǒng)再次得到了廣泛的關(guān)注。
矩陣表示
我們可以有很多種方式來(lái)向別人推薦一部電影。其中一種效果較好的策略,是將用戶對(duì)電影的評(píng)分看做一個(gè)用戶 x 電影矩陣,如下所示:
在該矩陣中,問(wèn)號(hào)代表用戶未評(píng)分的電影。隨后,只需要以某種方式預(yù)測(cè)來(lái)用戶對(duì)電影評(píng)分,并向用戶推薦他們可能喜歡的電影。
矩陣分解
在 Netflix 舉辦的比賽上,參賽者 Simon Funk 提出了一個(gè)很好的想法,即用戶對(duì)電影的評(píng)分不是隨給出的。用戶會(huì)基于一定的邏輯,針對(duì)電影中他所所喜歡的部分 (如特定的女演員或類型) 和不喜歡的情節(jié) (長(zhǎng)時(shí)間或糟糕的笑話) 賦予不同的權(quán)重,并進(jìn)行加權(quán)計(jì)算,最后得到一個(gè)分?jǐn)?shù)作為該電影的評(píng)分。這個(gè)過(guò)程可以用如下公式表示:
其中 xm 是電影 m 特征值的一個(gè)列向量,而 θ? 是另一個(gè)列向量,表示用戶 u 賦予每個(gè)電影特征的權(quán)重。每個(gè)用戶都有不同的權(quán)重集合,而每個(gè)電影的特征也對(duì)應(yīng)不同的特征集合。
事實(shí)證明,如果能夠任意地修改特征的數(shù)量并忽略所缺失的那部分電影評(píng)分,那么就可以找到一組權(quán)重和特征值,依據(jù)這些值所創(chuàng)建新矩陣與原始的評(píng)分矩陣是很接近的。這一過(guò)程可以通過(guò)梯度下降來(lái)實(shí)現(xiàn),且類似于線性回歸中所使用的梯度下降,只不過(guò)我們需要同時(shí)優(yōu)化權(quán)重和特征這兩組參數(shù)。以上文提供的用戶-電影矩陣為例,優(yōu)化后得到的結(jié)果將生成如下新的矩陣:
值得注意的是,在大多數(shù)真實(shí)數(shù)據(jù)集中,生成的結(jié)果矩陣并不會(huì)精確地與原始矩陣保持一致。因?yàn)樵诂F(xiàn)實(shí)生活中,用戶不會(huì)對(duì)通過(guò)矩陣乘法和求和等操作對(duì)電影進(jìn)行評(píng)分。大多數(shù)情況下,用戶對(duì)電影進(jìn)行評(píng)分只是一種主觀性的行為,且可能受到各種外部因素的影響。盡管如此,這里所介紹的方法還是希望通過(guò)數(shù)學(xué)公式來(lái)表達(dá)用戶在電影評(píng)分時(shí)的主要邏輯。
通過(guò)上面的計(jì)算,現(xiàn)在我們已經(jīng)得到了一個(gè)近似矩陣,那該如何來(lái)預(yù)測(cè)缺失的電影評(píng)級(jí)呢?通過(guò)回顧上面的計(jì)算過(guò)程,我們可以發(fā)現(xiàn),為了構(gòu)建這個(gè)新矩陣,這里定義了一個(gè)公式來(lái)填充矩陣中的所有值,包括原始矩陣中的缺失值。因此,如果想要預(yù)測(cè)缺失的用戶電影評(píng)分,這里只需獲取該缺失電影的所有特征值,再乘以該用戶的所有權(quán)重并將所有內(nèi)容相加,就能得到用戶對(duì)該電影的評(píng)分。因此在這里,如果想要預(yù)測(cè)用戶2對(duì)電影1的評(píng)級(jí),可以通過(guò)以下計(jì)算:
? ? ?
為了簡(jiǎn)化表達(dá)式,在這里可以對(duì) θ 和 x 進(jìn)行分離,并將它們放入各自的矩陣(比如 P 和 Q)。
以上就是 Funk 所提出的矩陣分解方法,也是 Andrew Ng 教授在課上所提到的矩陣分解。該方法在當(dāng)時(shí) Netflix 競(jìng)賽中獲得第三名,引起了廣泛的關(guān)注,并在當(dāng)前許多應(yīng)用中仍被使用。
奇異值分解
下面介紹奇異值分解 (Singular Value Decomposition, SVD)。SVD 方法是將一個(gè)矩陣分解為三個(gè)矩陣的矩陣分解方法,即 A =UΣV?,且三個(gè)分解矩陣會(huì)具有一些較好的數(shù)學(xué)特性。
SVD 方法具有廣泛的應(yīng)用,其中之一就是主成分分析(Principal Component Analysis, PCA) ,該方法能夠?qū)⒕S度 n 的數(shù)據(jù)集減少到 k 個(gè)維度 (k
這里不再展開(kāi)介紹 SVD 方法的詳細(xì)信息。我們只需要記住,奇異值分解與矩陣分解的處理方式不同。使用SVD 方法會(huì)得到三個(gè)分解矩陣,而 Funk 提出的矩陣分解方式只創(chuàng)建了兩個(gè)矩陣。
那為什么在每次搜索推薦系統(tǒng)時(shí)總會(huì)彈出 SVD 的相關(guān)內(nèi)容呢? Luis Argerich 認(rèn)為原因在于:
事實(shí)上,矩陣分解是推薦系統(tǒng)中首先使用的方法,而 SVD++ 可視為是對(duì)它的一種擴(kuò)展形式。正如 Xavier Amatriain 所說(shuō)的那樣:
而 Wikipedia 在對(duì)矩陣分解(推薦系統(tǒng))的相關(guān)條目中也有類似的表述:
最后,簡(jiǎn)單進(jìn)行一下總結(jié):
奇異值分解(SVD)是一種相對(duì)復(fù)雜的數(shù)學(xué)技術(shù),它將矩陣分解為三個(gè)新的矩陣,并廣泛應(yīng)用于當(dāng)前許多的應(yīng)用中,包括主成分分析(PCA)和推薦系統(tǒng)(RS)。
Simon Funk 在2006年的 Netflix 競(jìng)賽中提出并使用了一個(gè)非常好的策略,改方法將矩陣分解為兩個(gè)權(quán)重矩陣,并使用梯度下降來(lái)找到特征和權(quán)重所對(duì)應(yīng)的的最優(yōu)值。實(shí)質(zhì)上,這是不同于 SVD 方法的另一種技術(shù),將其稱為矩陣分解更為合適。
隨著這兩種方法的廣泛應(yīng)用,研究者并沒(méi)有嚴(yán)謹(jǐn)?shù)卦谛g(shù)語(yǔ)上區(qū)分這兩種方法,而是統(tǒng)一將其稱為 SVD。
-
矩陣
+關(guān)注
關(guān)注
0文章
422瀏覽量
34504 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8382瀏覽量
132444 -
奇異值分解
+關(guān)注
關(guān)注
0文章
4瀏覽量
6351
原文標(biāo)題:一文幫你梳理清楚:奇異值分解和矩陣分解 | 技術(shù)頭條
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論