亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

推薦系統(tǒng)MostPopular算法用Python實(shí)現(xiàn)方式

89542767 / 740人閱讀

  今天這篇文章,主要是用來(lái)給大家解答一個(gè)問(wèn)題,就是關(guān)于怎么用Python去實(shí)現(xiàn)一個(gè)功能,需要用到的算法是MostPopular算法,具體給大家詳細(xì)的解答下。


  推薦系統(tǒng)MostPopular算法的Python實(shí)現(xiàn)


  MostPopular算法的是指對(duì)每個(gè)用戶都選擇出當(dāng)前流行度最高的Top-K個(gè)物品進(jìn)行推薦,在推薦的時(shí)候,需要去除用戶原先就瀏覽過(guò)的項(xiàng)目。


  算法代碼如下


  #MostPop
  defMostPopular(pop_dict,I,K):
    '''
      pop_dic:流行度字典,存儲(chǔ)了每個(gè)item:pop_value的鍵值對(duì)。
      I:用戶可以選擇的Item空間(需去除已經(jīng)看過(guò)的item)
      K:Top-K值,推薦出K個(gè)item給用戶
    '''
    pop_dict_sort=sorted(pop_dict.items(),key=lambdakv:(kv[1],kv[0]),reverse=True)
    foreach_iteminpop_dict_sort:
      ifeach_item[0]notinI:
        pop_dict_sort.remove(each_item)
    return[i[0]foriinpop_dict_sort[:K]]


  在ML-1M數(shù)據(jù)集上的測(cè)試結(jié)果(100個(gè)用戶)


  Precision:0.05399999999999998


  Recall:0.0659683173313864


  HR:0.08


  NDCG:0.2668352016595219


  ARP:25.750500000000002


  推薦系統(tǒng)的幾種常用算法總結(jié)


  之前也做過(guò)一些關(guān)于推薦系統(tǒng)的項(xiàng)目,下面就來(lái)系統(tǒng)的總結(jié)一下。


  一、什么是推薦系統(tǒng)?


  引用百度百科的一段解釋就是:“利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購(gòu)買(mǎi)什么產(chǎn)品,模擬銷(xiāo)售人員幫助客戶完成購(gòu)買(mǎi)過(guò)程。個(gè)性化推薦是根據(jù)用戶的興趣特點(diǎn)和購(gòu)買(mǎi)行為,向用戶推薦用戶感興趣的信息和商品?!?/p>


  在這個(gè)數(shù)據(jù)過(guò)載的時(shí)代,信息的消費(fèi)者需要從海量的信息中找到自己所需要的信息,信息的生產(chǎn)者要讓自己生產(chǎn)的信息在海量的信息中脫穎而出,這時(shí)推薦系統(tǒng)就應(yīng)運(yùn)而生了。對(duì)用戶而言,推薦系統(tǒng)不需要用戶提供明確的目標(biāo);對(duì)物品而言,推薦系統(tǒng)解決了2/8現(xiàn)象的問(wèn)題(也叫長(zhǎng)尾效應(yīng)),讓小眾的物品可以展示到需要它們的用戶面前。


  二、推薦系統(tǒng)要解決的問(wèn)題?


  1、幫助用戶找到想要的物品如:書(shū)籍、電影等


  2、可以降低信息過(guò)載


  3、有利于提高站點(diǎn)的點(diǎn)擊率/轉(zhuǎn)化率


  4、有利于對(duì)用戶進(jìn)行深入了解,為用戶提供個(gè)性化服務(wù)


  三、推薦系統(tǒng)的發(fā)展趨勢(shì)?


  推薦系統(tǒng)的研究大致可以分為三個(gè)階段,第一階段是基于傳統(tǒng)的服務(wù),第二階段是基于目前的社交網(wǎng)絡(luò)的服務(wù),第三階段是即將到來(lái)的物聯(lián)網(wǎng)。


  這其中產(chǎn)生了很多基礎(chǔ)和重要的算法,例如協(xié)同過(guò)濾(包括基于用戶的和基于物品的)、基于內(nèi)容的推薦算法、混合式的推薦算法、基于統(tǒng)計(jì)理論的推薦算法、基于社交網(wǎng)絡(luò)信息(關(guān)注、被關(guān)注、信任、知名度、信譽(yù)度等)的過(guò)濾推薦算法、群體推薦算法、基于位置的推薦算法。


  其中基于鄰域的協(xié)同過(guò)濾推薦算法是推薦系統(tǒng)中最基礎(chǔ)、最核心、最重要的算法,該算法不僅在學(xué)術(shù)界得到較為深入的研究,而且在業(yè)界也得到非常廣泛的應(yīng)用,基于鄰域的算法主要分為兩大類,一類是基于用戶的協(xié)同過(guò)濾算法,另一類是基于物品的協(xié)同過(guò)濾算法,除此之外,基于內(nèi)容的推薦算法應(yīng)用也非常廣泛等等,因此下文將對(duì)涉及推薦系統(tǒng)的常用算法進(jìn)行詳細(xì)介紹。


  1、基于流行度的推薦算法


  2、基于協(xié)同過(guò)濾的推薦算法(UserCF與ItemCF)


  3、基于內(nèi)容的推薦算法


  4、基于模型的推薦算法


  5、基于混合式的推薦算法


  四、基于流行度的推薦算法


  基于流行度的算法非常簡(jiǎn)單粗暴,類似于各大新聞、微博熱榜等,根據(jù)PV、UV、日均PV或分享率等數(shù)據(jù)來(lái)按某種熱度排序來(lái)推薦給用戶。


  注:獨(dú)立訪客(UV)、訪問(wèn)次數(shù)(VV)兩個(gè)指標(biāo)有什么區(qū)別?


  ①訪問(wèn)次數(shù)(VV):記錄1天內(nèi)所有訪客訪問(wèn)了該網(wǎng)站多少次,相同的訪客有可能多次訪問(wèn)該網(wǎng)站,且訪問(wèn)的次數(shù)累加。


 ?、讵?dú)立訪客(UV):記錄1天內(nèi)所有訪客訪問(wèn)了該網(wǎng)站多少次,雖然相同訪客能多次訪問(wèn)網(wǎng)站,但只計(jì)算為1個(gè)獨(dú)立訪客。


  ③PV訪問(wèn)量(PageView):即頁(yè)面訪問(wèn)量,每打開(kāi)一次頁(yè)面或者刷新一次頁(yè)面,PV值+1。


  1、優(yōu)點(diǎn):該算法簡(jiǎn)單,適用于剛注冊(cè)的新用戶


  2、缺點(diǎn):無(wú)法針對(duì)用戶提供個(gè)性化的推薦


  3、改進(jìn):基于該算法可做一些優(yōu)化,例如加入用戶分群的流行度進(jìn)行排序,通過(guò)把熱榜上的體育內(nèi)容優(yōu)先推薦給體育迷,把政要熱文推給熱愛(ài)談?wù)撜蔚挠脩簟?/p>


  五、基于用戶的協(xié)同過(guò)濾推薦算法


  當(dāng)目標(biāo)用戶需要推薦時(shí),可以先通過(guò)興趣、愛(ài)好或行為習(xí)慣找到與他相似的其他用戶,然后把那些與目標(biāo)用戶相似的用戶喜歡的并且目標(biāo)用戶沒(méi)有瀏覽過(guò)的物品推薦給目標(biāo)用戶。


  1、基于用戶的CF原理如下:


 ?、俜治龈鱾€(gè)用戶對(duì)物品的評(píng)價(jià),通過(guò)瀏覽記錄、購(gòu)買(mǎi)記錄等得到用戶的隱性評(píng)分;


 ?、诟鶕?jù)用戶對(duì)物品的隱性評(píng)分計(jì)算得到所有用戶之間的相似度;


  ③選出與目標(biāo)用戶最相似的K個(gè)用戶;


 ?、軐⑦@K個(gè)用戶隱性評(píng)分最高并且目標(biāo)用戶又沒(méi)有瀏覽過(guò)的物品推薦給目標(biāo)用戶。


  2、優(yōu)點(diǎn):


 ?、倩谟脩舻膮f(xié)同過(guò)濾推薦算法是給目標(biāo)用戶推薦那些和他有共同興趣的用戶喜歡的物品,所以該算法推薦較為社會(huì)化,即推薦的物品是與用戶興趣一致的那個(gè)群體中的熱門(mén)物品;


 ?、谶m于物品比用戶多、物品時(shí)效性較強(qiáng)的情形,否則計(jì)算慢;


 ?、勰軐?shí)現(xiàn)跨領(lǐng)域、驚喜度高的結(jié)果。


  3、缺點(diǎn):


 ?、僭诤芏鄷r(shí)候,很多用戶兩兩之間的共同評(píng)分僅有幾個(gè),也即用戶之間的重合度并不高,同時(shí)僅有的共同打了分的物品,往往是一些很常見(jiàn)的物品,如票房大片、生活必需品;


 ?、谟脩糁g的距離可能變得很快,這種離線算法難以瞬間更新推薦結(jié)果;


  ③推薦結(jié)果的個(gè)性化較弱、較寬泛。


  4、改進(jìn):


 ?、賰蓚€(gè)用戶對(duì)流行物品的有相似興趣,絲毫不能說(shuō)明他們有相似的興趣,此時(shí)要增加懲罰力度;


 ?、谌绻麅蓚€(gè)用戶同時(shí)喜歡了相同的物品,那么可以給這兩個(gè)用戶更高的相似度;


  ③在描述鄰居用戶的偏好時(shí),給其最近喜歡的物品較高權(quán)重;


 ?、馨杨愃频赜蛴脩舻男袨樽鳛橥扑]的主要依據(jù)。


  六、基于物品的協(xié)同過(guò)濾推薦算法


  當(dāng)一個(gè)用戶需要個(gè)性化推薦時(shí),舉個(gè)例子由于我之前購(gòu)買(mǎi)過(guò)許嵩的《夢(mèng)游計(jì)》這張專輯,所以會(huì)給我推薦《青年晚報(bào)》,因?yàn)楹芏嗥渌脩舳纪瑫r(shí)購(gòu)買(mǎi)了許嵩的這兩張專輯。


  1、基于物品的CF原理如下:


  ①分析各個(gè)用戶對(duì)物品的瀏覽記錄;


  ②依據(jù)瀏覽記錄分析得出所有物品之間的相似度;


 ?、蹖?duì)于目標(biāo)用戶評(píng)價(jià)高的物品,找出與之相似度最高的K個(gè)物品;


  ④將這K個(gè)物品中目標(biāo)用戶沒(méi)有瀏覽過(guò)的物品推薦給目標(biāo)用戶


  2、優(yōu)點(diǎn):


 ?、倩谖锲返膮f(xié)同過(guò)濾推薦算法則是為目標(biāo)用戶推薦那些和他之前喜歡的物品類似的物品,所以基于物品的協(xié)同過(guò)濾推薦算法的推薦較為個(gè)性,因?yàn)橥扑]的物品一般都滿足目標(biāo)用戶的獨(dú)特興趣。


 ?、谖锲分g的距離可能是根據(jù)成百上千萬(wàn)的用戶的隱性評(píng)分計(jì)算得出,往往能在一段時(shí)間內(nèi)保持穩(wěn)定。因此,這種算法可以預(yù)先計(jì)算距離,其在線部分能更快地生產(chǎn)推薦列表。


  ③應(yīng)用最廣泛,尤其以電商行業(yè)為典型。


 ?、苓m于用戶多、物品少的情形,否則計(jì)算慢


 ?、萃扑]精度高,更具個(gè)性化


 ?、迌A向于推薦同類商品


  3、缺點(diǎn):


  ①不同領(lǐng)域的最熱門(mén)物品之間經(jīng)常具有較高的相似度。比如,基于本算法,我們可能會(huì)給喜歡聽(tīng)許嵩歌曲的同學(xué)推薦汪峰的歌曲,也就是推薦不同領(lǐng)域的暢銷(xiāo)作品,這樣的推薦結(jié)果可能并不是我們想要的。


  ②在物品冷啟動(dòng)、數(shù)據(jù)稀疏時(shí)效果不佳


 ?、弁扑]的多樣性不足,形成信息閉環(huán)


  4、改進(jìn):


  ①如果是熱門(mén)物品,很多人都喜歡,就會(huì)接近1,就會(huì)造成很多物品都和熱門(mén)物品相似,此時(shí)要增加懲罰力度;


  ②活躍用戶對(duì)物品相似度的貢獻(xiàn)小于不活躍的用戶;


 ?、弁粋€(gè)用戶在間隔很短的時(shí)間內(nèi)喜歡的兩件商品之間,可以給予更高的相似度;


 ?、茉诿枋瞿繕?biāo)用戶偏好時(shí),給其最近喜歡的商品較高權(quán)重;


 ?、萃粋€(gè)用戶在同一個(gè)地域內(nèi)喜歡的兩件商品之間,可以給予更高的相似度。


  七、基于內(nèi)容的推薦算法


  協(xié)同過(guò)濾算法僅僅通過(guò)了解用戶與物品之間的關(guān)系進(jìn)行推薦,而根本不會(huì)考慮到物品本身的屬性,而基于內(nèi)容的算法會(huì)考慮到物品本身的屬性。


  根據(jù)用戶之前對(duì)物品的歷史行為,如用戶購(gòu)買(mǎi)過(guò)什么物品、對(duì)什么物品收藏過(guò)、評(píng)分過(guò)等等,然后再根據(jù)計(jì)算與這些物品相似的物品,并把它們推薦給用戶。例如某用戶之前購(gòu)買(mǎi)過(guò)許嵩的《尋寶游戲》,這可以說(shuō)明該用戶可能是一個(gè)嵩鼠,這時(shí)就可以給該用戶推薦一些許嵩的其他專輯或著作。


  1、基于內(nèi)容的推薦算法的原理如下:


 ?、龠x取一些具有代表性的特征來(lái)表示每個(gè)物品


 ?、谑褂糜脩舻臍v史行為數(shù)據(jù)分析物品的這些特征,從而學(xué)習(xí)出用戶的喜好特征或興趣,也即構(gòu)建用戶畫(huà)像


 ?、弁ㄟ^(guò)比較上一步得到的用戶畫(huà)像和待推薦物品的畫(huà)像(由待推薦物品的特征構(gòu)成),將具有相關(guān)性最大的前K個(gè)物品中目標(biāo)用戶沒(méi)有瀏覽過(guò)的物品推薦給目標(biāo)用戶


  2、優(yōu)點(diǎn):


 ?、偈亲钪庇^的算法


 ?、诔=柚谋鞠嗨贫扔?jì)算


 ?、酆芎玫亟鉀Q冷啟動(dòng)問(wèn)題,并且也不會(huì)囿于熱度的限制


  3、缺點(diǎn):


 ?、偃菀资芟抻趯?duì)文本、圖像、音視頻的內(nèi)容進(jìn)行描述的詳細(xì)程度


  ②過(guò)度專業(yè)化(over-specialisation),導(dǎo)致一直推薦給用戶內(nèi)容密切關(guān)聯(lián)的item,而失去了推薦內(nèi)容的多樣性。


  ③主題過(guò)于集中,驚喜度不足


  八、基于模型的推薦算法


  基于模型的推薦算法會(huì)涉及到一些機(jī)器學(xué)習(xí)的方法,如邏輯回歸、樸素貝葉斯分類器等?;谀P偷乃惴ㄓ捎诳焖佟?zhǔn)確,適用于實(shí)時(shí)性比較高的業(yè)務(wù)如新聞、廣告等,而若是需要這種算法達(dá)到更好的效果,則需要人工干預(yù)反復(fù)的進(jìn)行屬性的組合和篩選,也就是常說(shuō)的FeatureEngineering。而由于新聞的時(shí)效性,系統(tǒng)也需要反復(fù)更新線上的數(shù)學(xué)模型,以適應(yīng)變化。


  九、基于混合式的推薦算法


  現(xiàn)實(shí)應(yīng)用中,其實(shí)很少有直接用某種算法來(lái)做推薦的系統(tǒng)。在一些大的網(wǎng)站如Netflix,就是融合了數(shù)十種算法的推薦系統(tǒng)。我們可以通過(guò)給不同算法的結(jié)果加權(quán)重來(lái)綜合結(jié)果,或者是在不同的計(jì)算環(huán)節(jié)中運(yùn)用不同的算法來(lái)混合,達(dá)到更貼合自己業(yè)務(wù)的目的。


  十、推薦結(jié)果列表處理


  1、當(dāng)推薦算法計(jì)算得出推薦結(jié)果列表之后,我們往往還需要對(duì)結(jié)果進(jìn)行處理。比如當(dāng)推薦的內(nèi)容里包含敏感詞匯、涉及用戶隱私的內(nèi)容等等,就需要系統(tǒng)將其篩除;


  2、若多次推薦后用戶依然對(duì)某個(gè)物品毫無(wú)興趣,就需要將這個(gè)物品降低權(quán)重,調(diào)整排序;


  3、有時(shí)系統(tǒng)還要考慮話題多樣性的問(wèn)題,同樣要在不同話題中篩選內(nèi)容。


  十一、推薦結(jié)果評(píng)估


  當(dāng)一個(gè)推薦算法設(shè)計(jì)完成后,一般需要用查準(zhǔn)率(precision),查全率(recall),點(diǎn)擊率(CTR)、轉(zhuǎn)化率(CVR)、停留時(shí)間等指標(biāo)進(jìn)行評(píng)價(jià)。


  查準(zhǔn)率(precision):推薦給用戶且用戶喜歡的物品在推薦列表中的比重


  查全率(recall):推薦給用戶且用戶喜歡的物品在用戶列表中的比重


  點(diǎn)擊率(CTR):實(shí)際點(diǎn)擊了的物品/推薦列表中所有的物品


  轉(zhuǎn)化率(CVR):購(gòu)買(mǎi)了的物品/實(shí)際點(diǎn)擊了的物品


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/127653.html

相關(guān)文章

  • MongoDB指南---18、聚合命令

    摘要:上一篇文章指南下一篇文章為在集合上執(zhí)行基本的聚合任務(wù)提供了一些命令。也可以給傳遞一個(gè)查詢文檔,會(huì)計(jì)算查詢結(jié)果的數(shù)量對(duì)分頁(yè)顯示來(lái)說(shuō)總數(shù)非常必要共個(gè),目前顯示個(gè)。使用時(shí)必須指定集合和鍵。指定要進(jìn)行分組的集合。 上一篇文章:MongoDB指南---17、MapReduce下一篇文章: MongoDB為在集合上執(zhí)行基本的聚合任務(wù)提供了一些命令。這些命令在聚合框架出現(xiàn)之前就已經(jīng)存在了,現(xiàn)在(大多...

    why_rookie 評(píng)論0 收藏0
  • MongoDB指南---18、聚合命令

    摘要:上一篇文章指南下一篇文章為在集合上執(zhí)行基本的聚合任務(wù)提供了一些命令。也可以給傳遞一個(gè)查詢文檔,會(huì)計(jì)算查詢結(jié)果的數(shù)量對(duì)分頁(yè)顯示來(lái)說(shuō)總數(shù)非常必要共個(gè),目前顯示個(gè)。使用時(shí)必須指定集合和鍵。指定要進(jìn)行分組的集合。 上一篇文章:MongoDB指南---17、MapReduce下一篇文章: MongoDB為在集合上執(zhí)行基本的聚合任務(wù)提供了一些命令。這些命令在聚合框架出現(xiàn)之前就已經(jīng)存在了,現(xiàn)在(大多...

    raoyi 評(píng)論0 收藏0
  • 大學(xué)四年學(xué)計(jì)算機(jī)最值得看的技術(shù)書(shū),要讀就讀最好的書(shū),程序員精品書(shū)單!

    摘要:其他語(yǔ)言數(shù)據(jù)結(jié)構(gòu)跟算法一樣是在開(kāi)始寫(xiě)代碼的時(shí)候用得很少,都有著包裝好的現(xiàn)成東西供你使用,但同樣是面試和崗位上升會(huì)用得到,我就不說(shuō)數(shù)據(jù)結(jié)構(gòu)對(duì)代碼有多少好處,請(qǐng)記住一句話能夠?qū)崿F(xiàn)個(gè)功能和能夠最優(yōu)地實(shí)現(xiàn)個(gè)功能,是完全不同級(jí)別的要求。 ...

    liangzai_cool 評(píng)論0 收藏0
  • 聊聊一行讀研時(shí)最成功的投資

    摘要:大家好,我是一行今天給大家聊聊一行在讀研里最成功的投資,那必然是鍵盤(pán)邊上的每一本技術(shù)書(shū)啦畢竟股票基金這種投資即使賺了錢(qián),過(guò)段時(shí)間就得還回去,非常的神奇但是讀過(guò)的每一本技術(shù)書(shū)籍,都內(nèi)化在手指上了,只要給個(gè)鍵盤(pán),就能給它實(shí) ...

    CarterLi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<