『壹』 學IT的,寫了一個電影推薦系統,但是為什麼評分預測值大於五
全文以「預測電影評分」例子展開
r(i,j)=0則表明user_j沒有對movie_i 沒有評分,
推薦系統要做的就是通過預測user_j對這些movie {i|r(i,j)=0}的評分來給user_j 推薦其可能會喜歡的電影<預測評分較高的movie>
=======================================二、基於內容的推薦=======================================
對每個movie_i引入特徵x(i)=(x1, x2),這種特徵可能表明user對movie類型的偏好:浪漫or動作等
對於每個user引入一個參數theta,然後對評分矩陣的每列(對應一個user)做線性回歸,數據是{ (x(i), y(i,j)) |r(i,j)=1,for some j all i}
像機器學習一樣,x(i)添加個1變數x(i)=(1, x1, x2)
那麼對於未評分的movie_t,我們可以使用線性回歸訓練的參數theta與對應特徵x(t)做內積來得到其預測評分
對每個用戶都訓練一個參數theta_j,優化模型如下:
優化演算法:注意正則項是不約束x(i)=(1, x1, x2)中1對應的參數theta的第一項theta0,所以k=0與k=1,2分別對待
=======================================三、協同過濾=======================================
現在換個角度:如果知道theta for all user j,如何來預測x(i) = (x1, x2) all i
仍然可以使用線性回歸,為訓練每個x(i),需要評分矩陣的第i行數據{ (x(i), y(i,j)) |r(i,j)=1,for some i all j}
theta_j = (0, theta1, theta2) ;theta1=5說明user_j喜歡romance類movie, theta2=5說明user_j喜歡action類movie,只能有一個等於5哦,
我覺得也可以是:theta_j = (0, 4, 1) ;喜歡romance 4 action 1.
對應的優化:
協同過濾:交替優化theta與x
=========================================四、協同過濾演算法=======================================
優化:
優化:注意去掉了theta和x的添加項
=========================================五、實現細節補充=======================================
實現細節:
如果有user沒有對任何電影評分或者所有評分的電影都是0分,那麼所學習到的參數是零向量,
則預測都是0值,這是不合理的。通過 將評分矩陣減去其行均值再進行線性回歸來「避免」這種情況
=========================================六、一點思考==========================================
協同過濾那塊,同時優化theta、x,這樣得到的theta、x還有特定的意義<比如:x是否還表徵對影視類型的喜愛與否>沒有?
回歸中,在x數據上不添加1-feature是不是因為後來引入的平均值化;如果不是,那會對結果有什麼影響?
用x-feature來表徵一個movie,x-feature的各分量的可解釋性;應該會有一部分user應為演員的緣故有一些"偏愛"。
這里,講的"基於內容的推薦"與"協同過濾"跟以前對這兩個詞的認識/所指內容不同,查清楚、搞明白。
這周還會再更一篇關於此節課的演算法實現,會對上述部分問題做出回答。
『貳』 協同過濾,基於內容推薦有什麼區別
基於內容的推薦只考慮了對象的本身性質,將對象按標簽形成集合,如果你消費集合中的一個則向你推薦集合中的其他對象;
基於協同過濾的推薦演算法,充分利用集體智慧,即在大量的人群的行為和數據中收集答案,以幫助我們對整個人群得到統計意義上的結論,推薦的個性化程度高,基於以下兩個出發點:(1)興趣相近的用戶可能會對同樣的東西感興趣;(2)用戶可能較偏愛與其已購買的東西相類似的商品。也就是說考慮進了用戶的歷史習慣,對象客觀上不一定相似,但由於人的行為可以認為其主觀上是相似的,就可以產生推薦了。
『叄』 電影推薦系統包括什麼功能
電影推薦系統功能包括票房統計,評分推薦,電影類型推薦。
項目流程:首先獲取用戶id,刪除用戶之前存在的推薦結果,裝載樣本評分數據(不同用戶對不同電影的評分數據:userid、 movieid、rating、timestamp )。然後裝載電影信息數據(從movieinfo表中取出movieid、moviename、typelist)。
註:樣本評分數據和電影信息數據以.dat文件的形式被傳入HDFS中。
將樣本評分數據切分成3部分,60%用於訓練(訓練集)、20%用於校驗(校驗集)、20%用於測試(測試集)
訓練不同參數下的模型,並在校驗集中校驗,找出最佳模型。
設置參數(隱語義因子的個數、ALS的正則化參數、迭代次數),將設置的參數和訓練集作為參數傳入到spark MLlib庫的ALS()函數中,得到推薦模型,調整參數會得到多個不同的模型。
校驗方法:
將校驗集裝入模型中,得到用戶對電影的預測評分,計算預測評分和實際評分的均方根誤差,找出多個模型中均方根誤差最小的模型作為最佳模型。
用最佳模型預測測試集的評分,並計算預測評分和實際評分的均方根誤差,改進最佳模型。
用最佳模型預測某用戶對電影信息數據集中的所有電影的評分,選出評分最高的前十部電影。將推薦結果存入資料庫recommendresult表中
————————————————
版權聲明:本文為CSDN博主「塞奈」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_44459219/article/details/118416465
『肆』 電影推薦系統中電影類型怎麼弄
建軍大業
9.4分加入收藏
主演:劉燁朱亞文黃志忠王景春
導演:劉偉強
類型:動作戰爭其它
時長:127分鍾
年代:2017
地區:內地
語言:漢語普通話
簡介
『伍』 演算法的健壯性是其主要評價之一對嗎
演算法的健壯性是其主要評價之一。
健壯性是指標之一。評價一個演算法好壞的基本原則之一是演算法的健壯性,所謂的健壯性指的是演算法能對意外情況做出適當反映或進行相應處理,所以根據這個定義,健壯性越好的演算法,其運行效果就越好。
演算法的由來:
演算法最先被知道的就是推薦演算法。研究起源於20世紀90年代,由美國明尼蘇達大學GroupLens研究小組最先開始研究,他們想要製作一個名為Movielens的電影推薦系統,從而實現對用戶進行電影的個性化推薦。
首先研究小組讓用戶對自己看過的電影進行評分,然後小組對用戶評價的結果進行分析,並預測出用戶對並未看過的電影的興趣度,從而向他們推薦從未看過並可能感興趣的電影。
此後,Amazon開始在網站上使用推薦系統,在實際中對用戶的瀏覽購買行為進行分析,嘗試對曾經瀏覽或購買商品的用戶進行個性化推薦。根據 enture Beat的統計,這一舉措將該網站的銷售額提高了35%自此之後,個性化推薦的應用越來越廣泛。
『陸』 協同過濾的演算法細分
這是最早應用協同過濾系統的設計,主要是解決Xerox公司在Palo Alto的研究中心資訊過載的問題。這個研究中心的員工每天會收到非常多的電子郵件卻無從篩選分類,於是研究中心便發展這項實驗性的郵件系統來幫助員工解決這項問題。 其運作機制大致如下:
個人決定自己的感興趣的郵件類型;個人旋即隨機發出一項資訊需求,可預測的結果是會收到非常多相關的文件;從這些文件中個人選出至少三筆資料是其認為有用、會想要看的;系統便將之記錄起來成為個人郵件系統內的過濾器,從此以後經過過濾的文件會最先送達信箱;以上是協同過濾最早的應用,接下來的里程碑為GroupLens。 這個系統主要是應用在新聞的篩選上,幫助新聞的閱聽者過濾其感興趣的新聞內容,閱聽者看過內容後給一個評比的分數,系統會將分數記錄起來以備未來參考之用,假設前提是閱聽者以前感興趣的東西在未來也會有興趣閱聽,若閱聽者不願揭露自己的身分也可以匿名進行評分。 和Tapestry不同之處有兩點,首先,Tapestry專指一個點(如一個網站內、一個系統內)的過濾機制;GroupLens則是跨點跨系統的新聞過濾機制。再來,Tapestry不會將同一筆資料的評比總和起來;GroupLens會將同一筆資料從不同使用者得到的評比加總。
GroupLens具有以下特點:開放性:所有的新聞閱聽者皆可使用,雖然系統委託Better Bit Bureau設計給分的系統,但若有不同的評分機制也適用於GroupLens。方便性:給分並不是一件困難的事情且溝通上非常方便,評分結果容易詮釋。規模性:有可能發展成大規模的系統,一旦發展成大規模,儲存空間與計算成本問題顯得相當棘手。隱密性:如果使用者不想讓別人知道他是誰,別人就不會知道。由此可以看出,現今網路各個推薦系統的雛形已然形成,在GroupLens之後還有性質相近的MovieLens,電影推薦系統;Ringo,音樂推薦系統;Video Recommender,影音推薦系統;以及Jster,笑話推薦系統等等。乃至於今日的YouTube、aNobii皆是相似性值得網路推薦平台,較不同的是經過時間推移,網路越來越發達,使用者越來越多,系統也發展得越來越嚴密。 最著名的電子商務推薦系統應屬亞馬遜網路書店,顧客選擇一本自己感興趣的書籍,馬上會在底下看到一行「Customer Who Bought This Item Also Bought」,亞馬遜是在「對同樣一本書有興趣的讀者們興趣在某種程度上相近」的假設前提下提供這樣的推薦,此舉也成為亞馬遜網路書店為人所津津樂道的一項服務,各網路書店也跟進做這樣的推薦服務如台灣的博客來網路書店。 另外一個著名的例子是Facebook的廣告,系統根據個人資料、周遭朋友感興趣的廣告等等對個人提供廣告推銷,也是一項協同過濾重要的里程碑,和前二者Tapestry、GroupLens不同的是在這里雖然商業氣息濃厚同時還是帶給使用者很大的方便。 以上為三項協同過濾發展上重要的里程碑,從早期單一系統內的郵件、文件過濾,到跨系統的新聞、電影、音樂過濾,乃至於今日橫行互聯網的電子商務,雖然目的不太相同,但帶給使用者的方便是大家都不能否定的。
『柒』 電影推薦系統是用java寫還是paython寫好一點
我覺得用java好一些。
java是一門面向對象的編程語言。java語言具有功能強大和簡單易用兩個特徵,具有簡單性、面向對象、分布式等特點,可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Python目前的應用領域比較廣泛,目前Python的主要方向分為後端開發、數據分析、網路爬蟲、機器學習等。
『捌』 推薦演算法綜述
推薦系統的目的是通過推薦計算幫助用戶從海量的數據對象中選擇出用戶最有可能感興趣的對象。涉及三個基本內容:目標用戶、待推薦項目以及推薦演算法,基本流程為:描述為用戶模型構建、項目模型建立以及推薦演算法處理三個基本流程;
為了能夠為用戶提供准確的推薦服務,推薦系統需要為用戶構建用戶模型,該模型能夠反映用戶動態變化的多層次興趣偏好,有助於推薦系統更好的理解用戶的特徵和需求。構建用戶模型通常需要經歷三個流程:用戶數據收集,用戶模型表示以及用戶模型更新。
(1)用戶數據收集:用戶數據是用戶模型構建的基礎,用戶數據收集的方式一般有顯示方式獲取和隱式方式獲取兩種。
顯示方式獲取的數據是用戶特徵屬性和興趣偏好的直接反映,所獲得的信息數據是較為客觀全面的,比如用戶在注冊時包含的性別、年齡等信息可以直接表示出用戶的基本人口學信息和興趣信息,用戶對項目的評分可以反映出用戶的偏好。但顯示獲取的方式最大的缺陷是其實時性較差,並且具有很強的侵襲性。
隱式方式獲取用戶數據是在不幹擾用戶的前提下,採集用戶的操作行為數據,並從中挖掘出用戶的興趣偏好。用戶的很多操作行為都能反映出用戶的喜好,比如用戶瀏覽網頁的速度、用戶查詢的關鍵字等,推薦系統在不影響用戶使用系統的情況下,通過行為日誌挖掘出用戶的偏好。隱式獲取方式由於具有較好的實時性和靈活性和較弱的侵襲性,己經成為推薦系統中主要的用戶數據採集方式。
(2)用戶模型表示:用戶模型是從用戶數據中歸納出的推薦系統所理解的用戶興趣偏好的結構化形式。
a 基於內容關鍵詞表示;
b 基於評分矩陣表示;
(3)用戶模型更新:推薦系統面臨的問題之一是興趣漂移,興趣漂移的根本原因在於用戶的興趣會隨時間發生改變。為了使用戶模型夠准確的代表用戶的興趣,推薦系統需要根據最新的用戶數據對用戶模型進行更新。
目前項目模型主要通過基於內容和基於分類這兩類方式來建立。基於內容的方式是以項目本身內容為基礎,向量空間模型表示是目前御用最為廣泛的基於內容的方式。
基於分類的方式是根據項目的內容或者屬性,將項目劃分到一個或者幾個類別中,利用類別信息來表示項目,這種方法可以很方便地將項目推薦給對某一類別感興趣的用戶。常見的分類演算法有樸素貝葉斯演算法和KNN分類演算法等。
推薦系統實現的核心是其使用的推薦演算法。針對不同的使用環境及其系統的數據特徵,選取不同的推薦演算法,可以在本質上提高推薦系統的推薦效果。根據不同的分類標准,推薦演算法出現了有很多不同的分類方法,本文採用了比較普遍的分類方法。
推薦系統通常被分為基於內容的推薦演算法、協同過濾推薦演算法以及混合模型推薦演算法三大類。
基於內容的推薦演算法,其本質是對物品或用戶的內容進行分析建立屬性特徵。系統根據其屬性特徵,為用戶推薦與其感興趣的屬性特徵相似的信息。演算法的主要思想是將與用戶之前感興趣的項目的內容相似的其他項目推薦給用戶。
CBF(Content-based Filter Recommendations)演算法的主要思想是將與用戶之前感興趣的項目的內容相似的其他項目推薦給用戶,比如用戶喜歡Java開發的書籍,則基於內容過濾演算法將用戶尚未看過的其他Java開發方面的書籍推薦給用戶。因此,該推薦演算法的關鍵部分是計算用戶模型和項目模型之間的內容相似度,相似度的計算通常採用餘弦相似性度量。
基於內容的推薦過程一般分為以下三個模塊:
(1)特徵提取模塊:由於大多數物品信息是非結構化的,需要為每個物品(如產品、網頁、新聞、文檔等)抽取出一些特徵屬性,用某一恰當的格式表示,以便下一階段的處理。如將新聞信息表示成關鍵詞向量,此種表示形式將作為下一模塊(屬性特徵學習模塊)的輸入。
(2)特徵學習模塊:通過用戶的歷史行為數據特徵,機器學習出用戶的興趣特徵模型。本模塊負責收集代表用戶喜好的數據信息,並泛化這些數據,用於構建用戶特徵模型。通常使用機器學習的泛化策略,來將用戶喜好表示為興趣模型。
(3)推薦模塊:該模塊利用上一階段得到的用戶特徵模型,通過對比用戶興趣模型與帶推薦物品的特徵相似度,為用戶推薦與其興趣相似度較高的物品,從而達到個性化推薦的目的。該模塊一般採用計算用戶興趣向量與待推薦物品特徵向量的相似度來進行排序,將相似度較高的物品推薦給相應用戶。計算相似度有多種方法,如皮爾遜相關系數法、夾角餘弦法、Jaccard相關系數法等。
協同過濾演算法(Collaborative Filtering)是於內容無關的,即不需要額外獲取分析用戶或物品的內容屬性特徵。是基於用戶歷史行為數據進行推薦的演算法。其通過分析用戶與物品間的聯系來尋找新的用戶與物品間的相關性。
該演算法演算法通常有兩個過程,一個過程是預測,另一個過程是推薦。主流的協同過濾演算法包括三種:基於用戶的協同過濾(User-Based Collaborative Filtering,UBCF)、基於項目的協同過濾(Item-Based Collaborative Filtering, IBCF)和基於模型的協同過濾(Model-Based Collaborative Filtering, MBCF)
(1)基於用戶的協同過濾演算法
基於用戶的協同過濾推薦演算法,先通過用戶歷史行為數據找到和用戶u相似的用戶,將這些用戶感興趣的且u沒有點擊過的物品推薦給用戶。
演算法主要包括以下兩個步驟:
(1)找到與目標用戶喜好相似的鄰居用戶集合。
(2)在鄰居用戶集合中,為用戶推薦其感興趣的物品。
UBCF的基本思想是將與當前用戶有相同偏好的其他用戶所喜歡的項目推薦給當前用戶。一個最典型的例子就是電影推薦,當我們不知道哪一部電影是我們比較喜歡的時候,通常會詢問身邊的朋友是否有好的電影推薦,詢問的時候我們習慣於尋找和我們品味相同或相似的朋友。
(2)基於物品的協同過濾演算法
基於物品的協同過濾演算法(Item-based Collaborative Filtering)其主要思想是,為用戶推薦那些與他們之前喜歡或點擊過的物品相似的物品。不過基於物品的協同過濾演算法並不是利用物品的內容屬性特徵來計算物品之間的相似度的。該類演算法是利用用戶的歷史行為數據計算待推薦物品之間的相似度。在該類演算法中,如果喜歡物品A的用戶大都也喜歡物品B,那麼就可以認為物品A和物品B之間的相似度很高。
演算法分為以下兩個步驟:
(1)根據用戶歷史行為數據,計算物品間的相似度。
(2)利用用戶行為和物品間的相似度為用戶生成推薦列表。
IBCF演算法是亞馬遜在2003年發表的論文中首次提出,該演算法的基本思想是根據所有用戶的歷史偏好數據計算項目之間的相似性,然後把和用戶喜歡的項目相類似的並且用戶還未選擇的其他項目推薦給用戶,例如,假設用戶喜歡項目a,則用戶喜歡與項目a高度相似且還未被用戶選擇的項目b的可能性非常大,因此將項目b推薦給用戶。
UBCF和IBCF都屬於基於內存的協同過濾演算法,這類演算法由於充分發揮了用戶的評分數據,形成全局推薦,因此具有較高的推薦質量。但隨著用戶和項目的規模增長,這類演算法的計算時間大幅上升,使得系統的性能下降。針對該問題,研究人員提出將數據挖掘中的模型和CF演算法結合,提出了基於模型的協同過濾演算法(MBCF) 。
MBCF演算法利用用戶歷史評分數據建立模型,模型建立的演算法通常有奇異值分解、聚類演算法、貝葉斯網路、關聯規則挖掘等,且通常是離線完成。由於MBCF通常會對原始評分值做近似計算,通過犧牲一定的准確性來換取系統性能,因此MBCF的推薦質量略差於UBCF和IBCF。
由於基於內容的推薦演算法和協同過濾推薦演算法都有其各自的局限性,混合推薦演算法應運而生。混合推薦演算法根據不同的應用場景,有多
種不同的結合方式,如加權、分層和分區等。
目前使用的混合推薦演算法的思想主要可以分成以下幾類:
(1)多個推薦演算法獨立運行,獲取的多個推薦結果以一定的策略進行混合,例如為每一個推薦結果都賦予一個權值的加權型混合推薦演算法和將各個推薦結果取TOP-N的交叉混合推薦演算法。
(2)將前一個推薦方法產出的中間結果或者最終結果輸出給後一個推薦方法,層層遞進,推薦結果在此過程中會被逐步優選,最終得到一個精確度比較高的結果。
(3)使用多種推薦演算法,將每種推薦演算法計算過程中產生的相似度值通過權重相加,調整每個推薦演算法相似度值的權重,以該混合相似度值為基礎,選擇出鄰域集合,並結合鄰域集合中的評估信息,得出最優的推薦結果。
BP (Back Propagation)神經網路是目前應用最廣泛的神經網路模型之一,是一種按誤差逆傳播演算法訓練的多層前饋網路。
BP神經網路模型包括輸入層、隱藏層和輸出層,每一層由一個或多個神經元組成,其結構圖如圖2-3所示。BP神經網路擁有很強的非線性映射能力和自學習、自適應能力,網路本身結構的可變性,也使其十分靈活,一個三層的BP神經網路能夠實現對任意非線性函數進行逼近。
BP神經網路的訓練過程通常分為3個過程,依次分別為數據初始化過程、正向推演計算過程以及反向權重調整過程。數據初始化是BP神經網路能夠進行有效訓練的前提,該過程通常包括輸入數據進行歸一化處理和初始權重的設置;正向推演計算是數據沿著網路方向進行推演計算;反向權重調整則是將期望輸出和網路的實際輸出進行對比,從輸出層開始,向著輸入層的方向逐層計算各層中各神經元的校正差值,調整神經元的權重。正向推演計算和反向權重調整為對單個訓練樣本一次完整的網路訓練過程,經過不斷的訓練調整,網路的實際輸出越來越趨近於期望輸出,當網路輸出到達預期目標,整個訓練過程結束。
TF-IDF(Term Frequency-Inverse Document Frequency,詞頻一逆文檔)是文本處理中常用的加權技術,廣泛應用於信息檢索、搜索引擎等領域。
TF-IDF的主要思想是:如果一個關鍵詞在文檔中出現的頻率很高,而在其他文檔中出現次數較少,則該關鍵詞被認為具有較強的代表性,即該關鍵詞通過TF-IDF計算後有較高的權重。
TextRank演算法,是一種用於文本關鍵詞排序的演算法,頁排序演算法PageRank。
PageRank基本思想是將每個網頁看成一個節點,網頁中的鏈接指向看成一條有向邊,一個網頁節點的重要程度取決於鏈接指向該網頁節點的其他節點的數量和重要權值,該過程描述如下:讓每一個網頁對其所包含的鏈接指向的網頁進行迭代投票,每次迭代投票過程中票的權重取決於網頁當前擁有的票數,當投票結果收斂或者達到指定的迭代次數時,每個網頁所獲得票數即為網頁重要程度權值。
TextRank演算法相比於TF-IDF最大的優點是TextRank是一種無監督的學習,因此不會受限於文本的主題,並且無需大規模的訓練集,可以針對單一文本進行快速的關鍵詞的權重計算。
『玖』 電影推薦系統沒有管理員可以嗎
不可以。管理者是管理行為過程的主體,在推薦系統中需要維持秩序,沒有管理員是不可以的,因為管理員可以使系統正常運行,從而得到更多用戶的喜愛。
『拾』 推薦系統在國內有哪些實際應用
主要是電子購物網站,最近興起的新聞推薦,還有音樂推薦,電影推薦,廣告推薦等等