0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

推薦系統(tǒng)的算法、評估和冷啟動解決方案

MqC7_CAAI_1981 ? 來源:未知 ? 作者:胡薇 ? 2018-06-12 15:20 ? 次閱讀

推薦系統(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ù)千種不同的推薦算法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:【干貨】推薦系統(tǒng)中的機(jī)器學(xué)習(xí)算法與評估實戰(zhàn)

文章出處:【微信號:CAAI-1981,微信公眾號:中國人工智能學(xué)會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)復(fù)位和冷啟動詳細(xì)介紹

    單片機(jī)冷啟動很簡單,關(guān)電,再上電,正常復(fù)位后,就冷啟動成功。單片機(jī)冷啟動其實是一個技術(shù)術(shù)語,是指單片機(jī)從最原始狀態(tài)啟動運(yùn)行。實現(xiàn)這一目標(biāo)視不同的單片機(jī)內(nèi)部結(jié)構(gòu)而有所不同。
    的頭像 發(fā)表于 02-12 13:38 ?2w次閱讀
    單片機(jī)復(fù)位和<b class='flag-5'>冷啟動</b>詳細(xì)介紹

    Android熱修復(fù)升級探索——代碼修復(fù)冷啟動方案

    的結(jié)構(gòu)也不一樣, 這兩套方案對我們來說都是不適用。 所以我們需要另辟蹊徑冷啟動修復(fù), 尋求一種既能無侵入打包又能做熱部署模式下兜底補(bǔ)充的解決方案, 下面將對Dalvik虛擬機(jī)和Art虛擬機(jī)的
    發(fā)表于 12-07 15:02

    針對汽車冷啟動優(yōu)化的雙開關(guān)降壓升壓單電感器設(shè)計方案

    描述這是一種經(jīng)改進(jìn)的 LM5118 雙開關(guān)降壓-升壓單電感器評估模塊 (EVM),已經(jīng)過優(yōu)化,可在汽車瞬變(如冷啟動)期間正常運(yùn)行。該模塊旨在通過 3V 至 42V 的輸入電壓范圍提供 15W(5V
    發(fā)表于 12-19 14:42

    請問STM32芯片怎樣區(qū)分冷啟動和熱啟動

    STM32芯片怎樣區(qū)分冷啟動和熱啟動,用的是KEIL MDK 4.22軟件,在網(wǎng)上看到有些資料說 可以用軟件設(shè)置一個區(qū)域,熱啟動的時候可以不清零這個區(qū)域,這樣就可以判斷這個區(qū)域的數(shù)據(jù)來確定是
    發(fā)表于 06-18 03:29

    協(xié)同過濾系統(tǒng)項目冷啟動的混合推薦算法

    研究協(xié)同過濾推薦系統(tǒng)中的冷啟動問題,運(yùn)用基于內(nèi)容預(yù)測的方法,對系統(tǒng)內(nèi)未被用戶評價過的項目進(jìn)行評分預(yù)測,應(yīng)用2種優(yōu)化步驟,過濾掉預(yù)測不準(zhǔn)確的用戶的評分。在此基礎(chǔ)上
    發(fā)表于 04-09 09:04 ?23次下載

    冷啟動傳感器開關(guān)特性測量系統(tǒng)

    汽車在低溫啟動控制用到的冷啟動傳感器的開關(guān)特性, 影響汽車發(fā)動機(jī)工作效果。本文論述采用微機(jī),進(jìn)行硬件擴(kuò)充,用TURBO C 編程控制,實現(xiàn)了對冷啟動傳感器開關(guān)特性進(jìn)行高精度測量
    發(fā)表于 07-01 10:31 ?14次下載

    冷啟動電子鎮(zhèn)流器電路圖

    冷啟動電子鎮(zhèn)流器電路圖
    發(fā)表于 06-11 11:06 ?1400次閱讀
    <b class='flag-5'>冷啟動</b>電子鎮(zhèn)流器電路圖

    DOS的冷啟動和熱啟動有什么區(qū)別和方法說明

    DOS的啟動又可分為冷啟動和熱啟動。冷啟動是指切斷電腦電源后重新開啟電源啟動的過程。熱啟動是指在
    發(fā)表于 08-14 17:32 ?0次下載
    DOS的<b class='flag-5'>冷啟動</b>和熱<b class='flag-5'>啟動</b>有什么區(qū)別和方法說明

    推薦系統(tǒng)中候選生成和冷啟動挑戰(zhàn)的研究

    本研究針對推薦系統(tǒng)冷啟動和候選生成兩方面的問題,提出了一種基于深度學(xué)習(xí)的分類方法。
    的頭像 發(fā)表于 07-30 10:22 ?2386次閱讀

    西門子PLC_CPU的冷啟動、暖啟動、熱啟動的區(qū)別

    西門子PLC_CPU的冷啟動、暖啟動、熱啟動的區(qū)別介紹。
    發(fā)表于 04-30 10:33 ?10次下載

    STM32冷啟動下載

    冷啟動和熱啟動都是復(fù)位
    發(fā)表于 12-20 19:38 ?8次下載
    STM32<b class='flag-5'>冷啟動</b>下載

    西門子PLC的暖啟動冷啟動、熱啟動有何區(qū)別

    西門子PLCCPU里的暖啟動,冷啟動,熱啟動,它們之間到底有什么本質(zhì)的區(qū)別?在實際應(yīng)用中又有何真正的用處呢?
    發(fā)表于 11-04 10:16 ?2541次閱讀

    華為云發(fā)布冷啟動加速解決方案:助力Serverless計算速度提升90%+

    領(lǐng)域面臨的優(yōu)化難題之一,華為云創(chuàng)新提出了 基于進(jìn)程級快照的冷啟動加速解決方案 ,致力于在用戶幾乎無感知的前提下,有效提升應(yīng)用的冷啟動性能; 特別的,Java 應(yīng)用冷啟動速度慢的問題尤
    的頭像 發(fā)表于 01-19 16:15 ?819次閱讀

    汽車電子應(yīng)用中的冷啟動

    電子發(fā)燒友網(wǎng)站提供《汽車電子應(yīng)用中的冷啟動.pdf》資料免費(fèi)下載
    發(fā)表于 10-20 11:13 ?0次下載
    汽車電子應(yīng)用中的<b class='flag-5'>冷啟動</b>

    基于DPU的容器冷啟動加速解決方案

    (Serverless)計算方式,極大地簡化了開發(fā)人員的工作,使他們能夠?qū)W⒂趹?yīng)用的構(gòu)建與運(yùn)行,而不再需要承擔(dān)服務(wù)器管理的負(fù)擔(dān)。 然而,F(xiàn)aaS模式也并非沒有缺陷,其中最為人詬病的便是“冷啟動”問題。所謂冷啟動,是指當(dāng)請求被調(diào)度到某個函數(shù)實例時,如果該實例在上次執(zhí)行完代碼
    的頭像 發(fā)表于 09-13 11:50 ?184次閱讀
    基于DPU的容器<b class='flag-5'>冷啟動</b>加速<b class='flag-5'>解決方案</b>