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

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

推薦系統(tǒng)中候選生成和冷啟動(dòng)挑戰(zhàn)的研究
西門(mén)子PLC_CPU的冷啟動(dòng)、暖啟動(dòng)、熱啟動(dòng)的區(qū)別
西門(mén)子PLC的暖啟動(dòng)、冷啟動(dòng)、熱啟動(dòng)有何區(qū)別
華為云發(fā)布冷啟動(dòng)加速解決方案:助力Serverless計(jì)算速度提升90%+
汽車(chē)電子應(yīng)用中的冷啟動(dòng)

基于DPU的容器冷啟動(dòng)加速解決方案

評(píng)論