Statsbot數(shù)據(jù)科學(xué)家Daniil Korbut簡明扼要地介紹了用于推薦系統(tǒng)的主流機(jī)器學(xué)習(xí)算法:協(xié)同過濾、矩陣分解、聚類、深度學(xué)習(xí)。
現(xiàn)在有許多公司使用大數(shù)據(jù)來制定高度相關(guān)的建議以提高收入。數(shù)據(jù)科學(xué)家需要根據(jù)業(yè)務(wù)的限制和需求,在各種推薦算法中選擇最好的算法。
為了簡化這一任務(wù),Statsbot團(tuán)隊(duì)準(zhǔn)備了一份現(xiàn)有主要推薦系統(tǒng)算法的概覽。
協(xié)同過濾
協(xié)同過濾(collaborative filtering, CF)及其改版是最常用的推薦算法之一。 即使是數(shù)據(jù)科學(xué)初學(xué)者也可以使用它來構(gòu)建他們的個(gè)人電影推薦系統(tǒng),比如用它寫一個(gè)簡歷項(xiàng)目。
當(dāng)我們想向用戶推薦東西時(shí),最符合邏輯的做法是找到有相似興趣的人,分析他們的行為,然后給我們的用戶推薦相同的東西。 或者我們可以查看與用戶之前所購類似的物品,并進(jìn)行相應(yīng)的推薦。
這正是CF的兩種基本方法:基于用戶的協(xié)作過濾和基于物品的協(xié)作過濾。
在這兩種情形下,推薦引擎分兩步:
-
找出數(shù)據(jù)庫中有多少用戶/物品與給定的用戶/物品類似。
-
評(píng)估其他用戶/物品,這一評(píng)估基于比待評(píng)估用戶/物品更相似的用戶/物品的總權(quán)重,以預(yù)測(cè)給用戶推薦相應(yīng)產(chǎn)品的評(píng)分。
算法中的“最相似”是什么意思?
假設(shè)我們有一個(gè)表示每個(gè)用戶的偏好的向量(矩陣 R的行)和一個(gè)表示用戶給每件產(chǎn)品評(píng)分的向量(矩陣 R的列)。

首先,讓我們?nèi)コ恍┰?,只保留兩個(gè)向量中值均已知的元素。
例如,如果我們想比較比爾和簡,我們可以看到,比爾還沒有看過《泰坦尼克號(hào)》,而簡到現(xiàn)在為止還沒看過《蝙蝠俠》,所以我們只能通過《星球大戰(zhàn)》來衡量他們的相似性。怎么會(huì)有人不看《星球大戰(zhàn)》,是吧?:)
最流行的衡量相似性的技術(shù)是用戶/物品向量之間的余弦相似性或加權(quán)平均數(shù)。
矩陣分解
下一個(gè)有趣的算法是矩陣分解。這是一個(gè)非常優(yōu)雅的推薦算法,因?yàn)槭褂镁仃嚪纸鈺r(shí)通常不用考慮要在結(jié)果矩陣的列和行中保留的物品。

u是第i個(gè)用戶的興趣向量,v是表示第j部電影的參數(shù)的向量。因此,我們可以使用u和v的點(diǎn)積來逼近x(第i個(gè)用戶對(duì)第j部電影的評(píng)分)。我們使用已知評(píng)分來構(gòu)建這些向量,并使用它們來預(yù)測(cè)未知評(píng)分。
例如,我們有表示用戶特德的向量(1.4; .9)和表示電影A的向量(1.4; .8),矩陣分解之后我們可以直接通過計(jì)算(1.4; .9)和(1.4; .8)的點(diǎn)積來還原電影A——特德的評(píng)分,結(jié)果為2.68。

聚類
前面兩個(gè)推薦算法非常簡單,比較適合小型系統(tǒng)。到目前為止,我們將推薦問題看作一個(gè)監(jiān)督學(xué)習(xí)任務(wù)。現(xiàn)在到了應(yīng)用無監(jiān)督方法來解決這個(gè)問題的時(shí)候了。
想象一下,我們正在建立一個(gè)大型推薦系統(tǒng),協(xié)同過濾和矩陣分解會(huì)花很長時(shí)間。這時(shí)第一個(gè)想到的應(yīng)該是聚類(clustering)。
根據(jù)屬于同一聚類的所有客戶的偏好,每個(gè)聚類會(huì)被分配一個(gè)典型偏好。每個(gè)聚類中的客戶將收到在聚類層次計(jì)算出的推薦。
業(yè)務(wù)初期缺乏用戶評(píng)分,因此聚類會(huì)是最佳選擇。
不過,單獨(dú)使用的話,聚類有點(diǎn)弱。因?yàn)橥ㄟ^聚類,我們識(shí)別出用戶群組,然后給同一群組中的每個(gè)用戶都推薦相同的物品。當(dāng)我們有足夠多的數(shù)據(jù)的時(shí)候,更好的選擇是將聚類作為第一步,用來調(diào)整相關(guān)用戶/物品選取,以供協(xié)同過濾算法使用。聚類也能提升復(fù)雜推薦系統(tǒng)的性能。
深度學(xué)習(xí)
十年來,神經(jīng)網(wǎng)絡(luò)有一個(gè)巨大的飛躍。今天,神經(jīng)網(wǎng)絡(luò)被應(yīng)用到許多領(lǐng)域,正逐漸取代傳統(tǒng)的機(jī)器學(xué)習(xí)方法。我想談一下YouTube使用的深度學(xué)習(xí)方法。
毫無疑問,為這樣的服務(wù)打造推薦系統(tǒng)是一項(xiàng)非常具有挑戰(zhàn)性的任務(wù),因?yàn)檫@一服務(wù)的規(guī)模很大,語料庫是動(dòng)態(tài)的,還有各種難以觀察的外部因素。
根據(jù)《YouTube推薦系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)》,YouTube推薦系統(tǒng)算法包括兩個(gè)神經(jīng)網(wǎng)絡(luò):一個(gè)用于生成候選視頻,另一個(gè)用于排名。如果你沒有足夠的時(shí)間閱讀上面的論文,我這里有一個(gè)快速總結(jié)。

接受用戶的歷史事件作為輸入,候選生成網(wǎng)絡(luò)顯著減少了視頻的數(shù)量,從一個(gè)巨大的語料庫抽取出一組相關(guān)性最高的視頻。生成的候選視頻是最和用戶相關(guān)的,我們即將預(yù)測(cè)用戶給候選視頻的評(píng)分。這個(gè)網(wǎng)絡(luò)的目標(biāo)只是通過協(xié)同過濾來提供一些范圍較廣的個(gè)性化候選視頻。

接下來我們需要更仔細(xì)地分析這些候選視頻,以挑選出其中最好的視頻。我們通過評(píng)分網(wǎng)絡(luò)完成這一任務(wù),評(píng)分網(wǎng)絡(luò)可以通過一個(gè)期望目標(biāo)函數(shù)給每個(gè)視頻賦值一個(gè)分?jǐn)?shù),該期望目標(biāo)函數(shù)使用描述視頻的數(shù)據(jù)和有關(guān)用戶行為的信息。評(píng)分最高的那些視頻將被推薦給用戶。

使用這一兩步方法,我們可以基于一個(gè)非常巨大的視頻語料庫推薦視頻,同時(shí)保證推薦的少量視頻是個(gè)性化的。這一設(shè)計(jì)也允許我們混合從其他來源生成的候選視頻。

這一推薦任務(wù)構(gòu)成了一個(gè)極端多類分類(extreme multiclass classification)問題,基于用戶(U)和情境(C)精確地分類在給定時(shí)刻t觀看(wt)的特定視頻,這一視頻取自一個(gè)語料庫(V),總共有數(shù)百萬的視頻類別(i)。
構(gòu)建你自己的推薦系統(tǒng)
-
基于大型數(shù)據(jù)庫的在線推薦,最好的辦法是將這個(gè)問題拆分成兩個(gè)子問題:1)選擇排名最高的N個(gè)候選 2)對(duì)它們進(jìn)行評(píng)分。
-
如何評(píng)估模型質(zhì)量?除了標(biāo)準(zhǔn)的質(zhì)量指標(biāo)之外,還有一些特別針對(duì)推薦問題的指標(biāo):Recall at K和Precision at K,Average Recall at K和Average Precision at K。另外可以參考《A Survey of Accuracy Evaluation Metrics of Recommendation Task》(JMLR 10 (2009))
-
如果使用分類算法解決推薦問題,則應(yīng)考慮生成負(fù)樣本。如果用戶購買了推薦的物品,不應(yīng)將其作為正樣本,也不應(yīng)將未購買的推薦物品作為負(fù)樣本。
-
基于在線分?jǐn)?shù)和離線分?jǐn)?shù)考量算法質(zhì)量。 僅使用歷史數(shù)據(jù)的訓(xùn)練模型可能導(dǎo)向簡陋的推薦系統(tǒng),因?yàn)樵撍惴ú恢佬碌某绷骱推谩?/p>
-
聚類
+關(guān)注
關(guān)注
0文章
146瀏覽量
14792 -
協(xié)同過濾
+關(guān)注
關(guān)注
0文章
45瀏覽量
10168 -
矩陣分解
+關(guān)注
關(guān)注
1文章
13瀏覽量
3785
原文標(biāo)題:推薦系統(tǒng)機(jī)器學(xué)習(xí)算法概覽
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
鋰電企業(yè)必看!如何通過知識(shí)驅(qū)動(dòng)的具身智能工業(yè)機(jī)器人實(shí)現(xiàn)物流“零事故、零延誤”停靠
算法工程師需要具備哪些技能?
穿孔機(jī)頂頭檢測(cè)儀 機(jī)器視覺深度學(xué)習(xí)
量子機(jī)器學(xué)習(xí)入門:三種數(shù)據(jù)編碼方法對(duì)比與應(yīng)用
AI 驅(qū)動(dòng)三維逆向:點(diǎn)云降噪算法工具與機(jī)器學(xué)習(xí)建模能力的前沿應(yīng)用
超小型Neuton機(jī)器學(xué)習(xí)模型, 在任何系統(tǒng)級(jí)芯片(SoC)上解鎖邊緣人工智能應(yīng)用.
FPGA在機(jī)器學(xué)習(xí)中的具體應(yīng)用
【嘉楠堪智K230開發(fā)板試用體驗(yàn)】K230機(jī)器視覺相關(guān)功能體驗(yàn)
機(jī)器學(xué)習(xí)異常檢測(cè)實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無標(biāo)簽異常檢測(cè)系統(tǒng)
使用MATLAB進(jìn)行無監(jiān)督學(xué)習(xí)
【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】視覺實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用
【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】+內(nèi)容初識(shí)
機(jī)器人主控芯片平臺(tái)有哪些 機(jī)器人主控芯片一文搞懂
系統(tǒng)機(jī)器學(xué)習(xí)算法總結(jié)知識(shí)分享
評(píng)論