推薦系統(tǒng)是機(jī)器學(xué)習(xí)技術(shù)在企業(yè)中最成功和最廣泛的應(yīng)用之一。
Machine Learning for Recommender systems?—?Part 1 (algorithms, evaluation and cold start)
引言
你可以在許多用戶與項目交互的場景中應(yīng)用推薦系統(tǒng)。
你可以在零售、視頻點(diǎn)播或音樂流中找到大型推薦系統(tǒng)。為了開發(fā)和維護(hù)這樣的系統(tǒng),公司通常需要一群昂貴的數(shù)據(jù)科學(xué)家和工程師。這就是為什么即使是像BBC這樣的大公司也決定外包其推薦服務(wù)的原因。
我們公司總部設(shè)在布拉格,開發(fā)了一個通用的自動化推薦引擎,能夠適應(yīng)多個領(lǐng)域的業(yè)務(wù)需求。我們的引擎已被世界各地的數(shù)百家企業(yè)使用。
令人驚訝的是,對于媒體的新聞或視頻推薦、旅行和零售中的產(chǎn)品推薦或個性化推薦,都可以通過類似的機(jī)器學(xué)習(xí)算法來處理。此外,這些算法還可以在每次推薦請求中使用我們特有的查詢語言進(jìn)行調(diào)整。
算法
推薦系統(tǒng)中的機(jī)器學(xué)習(xí)算法通常分為兩類:基于內(nèi)容的推薦方法和協(xié)同過濾方法,盡管現(xiàn)代推薦者將這兩種方法結(jié)合在一起?;趦?nèi)容的方法是基于項目屬性的相似性和協(xié)作方法,從交互中計算相似度。下面我們主要討論協(xié)同過濾方法,使用戶能夠發(fā)現(xiàn)與過去查看過的項目不同的新內(nèi)容。
協(xié)同過濾方法與交互矩陣一起工作,當(dāng)用戶提供項目的顯式評分時,這種交互矩陣也可以稱為評分矩陣。機(jī)器學(xué)習(xí)的任務(wù)是學(xué)習(xí)一個函數(shù),它可以預(yù)測項目對每個用戶的效果。矩陣通常很大,非常稀疏,而且大多數(shù)值都丟失了。
最簡單的算法是計算行(用戶)或列(項)的余弦或其他相關(guān)相似性,并推薦k個最近鄰居喜歡的項。
基于矩陣因式分解的方法試圖降低相互作用矩陣的維數(shù),并將其近似為兩個或多個具有k個潛在分量的小矩陣。
通過將相應(yīng)的行和列相乘,你可以根據(jù)用戶預(yù)測項目的評分。訓(xùn)練誤差可以通過比較非空評分和預(yù)測評分來獲得。還可以通過增加懲罰項,保持潛在向量的低值來調(diào)整訓(xùn)練損失。
最流行的訓(xùn)練算法是隨機(jī)梯度下降算法,通過對p q矩陣的列和行進(jìn)行梯度更新,使下降損失最小化。
或者,可以使用交替最小二乘法,通過一般最小二乘步驟迭代優(yōu)化矩陣p和矩陣q。
關(guān)聯(lián)規(guī)則也可用于推薦。經(jīng)常在一起消費(fèi)的項目與圖形中的邊緣相關(guān)聯(lián)。你可以看到一組暢銷書(幾乎每個人都與之交互的緊密連接的項目)和小的、分離的內(nèi)容集群。
從交互矩陣中挖掘出的規(guī)則至少應(yīng)該有一些最小的支持度(support)和置信度(confidence)。支持度與發(fā)生頻率有關(guān),比如暢銷書有很高的支持度。高置信度意味著規(guī)則不會經(jīng)常被違反。
挖掘規(guī)則的規(guī)模不大,先驗算法探索了可能的頻繁項集的狀態(tài)空間,消除了搜索空間中不頻繁的分支。
頻繁項集用于生成規(guī)則,這些規(guī)則產(chǎn)生推薦。
例如,我們展示了從捷克共和國的銀行交易中提取的規(guī)則。節(jié)點(diǎn)(交互)是終端,邊緣是頻繁的交易。你可以根據(jù)過去的取款/付款推薦相關(guān)的銀行終端。
懲罰受歡迎的項目和提取支持度較低的長尾規(guī)則會產(chǎn)生有趣的規(guī)則,使推薦多樣化并有助于發(fā)現(xiàn)新的內(nèi)容。
評分矩陣也可以用神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮,所謂的自編碼器與矩陣分解非常相似,具有多個隱藏層和非線性的深層自編碼器更強(qiáng)大,但更難訓(xùn)練。神經(jīng)網(wǎng)絡(luò)也可以用來預(yù)處理項屬性,這樣就可以將基于內(nèi)容的方法和協(xié)同過濾方法結(jié)合起來。
上面給出了user-KNN Top-N推薦偽代碼。
關(guān)聯(lián)規(guī)則可以通過多種不同的算法來挖掘。這里我們給出了最佳規(guī)則推薦(Best-Rule recommendations)的偽代碼。
上面給出了矩陣因式分解的偽代碼。
在協(xié)同深度學(xué)習(xí)中,結(jié)合項目屬性與自編碼器同時訓(xùn)練矩陣因式分解,當(dāng)然還有更多的算法可用于推薦,本文的下一部分介紹了一些基于深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的方法。
推薦系統(tǒng)的評估
推薦者可以與歷史數(shù)據(jù)上的經(jīng)典機(jī)器學(xué)習(xí)模型(離線評估)進(jìn)行類似的評估。
隨機(jī)選擇的測試用戶之間的交互作用被交叉驗證,以估計推薦者在未見的評級上的性能。
盡管許多研究表明,均方誤差(RMES)對在線性能的估計能力較差,但它仍得到了廣泛的應(yīng)用。
更實用的離線評估措施是召回率(Recall)或準(zhǔn)確率(Precision)評估正確推薦項目的百分比(不包括推薦項目或相關(guān)項目)。DCG還考慮到了假設(shè)項目的相關(guān)性對數(shù)下降時的位置。
我們可以使用對離線數(shù)據(jù)偏差不太敏感的附加度量。Catalog coverage以及Recall或Precision可以用于多目標(biāo)優(yōu)化。我們在所有算法中引入正則化參數(shù),允許對它們的可塑性進(jìn)行操作,并懲罰對流行項的推薦。
Recall和coverage都應(yīng)該最大化,因此推動推薦系統(tǒng)向準(zhǔn)確和多樣化發(fā)展,使用戶能夠探索新的內(nèi)容。
冷啟動和基于內(nèi)容的推薦
交互有時會丟失。冷啟動產(chǎn)品或冷啟動用戶沒有足夠的交互來可靠地度量其交互相似性,因此協(xié)同過濾方法無法產(chǎn)生推薦。
當(dāng)考慮到屬性相似性時,冷啟動問題可以減少。你可以將屬性編碼成二進(jìn)制向量,并提供系統(tǒng)進(jìn)行推薦。
基于交互相似性和屬性相似性的項目聚類往往是對齊的。
你可以使用神經(jīng)網(wǎng)絡(luò)從屬性相似性預(yù)測交互相似性,反之亦然。
有很多其他方法使我們能夠減少冷啟動問題,提高推薦質(zhì)量。在第二部分中,我們將會討論基于會話(sessionbased)的推薦技術(shù)、深度推薦、集成算法和自動化,使我們能夠在生產(chǎn)中運(yùn)行和優(yōu)化數(shù)千種不同的推薦算法。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8306瀏覽量
131838 -
推薦系統(tǒng)
+關(guān)注
關(guān)注
1文章
42瀏覽量
10055
原文標(biāo)題:【干貨】推薦系統(tǒng)中的機(jī)器學(xué)習(xí)算法與評估實戰(zhàn)
文章出處:【微信號:CAAI-1981,微信公眾號:中國人工智能學(xué)會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論