日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【推荐系统】电影推荐系统(一)

發布時間:2023/12/10 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【推荐系统】电影推荐系统(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、電影推薦架構
    • 1.1、系統架構
    • 1.2、項目數據流程
  • 二、電影推薦思路
    • 2.1、特征提取
    • 2.2、實時推薦
    • 2.3、電影內容推薦
  • 總結


前言

??隨著互聯網的發展,推薦系統在各種互聯網項目中占據了不可缺少的一部分,商品的推薦,抖音小視頻推薦,音樂推薦,交友推薦等等。電影系統相對來說是一種簡單的推薦,因此筆者也從電影系統入手,進軍推薦系統的學習,請大家參考。


一、電影推薦架構

1.1、系統架構

  • 用戶可視化:主要負責實現和用戶的交互以及業務數據的展示,主體采用AngularJS2 進行實現,部署在 Apache 服務上。
  • 綜合業務服務:主要實現 JavaEE 層面整體的業務邏輯,通過 Spring 進行構建,對接業務需求。部署在 Tomcat 上。

【 數據存儲部分】

  • 業務數據庫:項目采用廣泛應用的文檔數據庫 MongDB 作為主數據庫,主要負責平臺業務邏輯數據的存儲。
  • 搜索服務器:項目愛用 ElasticSearch 作為模糊檢索服務器,通過利用 ES 強大的匹配查詢能力實現基于內容的推薦服務。
  • 緩存數據庫:項目采用 Redis 作為緩存數據庫,主要用來支撐實時推薦系統部分對于數據的高速獲取需求。

【離線推薦部分】

  • 離線統計服務:批處理統計性業務采用 Spark Core + Spark SQL 進行實現,實現對指標類數據的統計任務。
  • 離線推薦服務:離線推薦業務采用 Spark Core + Spark MLlib 進行實現,采用ALS 算法進行實現。
  • 工作調度服務 :對于離線推薦部分需要以一定的時間頻率對算法進行調度,采用 Azkaban 進行任務的調度。

【實時推薦部分】

  • 日志采集服務:通過利用 Flume-ng 對業務平臺中用戶對于電影的一次評分行為進行采集,實時發送到 Kafka 集群。
  • 消息緩沖服務:項目采用 Kafka 作為流式數據的緩存組件,接受來自 Flume 的數據采集請求。并將數據推送到項目的實時推薦系統部分。
  • 實時推薦服務:項目采用 Spark Streaming 作為實時推薦系統,通過接收 Kafka中緩存的數據,通過設計的推薦算法實現對實時推薦的數據處理,并將結構合并更新到 MongoDB 數據庫。

1.2、項目數據流程


【系統初始化部分】

  • 通過 Spark SQL 將系統初始化數據加載到 MongoDB 和 ElasticSearch 中。

【離線推薦部分】

  • 通過 Azkaban 實現對于離線統計服務以離線推薦服務的調度,通過設定的運行時間完成對任務的觸發執行。
  • 離線統計服務從 MongoDB 中加載數據,將【電影平均評分統計】、【電影評分個數統計】、【最近電影評分個數統計】三個統計算法進行運行實現,并將計算結果回寫到 MongoDB 中;離線推薦服務從 MongoDB 中加載數據,通過 ALS 算法分別將【用戶推薦結果矩陣】、【影片相似度矩陣】回寫到 MongoDB 中。

【實時推薦部分】

  • Flume 從綜合業務服務的運行日志中讀取日志更新,并將更新的日志實時推送到Kafka 中;Kafka 在收到這些日志之后,通過 kafkaStream 程序對獲取的日志信息進行過濾處理,獲取用戶評分數據流【UID|MID|SCORE|TIMESTAMP】,并發送到另外一
    個 Kafka 隊列;Spark Streaming 監聽 Kafka 隊列,實時獲取 Kafka 過濾出來的用戶評分數據流,融合存儲在 Redis 中的用戶最近評分隊列數據,提交給實時推薦算法,完成對用戶新的推薦結果計算;計算完成之后,將新的推薦結構和 MongDB 數據庫中的推薦結果進行合并。

【業務系統部分】

  • 推薦結果展示部分,從 MongoDB、ElasticSearch 中將離線推薦結果、實時推薦結果、內容推薦結果進行混合,綜合給出相對應的數據。
  • 電影信息查詢服務通過對接 MongoDB 實現對電影信息的查詢操作。
  • 電影評分部分,獲取用戶通過 UI 給出的評分動作,后臺服務進行數據庫記錄后,一方面將數據推動到 Redis 群中,另一方面,通過預設的日志框架輸出到 Tomcat 中的日志中。
  • 項目通過 ElasticSearch 實現對電影的模糊檢索。
  • 電影標簽部分,項目提供用戶對電影打標簽服務。

二、電影推薦思路

??首先電影推薦相對于其它推薦來說比較簡單。相對于短視頻推薦來說,電影推薦不會每天更新大量的新數據,電影可能每個月就幾個新電影的上映。相對于新聞推薦來說,實時性可能就沒那么重要,很多老的電影也會有很多用戶喜歡觀看。因此電影推薦或者音樂推薦最適合新手入門。

2.1、特征提取

??用戶電影特征提取時,必須要有對應的數據,電影表,用戶表,用戶評價表。通過als算法對評價表進行計算,計算出電影的特征矩陣。通過電影特征的矩陣計算得出每個電影最相似的幾個電影,并且保存。保存數據如下:

{"_id":"600a2decbf19ae00fc6e2f18","mid":1669,"recs":[{"mid":2776,"score":0.9999999999999994},{"mid":2820,"score":0.9996844527170483}] }

??MongoDB 是一個面向文檔存儲的數據庫,操作起來比較簡單和容易。對這種數據結構有良好的支持,所以在此選擇MongoDB。
詳細到:ALS進行離線推薦

2.2、實時推薦

??在此實時推薦采用一個比較簡單的思路,便于理解。
??當用戶 u 對電影 p 進行了評分,將觸發一次對 用戶u 的推薦結果的更新。由于用
戶 u 對電影 p 評分,對于用戶 u 來說,他與 電影p 最相似的電影們之間的推薦強度將
發生變化,所以選取與電影 p 最相似的 K 個電影作為候選電影。
詳細到:實時推薦

2.3、電影內容推薦


總結

??此為最簡單的電影推薦實現思路,當然還有很多需要完善的地方。而且在實際場景中也要根據實際情況去靈活的運用。
參考地址:
ALS算法詳解
尚硅谷電影推薦實戰

總結

以上是生活随笔為你收集整理的【推荐系统】电影推荐系统(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。