このリポジトリは、 Mongodb&Pysparkを使用したAmazon Review Data(2018)のAmazon Review Data(2018)に関する探索データ分析(EDA)の作業に基づいており、包括的なAmazon Review Dataset(2018)で開発された包括的なAmazonレビューデータ(2018)で開発された製品推奨システムに接続されたWebアプリケーションが含まれています。ビッグデータ分析の基礎(DS2004)コースの最終プロジェクトの一環として。
製品の推奨システムは、データ分析と機械学習技術を使用して、興味、過去の購入、閲覧履歴に基づいて顧客に製品を提案するソフトウェアの種類です。これらのシステムは、Amazon.comなどのeコマースWebサイトで見つけることができ、リアルタイムでユーザーにパーソナライズされた推奨事項を提供するように設計されています。推奨システムは、ユーザーの動作、製品属性、トランザクション履歴など、膨大な量のデータを分析することにより機能します。このデータに基づいて、システムはユーザーの興味と好みに関連する推奨事項を生成します。たとえば、ユーザーが以前に特定のトピックに関する本を購入した場合、推奨システムは同じトピックまたは関連トピックに関する他の本を提案する場合があります。
Amazon Review Data(2018)データセットを利用して、購入履歴に基づいてユーザーにパーソナライズされた製品の提案を提供する製品推奨システム、およびプラットフォームで製品をレビューおよび評価した他のユーザーの満足度レベルをトレーニングできます。ただし、データセットは膨大であるため、機械学習モデルの過剰適合と過小評価の両方を回避するために、製品推奨システムに効果的に貢献する関連機能を慎重に分析および選択することが重要です。
Amazon Review Data(2018)Dataset Amazon Review Data(2018)Analysis.Ipynb、1-38)で探索データ分析(EDA)を実施する際のアプローチと同様に、製品推奨モデルをトレーニングするための推論統計的方法を採用しました。サンプルを使用して母集団全体について推論を行うための理論的根拠は、完全なデータセットの処理に関連する計算負担を最小限に抑えることです。ディープラーニングには通常、大量のデータが必要ですが、機械学習を効果的に使用して、小さなデータセットを使用しても堅牢なトレーニング方法を開発できます。これは、製品推奨システムに関する私たちの主な目的である仮説主導型の研究に特に役立ちます。 (Vabalas et al。、2019)いずれにせよ、どのデータセットも本質的により大きな母集団のサブセットであることに注意することが重要です。
結果の精度を確保するために、データの潜在的なバイアスを慎重に分析および軽減することが重要です。これは、歪んだパフォーマンスの推定につながる可能性のあるバイアスに敏感な機械学習で特に重要です。この問題に対処するために、前述の層状ランダムサンプリングアプローチを適用して、元のデータセットと同じ製品分布を維持しながら、人口から10,000,000の記録の代表的なサンプルを抽出します。 (Compress.py、1-61)サンプルサイズは非常に大きいため、Apache Parquetファイル形式に圧縮して、データセットのサイズを90%以上削減します。
交互の最小二乗(ALS)は、製品推奨システムの開発に使用される共同フィルタリングアルゴリズムです。このアルゴリズムは、ユーザーとアイテムの潜在要因を表す2つの低ランクマトリックスにユーザー項目評価行列を分解することにより、ユーザーとアイテムの相互作用に影響を与える潜在的または隠された要因を学習することを目的としています。
交互の最小二乗(ALS)は、1つの潜在因子を修正することと、最小二乗最適化アルゴリズムを使用して他のセットを解くこととを交互に繰り返し動作します。特に、各反復で、アルゴリズムはアイテムの潜在因子を修正し、最小二乗最適化を使用してユーザーの潜在因子を解決し、ユーザーの潜在因子を修正し、最小二乗最適化を使用してアイテム潜在要因を解決します。
交互の最小二乗(ALS)には、製品推奨システムにいくつかの利点があります。特に大規模でまばらなデータセットに対して、スケーラブルで計算上効率的です。ユーザーと項目の相互作用が存在するか存在しないことが知られている、特定の評価ではなく、暗黙のフィードバックデータを処理できます。また、すべてのユーザーがすべてのアイテムを評価しているわけではない場合、欠落データを処理することもできます。さらに、交互の最小二乗(ALS)は、アイテムの推奨事項をリアルタイムで提供することができ、オンライン推奨システムに適しています。
Product Recommendation Model.ipynb - Amazon Review Data(2018)データセットのトレーニングおよびテストされた製品推奨システムの実装(MLLIB)が含まれています。srcdata.py - データセットをJavaScriptオブジェクト表記(JSON)ファイルからコレクションとしてMongoDBデータベースに保存するためのソースコード。srccompress.py - MongoDBデータベースに保存されているデータセットから指定されたサンプルサイズの層別ランダムサンプルをコレクションとして抽出し、Apache Parquetファイルとして保存するためのソースコード。srcvalidate.py - 実用的な例を使用して、訓練された製品推奨システムの精度と機能を検証するソースコード。modelproduct_recommendation_model - 製品推奨システムの訓練された機械学習モデルを含むディレクトリ。appapplication.py - Apache Kafkaクラスターを介した製品推奨システムに関連付けられたWebアプリケーション(Flask)のソース。apprecommendation.py - 製品推奨事項の生成を可能にする製品推奨システムのトレーニングされた機械学習モデルに接続されたApache Kafkaクラスターのソースコード。templates - Webアプリケーション(Flask)によってレンダリングされたWebページ( login.html 、 dashboard.html 、 review.html 、およびloading.html 、 recommendation.html )のソースコードが含まれています。static - Webアプリケーション(Flask)で使用されるすべてのアイコンと視覚要素が含まれています。.hintrc - 特定の設定とルールを指定してESLINTの動作をカスタマイズする構成ファイル。 All_Amazon_Review.json.gzファイルをダウンロードしてください。srcdata.pyを実行して、データセットをJavaScriptオブジェクト表記(JSON)ファイルからコレクションとしてMongoDBデータベースに保存します(MongoDBがすでにセットアップおよび実行されていることを確認してください)。srccompress.pyを実行して、Mongodbに保存されたデータセットから指定されたサイズの層状ランダムサンプルを抽出し、サンプルをApache Parquetファイルとして保存します。Product Recommendation Model.ipynbを実行してください。IPYNBファイル(1-16)は、コレクションを変換し、マンゴドブに戻して永続的なアクセスのために保存します(ファイル全体を実行する必要はありません)。apprecommendation.pyを横に実行します(Apache Kafkaクラスターが正常に確立され、操作可能であることを確認してください。appapplication.pyを実行し、ホストポートへの提供されたリンクを開きます。/dashboardページで、 [レビュー]ボタンをクリックして、コンテンツを送信します。/loadingページで5分間待機します。/recommendationページにリダイレクトされ、生成された製品の推奨事項が表示されます。 ソースコードファイルは、 MacOS Ventura向けに特別に記述されており、他のオペレーティングシステムで適切に実行されるための変更が必要になる場合があります。
このプロジェクトは、それに貢献した並外れた人々のおかげで存在します。