協(xié)同過濾 協(xié)同過濾(CF)及其變式是最常用的推薦算法之一。即使是數(shù)據(jù)科學(xué)的初學(xué)者,,也能憑之建立起自己的個性化電影推薦系統(tǒng),,例如,一個簡歷項目,。 當(dāng)我們想要向某個用戶推薦某物時,,最合乎情理的事情就是找到與他/她具有相同愛好的用戶,分析其行為,,并且為之推薦相同的東西,。或者我們可以關(guān)注那些與該用戶之前購買物品相似的東西,,并推薦相似的產(chǎn)品,。
該推薦算法的以上情形中均包含兩步: 1. 找到數(shù)據(jù)庫中有多少用戶/項目與目標(biāo)用戶/項目相似,。 2. 在給定與某產(chǎn)品用戶/項目更相似的用戶/項目的總權(quán)重時,,評估其它用戶/項目,來預(yù)測你給用戶的相關(guān)產(chǎn)品的評分,。 在該算法中,,「最為相似」意味著什么?我們擁有的是每一位用戶的偏好向量(矩陣 R 的列),,以及每一個產(chǎn)品的用戶評分的向量(矩陣 R 的行),。 首先,只留下兩個向量中值都已知的元素,。 舉個例子,,如果我們想比較 Bill 和 Jane,我們知道的信息是 Bill 沒有看過泰坦尼克號,,Jane 沒有看過蝙蝠俠,,那么我們只能通過星戰(zhàn)來衡量他們的相似度。怎么可能會有人不看星戰(zhàn),,對吧,?(微笑) 最流行的測量相似度的方法,是測量用戶/項目向量的余弦相似度(cosine similarity)或相關(guān)度(correlations),。最后一步是根據(jù)相似程度,,采取加權(quán)算術(shù)平均方法,填滿表中的空單元格,。 用于推薦的矩陣分解另一個有趣的方法是使用矩陣分解,。這是一種優(yōu)雅的推薦算法,因為通常在矩陣分解時,,我們不會過多考慮結(jié)果矩陣的行列中哪些項(item)會被保留,。但使用該推薦工具時,,我們可以清楚地看到 u 是關(guān)于第 i 個用戶的興趣的向量,,而 v 是關(guān)于第 j 部電影的參數(shù)的向量,。 于是我們能夠通過 u 和 v 的點積來估計 x(第 i 個用戶對第 j 部電影的評分)。我們用已知的評分建立這些向量并以此預(yù)測未知的評分,。 舉個例子,,矩陣分解后我們獲得了 Ted 的向量(1.4;.9)和電影 A 的向量(1.4; .8),,現(xiàn)在我們可以僅僅通過計算(1.4,; .9)和(1.4; .8)的點積來還原電影 A-Ted 的評分,,評分結(jié)果為 2.68,。 聚類 以前的推薦算法比較簡單并且適用于小系統(tǒng)。而且直到現(xiàn)在,,我們?nèi)园淹扑]問題設(shè)想成一個監(jiān)督式機(jī)器學(xué)習(xí)任務(wù)?,F(xiàn)在是時候用非監(jiān)督方法來解決此類問題了,。 設(shè)想一下,我們是正在建造一個大型推薦系統(tǒng),,在此系統(tǒng)中協(xié)同過濾和矩陣分解這兩項工作的時間應(yīng)該更長,。而第一種設(shè)想就是聚類(clustering)。
但是如果單獨使用,,聚類就顯得有一些薄弱了,,因為事實上我們所做的事情其實是對用戶組別進(jìn)行鑒定,,并且為本組里的每一位用戶推薦相同的東西,。當(dāng)我們擁有了足夠的數(shù)據(jù)的時候,使用聚類方法作為第一步是更好的選擇,,這樣可以減少協(xié)同過濾算法中的相關(guān)近鄰(neighbor)的選擇,。它也可以改善復(fù)雜推薦系統(tǒng)的性能表現(xiàn)。 每一個群集(cluster)都會被分配有代表性的偏好,,這是以屬于該群集的用戶的偏好為基礎(chǔ)的,。每一組群集的用戶都會收到在群集層面上計算過的推薦結(jié)果。 推薦系統(tǒng)的深度學(xué)習(xí)方法在過去十年,,神經(jīng)網(wǎng)絡(luò)的發(fā)展已經(jīng)有了巨大的飛躍?,F(xiàn)在它們正被應(yīng)用于各種各樣的應(yīng)用,并且正在逐漸代替?zhèn)鹘y(tǒng)的機(jī)器學(xué)習(xí)方法,。下面我將展示深度學(xué)習(xí)方法是如何在 Youtube 中被使用的,。 毋庸置疑,由于其規(guī)模大,,語料庫不斷變化,,以及種種不可觀測的外部因素,為這樣的服務(wù)項目制作推薦系統(tǒng)是一項極具挑戰(zhàn)性的任務(wù),。 根據(jù)「YouTube 推薦系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)」的相關(guān)研究,,YouTube 推薦系統(tǒng)算法包含兩部分神經(jīng)網(wǎng)絡(luò):一個是用于候選集生成(candidate generation),另一個則是用于排序,。如果你沒有足夠的時間,,我將在這里給你進(jìn)行一個簡要的概括。 使用用戶的歷史作為輸入,,候選集生成網(wǎng)絡(luò)(candidate generation network)顯著地減少了視頻的數(shù)量,,并且可以從一個大型語料庫中選取一組最相關(guān)的視頻集。生成的候選集對用戶來說是最為相關(guān)的,,此神經(jīng)網(wǎng)絡(luò)的目的僅僅是為了通過協(xié)同過濾來提供一個寬泛的個性化服務(wù),。 在這一步中,,我們擁有了更少量的候選結(jié)果,這些結(jié)果與用戶需求更加接近,。我們現(xiàn)在的目的是仔細(xì)地分析所有候選結(jié)果,,這樣我們就可以做出最好的決策。此任務(wù)是由排序網(wǎng)絡(luò)(ranking network)來完成的,,它可以根據(jù)一個期望的目標(biāo)函數(shù)為每一個視頻都分配一個分?jǐn)?shù),,這個目標(biāo)函數(shù)是使用數(shù)據(jù)來對有關(guān)用戶行為的視頻和信息來進(jìn)行描述的。 使用兩階段法(two-stage approach),,我們就能夠從很大的視頻語料庫中做出視頻推薦,,然而可以確信的是,這些推薦結(jié)果中只有少量是個性化的,,而且是被用戶真正進(jìn)行應(yīng)用的,。這一設(shè)計也能使我們把其它資源生成的結(jié)果和這些候選結(jié)果混合在一起。 推薦任務(wù)就像是一個極端的多類別分類問題,,預(yù)測問題變成了一個在給定的時間 t 下,,基于用戶(U)和語境(C),對語料庫(V)中數(shù)百萬的視頻類別(i)中的一個特定視頻(wt)進(jìn)行精準(zhǔn)分類的問題,。 在創(chuàng)建你自己的推薦系統(tǒng)前要注意的要點:
|
|
來自: 昵稱16619343 > 《辦公技能》