色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

推薦系統是什么?如何構建一個推薦系統?推薦系統與AI有什么關系?

Linux愛好者 ? 來源:未知 ? 作者:易水寒 ? 2018-09-09 11:16 ? 次閱讀

許多人把推薦系統視為一種神秘的存在,他們覺得推薦系統似乎知道我們的想法是什么。Netflix 向我們推薦電影,還有亞馬遜向我們推薦該買什么樣的商品。推薦系統從早期發展到現在,已經得到了很大的改進和完善,以不斷地提高用戶體驗。盡管推薦系統中許多都是非常復雜的系統,但其背后的基本思想依然十分簡單。

推薦系統是什么?

推薦系統是信息過濾系統的一個子類,它根據用戶的偏好和行為,來向用戶呈現他(或她)可能感興趣的物品。推薦系統會嘗試去預測你對一個物品的喜好,以此向你推薦一個你很有可能會喜歡的物品。

如何構建一個推薦系統?

現在已經有很多種技術來建立一個推薦系統了,我選擇向你們介紹其中最簡單,也是最常用的三種。他們是:一,協同過濾;二,基于內容的推薦系統;三,基于知識的推薦系統。我會解釋前面的每個系統相關的弱點,潛在的缺陷,以及如何去避免它們。最后,我在文章末尾為你們準備了一個推薦系統的完整實現。

協同過濾

協同過濾,是首次被用于推薦系統上的技術,至今仍是最簡單且最有效的。協同過濾的過程分為這三步:一開始,收集用戶信息,然后以此生成矩陣來計算用戶關聯,最后作出高可信度的推薦。這種技術分為兩大類:一種基于用戶,另一種則是基于組成環境的物品。

基于用戶的協同過濾

基于用戶的協同過濾本質上是尋找與我們的目標用戶具有相似品味的用戶。如果Jean-Pierre和Jason曾對幾部電影給出了相似的評分,那么我們認為他們就是相似的用戶,接著我們就可以使用Jean Pierre的評分來預測Jason的未知評分。例如,如果Jean-Pierre喜歡星球大戰3:絕地武士歸來和星球大戰5:帝國反擊戰,Jason也喜歡絕地武士歸來,那么帝國反擊戰對Jason來說是就是一個很好的推薦。一般來說,你只需要一小部分與Jason相似的用戶來預測他的評價。

在下表中,每行代表一個用戶,每列代表一部電影,只需簡單地查找這個矩陣中行之間的相似度,就可以找到相似的用戶了。

然而,基于用戶的協同過濾在實現中存在一些以下問題:

用戶偏好會隨時間的推移而改變,推薦系統生成的許多推薦可能會隨之變得過時。

用戶的數量越多,生成推薦的時間就越長。

基于用戶會導致對托攻擊敏感,這種攻擊方法是指惡意人員通過繞過推薦系統,使得特定物品的排名高于其他物品。(托攻擊即Shilling Attack,是一種針對協同過濾根據近鄰偏好產生推薦的特點,惡意注入偽造的用戶模型,推高或打壓目標排名,從而達到改變推薦系統結果的攻擊方式)

基于物品的協同過濾

基于物品的協同過濾過程很簡單。兩個物品的相似性基于用戶給出的評分來算出。讓我們回到Jean-Pierre與Jason的例子,他們兩人都喜歡“絕地武士歸來”和“帝國反擊戰”。 因此,我們可以推斷,喜歡第一部電影的大多數用戶也可能會喜歡第二部電影。所以,對于喜歡“絕地武士歸來”的第三個人Larry來說,”帝國反擊戰“的推薦將是有意義的。

所以,這里的相似度是根據列而不是行來計算的(與上面的用戶-電影矩陣中所見的不同)。基于物品的協同過濾常常受到青睞,因為它沒有任何基于用戶的協同過濾的缺點。首先,系統中的物品(在這個例子中物品就是電影)不會隨著時間的推移而改變,所以推薦會越來越具有關聯性。此外,通常推薦系統中的物品都會比用戶少,這減少了推薦的處理時間。最后,考慮到沒有用戶能夠改變系統中的物品,這種系統要更難于被欺騙或攻擊。

基于內容的推薦系統

在基于內容的推薦系統中,元素的描述性屬性被用來構成推薦。“內容Content”一詞指的就是這些描述。舉個例子,根據Sophie的聽歌歷史,推薦系統注意到她似乎喜歡鄉村音樂。因此,系統可以推薦相同或相似類型的歌曲。更復雜的推薦系統能夠發現多個屬性之間的關系,從而產生更高質量的推薦。例如,音樂基因組計劃(Music Genome Project)根據450個不同的屬性將數據庫中的每支歌曲進行分類。該項目為Pandor的歌曲推薦提供技術支持。(Pandor提供在線音樂流媒體服務,類似Spolify)

基于知識的推薦系統

基于知識的推薦系統在物品購買頻率很低的情況下特別適用。例如房屋、汽車、金融服務甚至是昂貴的奢侈品。在這種情況下,推薦的過程中常常缺乏商品的評價。基于知識的推薦系統不使用評價來作出推薦。相反,推薦過程是基于顧客的需求和商品描述之間的相似度,或是對特定用戶的需求使用約束來進行的。這使得這種類型的系統是獨一無二的,因為它允許顧客明確地指定他們想要什么。關于約束,當應用時,它們大多是由該領域的專家實施的,這些專家從一開始就知道該如何實施這些約束。例如,當用戶明確指出在一個特定的價格范圍內尋找一個家庭住宅時,系統必須考慮到這個用戶規定的約束。

推薦系統中的冷啟動問題

推薦系統中的主要問題之一是最初可用的評價數量相對較小。當新用戶還沒有給電影打分,或者一部新的電影被添加到系統中時,我們該怎么做呢?在這種情況下,應用傳統的協同過濾模型會更加困難。盡管基于內容和基于知識的推薦算法在面臨冷啟動問題時比協同過濾更具有魯棒性,但基于內容和基于知識并不總是可用的。因此,一些新方法,比如混合系統,已經被設計出用來解決這個問題了。

混合推薦系統

文章到目前為止所介紹的不同類型的推薦系統都各有優劣,他們根據不同的數據給出推薦。 一些推薦系統,如基于知識的推薦系統,在數據量有限的冷啟動環境下最為有效。其他系統,如協同過濾,在有大量數據可用時則更加有效。在多數情況下,數據都是多樣化的,我們可以為同一任務靈活采用多種方法。 因此,我們可以結合多種不同技術的推薦來提高整個系統的推薦質量。許多的組合性技術已經被探索出來了,包括:

加權:為推薦系統中的每種算法都賦予不同的權重,使得推薦偏向某種算法

交叉:將所有的推薦結果集合在一起展現,沒有偏重

增強:一個系統的推薦將作為下一個系統的輸入,循環直至最后一個系統為止

切換:隨機選擇一種推薦方法

混合推薦系統中的一個最有名的例子是于2006至2009年舉行的Netflix Price算法競賽。這個競賽的目標是將Netflix的電影推薦系統Cinematch的算法準確率提高至少10%。Bellkor’s Pragmatix Chaos團隊用一種融合了107種不同算法的方案將Cinematch系統的推薦準確率提高了10.06%,并最終獲得了100萬美元獎金。你可能會對這個例子中的準確率感到好奇,準確率其實就是對電影的預測評分與實際評分接近程度的度量。

推薦系統與AI

推薦系統常用于人工智能領域。推薦系統的能力 – 洞察力,預測事件的能力和突出關聯的能力常被用于人工智能中。另一方面,機器學習技術常被用于實現推薦系統。例如,在Arcbees,我們使用了神經網絡和來自IMdB的數據成功建立了一個電影評分預測系統。神經網絡可以快速地執行復雜的任務并輕松地處理大量數據。通過使用電影列表作為神經網絡的輸入,并將神經網絡的輸出與用戶評分進行比較,神經網絡可以自我學習規則以預測特定用戶的未來評分。

專家建議

在我讀過許多資料中,我注意到有兩個很重要的建議經常被推薦系統領域內的專家提及。第一,基于用戶付費的物品進行推薦。當一個用戶有購買意愿時,你就可以斷定他的評價一定是更具有相關性與準確的。第二,使用多種算法總是比改進一種算法要好。Netflix Prize競賽就是一個很好的例子。

實現一個基于物品的推薦系統

下面的代碼演示了實現一個基于物品的推薦系統是多么的簡單與快速。所使用的語言是Python,并使用了Pandas與Numpy這兩個在推薦系統領域中最流行的庫。所使用的數據是電影評分,數據集來自MovieLens。

第一步:尋找相似的電影

1.讀取數據

import pandasaspd

import numpyasnp

ratings_cols=['user_id','movie_id','rating']

ratings=pd.read_csv('u.data',sep='t',names=ratings_cols,usecols=range(3))

movies_cols=['movie_id','title']

movies=pd.read_csv('u.item',sep='|',names=movies_cols,usecols=range(2))

ratings=pd.merge(ratings,movies)

2.構造用戶的電影矩陣

movieRatings = ratings.pivot_table(index=['user_id'],columns=['title'],values='rating')

3.選擇一部電影并生成這部電影與其他所有電影的相似度

starWarsRatings=movieRatings['Star Wars (1977)']

similarMovies=movieRatings.corrwith(starWarsRatings)

similarMovies=similarMovies.dropna()

df=pd.DataFrame(similarMovies)

4.去除不流行的電影以避免生成不合適的推薦

ratingsCount=100

movieStats=ratings.groupby('title').agg({'rating':[np.size,np.mean]})

popularMovies=movieStats['rating']['size']>=ratingsCount

movieStats[popularMovies].sort_values([('rating','mean')],ascending=False)[:15]

5.提取與目標電影相類似的流行電影

df=movieStats[popularMovies].join(pd.DataFrame(similarMovies,columns=['similarity']))

df.sort_values(['similarity'],ascending=False)[:15]

第二步:基于用戶的所有評分做出推薦

1.生成每兩部電影之間的相似度,并只保留流行電影的相似度

userRatings=ratings.pivot_table(index=['user_id'],columns=['title'],values='rating')

corrMatrix=userRatings.corr(method='pearson',min_periods=100)

2.對于每部用戶看過并評分過的電影,生成推薦(這里我們選擇用戶0)

myRatings=userRatings.loc[0].dropna()

simCandidates=pd.Series()

foriinrange(0,len(myRatings.index)):

#取出與評分過電影相似的電影

sims=corrMatrix[myRatings.index[i]].dropna()

#以用戶對這部電影的評分高低來衡量它的相似性

sims=sims.map(lambdax:x *myRatings[i])

#將結果放入相似性候選列表中

simCandidates=simCandidates.append(sims)

simCandidates.sort_values(inplace=True,ascending=False)

3.將所有相同電影的相似度加和

simCandidates=simCandidates.groupby(simCandidates.index).sum()

simCandidates.sort_values(inplace=True,ascending=False)

4.只保留用戶沒有看過的電影

filteredSims = simCandidates.drop(myRatings.index)

如何更進一步?

在上面的實例中,Pandas與我們的CPU足以處理MovieLens的數據集。然而,當數據集變得更龐大時,處理的時間也會變得更加漫長。因此,你應該轉為使用具有更強大處理能力的解決方案,如Spark或MapReduce。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10874

    瀏覽量

    212108
  • AI
    AI
    +關注

    關注

    87

    文章

    31043

    瀏覽量

    269391
  • 推薦系統
    +關注

    關注

    1

    文章

    43

    瀏覽量

    10086

原文標題:推薦系統概述

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式系統、單片機及ZigBee之間具體什么關系

    嵌入式系統、單片機及ZigBee之間具體什么關系,求助
    發表于 03-04 10:28

    求教:linux系統和WEB服務器什么關系?WEB服務器和網頁又是什么關系?

    最近在學習arm上linux系統移植以及WEB服務器,幾個問題非常非常困惑,希望大家能幫忙解答下。1.linux操作系統和web服務器屬于什么關
    發表于 10-10 20:20

    FTW影響系統時鐘請問這兩者之間什么關系

    您好我現在要用AD9957的pll和DDS。pll可以鎖定,但是DDS中FTW的改變影響PLL系統時鐘的輸出。這兩者之間什么關系
    發表于 09-10 10:34

    快速構建并迭代你的第一個系統

    進行中轉。? 更多…雖然我在反垃圾郵件領域已經定的經驗,卻依然難以保證每次都能順利在上面的方向中進行抉擇。如果你在此領域并不是專家,難度會變得更大。如果在
    發表于 12-18 09:11

    請問最小系統板電源供電的各個電壓間什么關系

    針對單片機而言,他們分別是什么?各個電壓之間什么關系?(需要分別用電阻、電容、電感器件隔離嗎?)各自的電壓分別是多少?請知曉的詳細解釋下,順便他人學習,(網上百度的我看了不少),或者請告訴我從哪
    發表于 10-09 02:25

    請問ucosiii系統定義中斷函數和裸機中的中斷函數是什么關系

    請問ucosiii中的系統定義中斷函數和裸機中的中斷函數是什么關系,二者是怎么聯系起來的????????比如ucos中斷(void)BSP_IntHandlerEXTI1(void)和裸機中斷EXTI1_IRQHandler()
    發表于 04-23 04:11

    基于Buildroot的Linux系統構建技巧經驗分享

    導讀:嵌入式Linux開發大體上可以分為三部分BSP開發、系統集成、應用開發,般公司開發會有不同的人員分別負責這三大的部分。就本文談到Linux
    發表于 05-02 07:00

    電子電氣架構、車載操作系統、基礎軟件平臺等之間什么關系

    電子電氣架構、車載操作系統、基礎軟件平臺等之間什么關系?智能汽車軟件的范圍、軟硬件升級、SOA的內涵詳細介紹SOA的實現細節是什么?
    發表于 09-26 08:25

    負反饋PID調節系統之電流環、速度環和位置環什么關系

    負反饋PID調節系統之電流環、速度環和位置環什么關系
    發表于 10-13 09:05

    微型微控制器與強大的人工智能(AI)世界什么關系

    AI設計主要參與方都是功能強大的CPU,GPU和FPGA等。微型微控制器與強大的人工智能(AI)世界什么關系?但隨著AI從云到邊緣的發展,
    發表于 11-01 08:55

    人工智能、機器學習、深度學習什么關系

    詞,這兩年出現的頻率越來越高:人工智能(AI),機器學習(ML),深度學習(DL),到底他們哥仨是什么關系
    的頭像 發表于 06-08 15:19 ?1.2w次閱讀

    MES系統價格與選型什么關系

    太大不知如何進行選擇,其實這就與MES系統的選型有著直接關系,下面小編就來和大家聊聊關于MES系統價格與選型究竟有什么關系
    發表于 11-22 08:00 ?2次下載

    嵌入式系統ARM和PLC及80C51單片機的用途和區別是什么?什么關系

    本文檔的主要內容詳細介紹的是嵌入式系統ARM、PLC、80c51單片機之間的用途區別是什 么? 它們之間什么關系嗎?
    發表于 07-11 17:40 ?0次下載
    嵌入式<b class='flag-5'>系統</b>ARM和PLC及80C51單片機的用途和區別是什么?<b class='flag-5'>有</b><b class='flag-5'>什么關系</b>

    USB接口與雷電接口什么關系

    USB接口和雷電接口什么關系
    的頭像 發表于 01-13 16:34 ?1.8w次閱讀

    如何構建基于RFID的考勤系統

    在這篇文章中,我們將構建基于RFID的考勤系統,該系統可以記錄給定時間窗口內 12 名學生/教職員工的出勤情況,該
    的頭像 發表于 07-27 10:30 ?1116次閱讀
    如何<b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>基于RFID的考勤<b class='flag-5'>系統</b>?
    主站蜘蛛池模板: 亚洲日韩中文字幕区| 天天狠狠弄夜夜狠狠躁·太爽了| 嫩草视频在线观看免费| 亚洲 欧美 国产在线视频| 超碰caoporn| 秋霞网在线伦理免费| YELLOW视频在线观看最新 | 婬香婬色天天视频| 好看AV中文字幕在线观看| 亚洲精品久久一区二区三区四区| 国产精品久久久久久无码专区 | 国产高清美女一级a毛片久久w | 欧美高清一区二区三| 99日精品欧美国产| 漂亮妈妈中文字幕版| 成年视频xxxxxx在线| 四虎亚洲中文字幕永久在线| 二级毛片免费观看全程| 婷婷久久综合九色综合伊人色| 国产精品大陆在线视频| 午夜视频体内射.COM.COM| 国精产品一区一区三区有限公司 | 久久99热只有频精品| 在镜头里被CAO翻了H| 免费视频xxx| 德国美女密密麻麻浓毛| 午夜神器18以下不能进免费| 好男人好资源在线观看免费视频| 一个人免费完整在线观看影院| 久久伊人青青| 把腿张开JI巴CAO死你H教室| 视频在线免费观看| 接吻吃胸摸下面啪啪教程| 1313久久国产午夜精品理论片| 欧美在线亚洲综合国产人| 国产精品爽爽久久久久久蜜桃网站 | 国产99久久九九免费精品无码 | 亚洲日韩有码无线免费| 毛片在线网址| 国产福利高清在线视频| 亚洲永久精品ww47app|