Mahout-recommendation
Mahout-推奨事項
この章では、*推奨と呼ばれる一般的な機械学習手法、そのメカニズム、およびMahout推奨を実装するアプリケーションの作成方法について説明します。
勧告
あなたが興味を持っているかもしれない特定の製品にあなたの注意を引き付けるために、Amazonがどのように推薦されたアイテムのリストを思いつくか疑問に思いました!
Amazonから「Mahout in Action」という本を購入するとします。
以下に示すように、選択した製品とともに、Amazonは関連する推奨アイテムのリストも表示します。
このような推奨リストは、*推奨エンジン*の助けを借りて作成されます。 Mahoutは、次のようないくつかのタイプの推奨エンジンを提供します。
- ユーザーベースのレコメンダー、
- アイテムベースのレコメンダー、および
- 他のいくつかのアルゴリズム。
Mahoutレコメンダーエンジン
Mahoutには、非分散型、非Hadoopベースの推奨エンジンがあります。 アイテムのユーザー設定を含むテキストドキュメントを渡す必要があります。 また、このエンジンの出力は、他のアイテムに対する特定のユーザーの推定設定になります。
例
モバイル、ガジェット、アクセサリーなどの消費財を販売するWebサイトを考えてみてください。 そのようなサイトにMahoutの機能を実装する場合は、推奨エンジンを構築できます。 このエンジンは、ユーザーの過去の購入データを分析し、それに基づいて新製品を推奨します。
推奨エンジンを構築するためにMahoutが提供するコンポーネントは次のとおりです。
- データ・モデル
- UserSimilarity
- アイテム類似性
- UserNeighborhood
- 推薦者
データストアからデータモデルが準備され、レコメンダーエンジンへの入力として渡されます。 推奨エンジンは、特定のユーザー向けの推奨を生成します。 以下に推奨エンジンのアーキテクチャを示します。
レコメンダーエンジンのアーキテクチャ
Mahoutを使用してリコメンダーを構築する
簡単なレコメンダーを開発する手順は次のとおりです。
ステップ1:DataModelオブジェクトを作成する
ステップ2:UserSimilarityオブジェクトを作成する
以下に示すように、 PearsonCorrelationSimilarity クラスを使用して UserSimilarity オブジェクトを作成します。
ステップ3:UserNeighborhoodオブジェクトを作成する
このオブジェクトは、特定のユーザーのようなユーザーの「近傍」を計算します。 近隣には2つのタイプがあります。
- NearestNUserNeighborhood -このクラスは近傍を計算します 特定のユーザーに最も近い_n_ユーザーで構成されます。 「最近接」は、指定されたUserSimilarityによって定義されます。
- ThresholdUserNeighborhood -このクラスは近傍を計算します 特定のユーザーとの類似性が特定のしきい値以上であるすべてのユーザーで構成されます。 類似性は、指定されたUserSimilarityによって定義されます。
ここでは ThresholdUserNeighborhood を使用し、優先度の制限を3.0に設定しています。
ステップ4:リコメンダーオブジェクトの作成
ステップ5:アイテムをユーザーに推奨する
プログラム例
以下は、推奨を設定するためのプログラム例です。 ユーザーID 2のユーザーの推奨事項を準備します。
次のコマンドを使用してプログラムをコンパイルします。
次の出力が生成されます。