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

鴻蒙原生頁面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用
Android熱修復(fù)升級探索——代碼修復(fù)冷啟動方案
針對汽車冷啟動優(yōu)化的雙開關(guān)降壓升壓單電感器設(shè)計(jì)方案
協(xié)同過濾系統(tǒng)項(xiàng)目冷啟動的混合推薦算法
冷啟動傳感器開關(guān)特性測量系統(tǒng)
DOS的冷啟動和熱啟動有什么區(qū)別和方法說明

推薦系統(tǒng)中候選生成和冷啟動挑戰(zhàn)的研究
西門子PLC的暖啟動、冷啟動、熱啟動有何區(qū)別
華為云發(fā)布冷啟動加速解決方案:助力Serverless計(jì)算速度提升90%+
基于DPU的容器冷啟動加速解決方案

評論