モンゴDBとSparkで映画推薦を実現

1679 ワード

MovieWebは映画関連のウェブサイトで、映画情報の検索、ランキング、映画スター資料などの機能を提供しています.10000本の映画の情報、70000人のユーザー、1千万以上の映画の採点を持っています.検索ディレクトリを借りると、ユーザーはタイプ分類、ランキング、タイトルブラウズなどの方法で映画を検索できます.しかし、映画のスマート推薦の問題をどのように解決しますか?最近MongoDBは彼らがHadoopを結合した経験を共有した.
MovieWebはPythonに基づいています.映画推薦システムを構築する際、flaskとPyMongoを使用してデータを読み取り、Pythonのホームページアプリケーションを応用して映画を閲覧し、採点推薦を行う.Sparkアプリケーションを用いて実際の推奨処理を演算し、MLLibで協同フィルタリングを実現する.その後、映画スコアのデータを収集し、データモデルを作成し、訓練した後、ユーザーと映画のデータセットを処理し、訓練したモデルを逆方向に適用して映画ランキングの予測を試みた.以上が完了したら、予測結果をMongoDBに書き込み、その後、それらのWebアプリケーションは予測のランキングを表示し、新しい予測を受け取ることができます.その中で使用するツールはApache Hadoop 2.3.0(HDFSとYARN)、Spark 1である.0とデータ管理用のMongoDB.
MovieWebのワークフロー:
BSON形式でデータベースを迅速に確立する.HDFSにBSONを格納する.BSONをSparkアプリケーションに読み込む.既存のランキングで訓練モデルを採点する.ユーザー-ムービーペアを設定します.すべてのユーザー-ムービーの予測順位.予測結果をMongoDB採集ライブラリに書き込む.ホームページの応用展示の推薦;週に1回以上仕事を繰り返す.これはMapReduceの仕事ではなく、コード量が少なく、文法を導入しても基本的に150行程度のコードしか必要ありません.
Sparkの環境構築とアーキテクチャ構築の実行文は次のとおりです.

$ export SPARK_JAR=spark-assembly-1.0.0-hadoop2.3.0.jar
$ Export HADOOP_CONF_DIR=/usr/local/Hadoop/etc/Hadoop
$ bin/spark-submit
 --master yarn-cluster
 --class com.mongodb.hadoop.demo.Recommender demo-1.0.jar
 --jars mongo-java-2.12.2.jar,mongo-hadoop-1.2.1.jar
 --driver-memory 1G
 --executor-memory 2G
 --num-executors 4

機能実装後の推奨システムでは、予測に基づいて推奨されるムービーが、ユーザーが閲覧しているムービーに基づいて最初に属するカテゴリである「お気に入りのムービー」欄があります.例えば、映画「非常容疑者」は、第1カテゴリーが「犯罪」である場合、この映画を閲覧する際に推奨される映画もこのカテゴリーに属する.ユーザが需要を示すと,システムは自動的にユーザのためにカテゴリをフィルタリングし,フィルタリングした結果をユーザへの推奨放送に入れる.
郭蕾の本文に対する審査に感謝します.
InfoQ中国語サイトへの投稿または翻訳に参加する場合は、[email protected].新浪微博(@InfoQ)やテンセント微博(@InfoQ)を通じて私たちに注目し、私たちの編集者や他の読者の友达と交流することを歓迎します.