2019年idea版大數(shù)據(jù)項目之推薦系統(tǒng)5電影設(shè)計_第1頁
2019年idea版大數(shù)據(jù)項目之推薦系統(tǒng)5電影設(shè)計_第2頁
2019年idea版大數(shù)據(jù)項目之推薦系統(tǒng)5電影設(shè)計_第3頁
2019年idea版大數(shù)據(jù)項目之推薦系統(tǒng)5電影設(shè)計_第4頁
2019年idea版大數(shù)據(jù)項目之推薦系統(tǒng)5電影設(shè)計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

電影推薦系統(tǒng)設(shè)計講師:武晟然項目框架數(shù)據(jù)源解析統(tǒng)計推薦模塊離線推薦模塊實時推薦模塊基于內(nèi)容的推薦模塊主要內(nèi)容項目框架大數(shù)據(jù)處理流程系統(tǒng)模塊設(shè)計項目系統(tǒng)架構(gòu)項目數(shù)據(jù)流圖數(shù)據(jù)應(yīng)用數(shù)據(jù)計算數(shù)據(jù)存儲數(shù)據(jù)采集數(shù)據(jù)源日志數(shù)據(jù)關(guān)系數(shù)據(jù)圖片視頻KafkaSqoopFlumeScribeETL工具結(jié)構(gòu)化數(shù)據(jù)半結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)HDFSMapReduce可視化EchartsD3HBaseCassandraGreenPlumOracleSparkFlinkStormMahout業(yè)務(wù)應(yīng)用BI分析Tableau數(shù)據(jù)生命周期大數(shù)據(jù)處理流程我們的目標(biāo)電影推薦網(wǎng)站實時推薦服務(wù)基于模型的推薦基于內(nèi)容的推薦協(xié)同過濾的推薦離線推薦服務(wù)實時個性化推薦離線個性化推薦統(tǒng)計推薦相似性推薦評分標(biāo)簽檢索離線統(tǒng)計服務(wù)內(nèi)容檢索服務(wù)系統(tǒng)模塊設(shè)計離線在線近線項目系統(tǒng)架構(gòu)log系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)源解析電影信息用戶評分信息電影標(biāo)簽信息movies.csvratings.csvtags.csv電影ID(MID)電影名稱(NAME)電影描述(DESCRI)電影時長(TIMELONG)發(fā)行時間(ISSUE)拍攝時間(SHOOT)電影語言(LANGUAGE)電影類別(DIRECTOR)電影演員(ACTORS)電影導(dǎo)演(DIRECTOR)1ToyStory-81minutesMarch2020011995EnglishAdventure|Animation|…|FantasyTomHanks|…|JimJohnLasseter…………………………30ShanghaiTriad-108minutesDecember1220001995ChineseCrime|DramaGongLi|…|LiBao-TianZhangYimou電影信息用戶ID(UID)電影ID(MID)電影評分(SCORE)評分時間(TIMESTAMP)67158164106511196367159023.51064245507…………671595251063502716用戶評分信息用戶ID(UID)電影ID(MID)電影標(biāo)簽(TAG)標(biāo)簽時間(TIMESTAMP)15339sandra'boring'bullock1138537770151955dentist1193435061…………15100365uganda1425876220電影標(biāo)簽信息主要數(shù)據(jù)模型統(tǒng)計推薦模塊歷史熱門電影統(tǒng)計近期熱門電影統(tǒng)計電影平均評分統(tǒng)計各類別Top10優(yōu)質(zhì)電影統(tǒng)計統(tǒng)計推薦模塊SparkSession.readSparkSession.writemongo-spark-connector統(tǒng)計推薦模塊歷史熱門電影統(tǒng)計統(tǒng)計所有歷史數(shù)據(jù)中每個電影的評分?jǐn)?shù)selectmid,count(mid)ascountfromratingsgroupbymid

RateMoreMoviesRateMoreMovies數(shù)據(jù)結(jié)構(gòu):mid,count近期熱門電影統(tǒng)計統(tǒng)計每月的電影評分個數(shù),就代表了電影近期的熱門度selectmid,score,changeDate(timestamp)asyearmonthfromratings

ratingOfMonthselectmid,count(mid)ascount,yearmonthfromratingOfMonthgroupbyyearmonth,midorderbyyearmonthdesc,countdesc RateMoreRecentlyMovieschangDate:UDF函數(shù),使用SimpleDateFormat對Date進(jìn)行格式轉(zhuǎn)化,轉(zhuǎn)化格式為“yyyyMM”RateMoreRecentlyMovies數(shù)據(jù)結(jié)構(gòu):mid,count,yearmonth電影平均評分統(tǒng)計selectmid,avg(score)asavgfromratingsgroupbymid AverageMoviesAverageMovies數(shù)據(jù)結(jié)構(gòu):mid,avg各類別Top10評分電影統(tǒng)計selecta.mid,genres,if(isnull(b.avg),0,b.avg)scorefrommoviesaleftjoinaverageMoviesbona.mid=b.mid movieWithScorespark.sql("select*from(select"+"mid,"+"gen,"+"score,"+"row_number()over(partitionbygenorderbyscoredesc)rank"+"from"+"(selectmid,score,explode(splitGe(genres))genfrommovieWithScore)

genresMovies)rankGenresMovies"+"whererank<=10")splitGe:UDF函數(shù),按照‘|’字符對字符串進(jìn)行切分離線推薦模塊用ALS算法訓(xùn)練隱語義模型計算用戶推薦矩陣計算電影相似度矩陣離線推薦模塊DataSet[MovieRating]SparkSession.readRDD[Rating(uid,mid,score)]mapvalmodel=ALS.train(trainData,rank,iterations,lambda)RMSE

均方根誤差:均方誤差的算術(shù)平方根,預(yù)測值與真實值之間的誤差參數(shù)調(diào)整

可以通過均方根誤差,來多次調(diào)整參數(shù)值,選擇RMSE最小的一組參數(shù)值rank,iterations,lambdaALS推薦模型訓(xùn)練ALSuserRDD:RDD[Int]movieRDD:RDD[Int]userMovies:RDD[(uid,mid)]predictRating:RDD[Rating(uid,mid,predict)]userGroupRatings:RDD[(uid,Seq[Rating])]userRecs:RDD[(uid,Seq[(mid,score)])]笛卡爾積model.predict(userMovies)groupByKeysortBy(‘score’).take(20)SparkSession.write計算用戶推薦矩陣movieFeatures:RDD[mid,DoubleMatrix]movieFeatures:RDD[mid,DoubleMatrix]movieSim:RDD[(mid,(mid,consinSim))]modelmoviesSimGroup:RDD[(mid,Seq(mid,consinSim))]笛卡爾積Filter(consinSim>0.6).groupByKductFeaturesMatrix(N,M)=Matrix(N,K)×

Matrix(K,M)

計算電影相似度矩陣

movieRecs:RDD[(uid,Seq[(mid,score)])]SparkSession.writespark-redis存儲電影相似度矩陣實時推薦模塊實時推薦架構(gòu)實時推薦優(yōu)先級計算基于模型的實時推薦模塊log計算速度要快結(jié)果可以不是特別精確有預(yù)先設(shè)計好的推薦模型uid,mid,score,timestamp基于模型的實時推薦模塊基本原理:用戶最近一段時間的口味是相似的備選電影推薦優(yōu)先級:A5.0B4.0C1.0D4.0X?Y?Z?用戶最近k次評分備選電影Sim(A,X)Sim(B,X)Sim(C,X)X的推薦優(yōu)先級分?jǐn)?shù)為:?=(sim(A,X)*5+sim(B,X)*4+sim(C,X)*1)/3+lg2–lg1推薦優(yōu)先級計算KRatings:Seq[(mid,score)]Movies【候選電影】:Seq[Int]計算分?jǐn)?shù):((sim(A,X)*5+sim(B,X)*4+sim(C,X))/3獲取和K次評分的每個電影的相似度Score(X)+log2–log1和前面的實時結(jié)果合并更新加上偏移項uid,mid,score,timestampRedis電影相似度矩陣Redis用戶最近K

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論