序文
このプロジェクトは MovieLens データセットに焦点を当て、TensorFlow の 2D テキスト畳み込みネットワーク モデルを使用します。協調フィルタリング アルゴリズムを組み合わせて映画間のコサイン類似度を計算し、映画をクリックするユーザー インタラクションを通じて 2 つの異なる映画推奨方法を提供します。
まず、このプロジェクトでは、映画に関する多数のユーザー評価とコメントが含まれる MovieLens データセットを使用します。このデータは、ユーザーの好みに似た映画を推奨する協調フィルタリング アルゴリズムをトレーニングするために使用されます。
次に、このプロジェクトでは、映画のテキスト記述情報を処理できる TensorFlow の 2D テキスト畳み込みネットワーク モデルを使用しています。映画のテキストの特徴を学習することで、モデルは映画の内容とスタイルをより深く理解できるようになります。
ユーザーがミニ プログラムを操作するとき、映画を推奨するには 2 つの異なる方法があります。
-
協調フィルタリングの推奨: ユーザーの過去の評価と協調フィルタリング アルゴリズムに基づいて、システムはユーザーの好みに似た映画を推奨します。ユーザーや他のユーザーの行動を分析して映画を推薦する従来のレコメンド手法です。
-
テキスト畳み込みネットワークの推奨: ユーザーは、ムービーをクリックするかテキストの説明を入力することで、テキスト畳み込みネットワーク モデルを開始できます。このモデルは、映画のテキスト情報を分析し、入力された映画または説明に一致する他の映画を推奨します。この方法では、映画の内容とプロットの類似性にさらに注目します。
まとめると、このプロジェクトは協調フィルタリングと深層学習テクノロジーを組み合わせて、映画を推奨するための 2 つの異なる効果的な方法をユーザーに提供します。これにより、ユーザー エクスペリエンスが向上し、自分の好みに合った映画を見つけやすくなります。
全体的なデザイン
このパートには、システム全体の構成図とシステム フローチャートが含まれます。
全体システム構成図
システムの全体構成を図に示します。
システムフローチャート
システムフローを図に示します。
モデルのトレーニング プロセスを図に示します。
サーバー運用プロセスを図に示します。
動作環境
この部分には、Python 環境、TensorFlow 環境、バックエンド サーバー、Django および WeChat アプレット環境が含まれます。
モジュールの実装
このプロジェクトにはモデルトレーニング、バックエンド Django、フロントエンド WeChat アプレット モジュールの 3 つのモジュールが含まれており、各モジュールの機能紹介と関連コードは以下のとおりです。
1. モデルのトレーニング
データ セットをダウンロードし、プロジェクト ディレクトリ内の./ml-1m
フォルダーに抽出します。データセットは、ユーザーデータの users.dat 、ムービーデータの movie.dat 、および評価データの Rating.dat に分かれています。
1) データセット分析
データ セットの Web サイト アドレスは、http://files.grouplens.org/datasets/movielens/ml-1m-README.txtです。 データの説明。
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133124641#1_44
2) データの前処理
データセット内のフィールドタイプを調査したところ、一部がカテゴリーフィールドであることが分かり、ワンホットエンコーディングに変換しましたが、UserIDとMovieIDのフィールドが疎になり、入力データの次元が急激に拡大してしまいます。 、これらのフィールドはデータの前処理時に数値に変換されます。
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133124641#2_123
3) モデルの作成
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133125845#3_50
4) モデルのトレーニング
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133130704#4_57
5) 特徴マトリックスの取得
この部分には、関数テンソルの定義、映画特徴行列の生成、およびユーザー特徴行列の生成が含まれます。
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133130704#5_240
2.バックエンドジャンゴ
このモジュールは、推奨アルゴリズムとフロントエンド データ インタラクション機能のカプセル化を実装します。
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133131103#2_Django_67
3. フロントエンド WeChat アプレット
このモジュールは、ユーザー インタラクションとバックエンド データ送信機能を実装し、WeChat 開発者プラットフォームを通じてフロントエンド開発を実行します。
1) ミニプログラムのグローバル設定ファイル
グローバル設定ファイルは通常、APP で始まりapp.js
、app.json
、app.wxss
などが含まれます。これらのファイルは、新しいミニ プログラムの作成時に WeChat 開発者プラットフォームによって自動的に生成されます。
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133146411#1_75
2) おすすめ映画ページ
movies.js
、、、を含むおすすめ映画movies.json
のページですmovies.wxml
。movies.wxss
記録されるのmovies.js
はロジック層、movies.wxml
記録されるのはビュー層、記録movies.wxss
されるのはページ要素のスタイルシート、movies.json
同様にapp.json
記録されるのはこのページの関連構成情報です。
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133146411#2_177
3) 個人情報インターフェースとユーザーログイン記録ページ
これら 2 つのページは、新しいミニ プログラムの作成時にシステムによって自動的に生成されるため、変更する必要はありません。以下の個人情報ページは、、、、などのファイルで構成されてindex.js
います。index.html
index.json
index.wxss
関連ブログ: https://blog.csdn.net/qq_31136513/article/details/133146411#3_383
システムテスト
このセクションには、モデルの損失曲線とテスト結果が含まれています。
1. モデル損失曲線
このモデルでは、実際のスコアと予測スコアの MSE を損失関数として使用します。反復回数が増加するにつれて、トレーニング データとテスト データの損失は徐々に減少し、最終的に安定します。5 回の反復後、損失は 1 で安定します。 。
トレーニング損失を図に示します。
テスト損失を図に示します。
2. テスト効果
フロントエンド アプレットの開発が完了したら、WeChat 開発者プラットフォームでプレビューすると、操作インターフェイスは図のようになります。
映画ページにはおすすめ方法選択ボタンが2つあり、その下にランダムで5つの映画情報が表示されます。映画の推薦方法の 1 つである“同类型电影”
「推薦方法」を選択し、いずれかの映画を選択します。たとえば、現在の画面の最初の映画「Last Night」を選択すると、同じ映画がたくさん表示されます。図に示すようなタイプが推奨されます。
別の方法、つまり“看过这个的还喜欢看”
推奨方法を選択し、最初の映画を選択し続けると、図に示すように他の映画が表示されます。
関連する他のブログ
プロジェクトのソースコードのダウンロード
詳細については、私のブログ リソースのダウンロード ページをご覧ください。
その他の情報をダウンロードする
人工知能に関連する学習ルートと知識システムを引き続き理解したい場合は、私の別のブログ「ヘビー級 | 完全な人工知能 AI 学習 - 基礎知識の学習ルート」を参照してください。すべての情報はネットワーク ディスクから直接ダウンロードできます。》
このブログは、Github の有名なオープンソース プラットフォーム、AI テクノロジー プラットフォーム、および関連分野の専門家 (Datawhale、ApacheCN、AI Youdao、Dr. Huang Haiguang など) について言及しており、約 100G の関連情報があります。私の友人全員を助けることができれば幸いです。