推薦システム:ARL(Association Rule Learning)


前回の記事では、推奨アルゴリズムが私たちの生活にどのような影響を与えるかを紹介しましたが、今日は、単純な推奨システム、つまり関連付けルールの学習を実装する方法について説明します。

企業の製品コンテンツは一般に非常に豊富ですが、ユーザーの興味によってコンテンツセット全体がフィルタリングされ、ユーザーが興味のある製品を選択することが多く、その選別ルールは人によって異なります。ユーザーが豊富な製品群の中で迷子になることを防ぎ、興味のある分野に応じて必要なパーソナライズされたサービスを実現するために、一般にさまざまなフィルターが作成されます。これらのフィルターとアルゴリズム表示が当社の「レコメンダー システム」です。

市場で人気のあるレコメンデーション システムは、次の 4 つの主な実装方法に要約できます。

  • シンプルな推奨システム: ビジネス知識または単純なランキング手法を使用して一般的な推奨を行います。
  • アソシエーションルール学習:アソシエーション分析で学習したルールに基づいてコンテンツを推奨します。
  • コンテンツベースのフィルタリング: 製品の類似性に基づいて推奨コンテンツを提案します。
  • 協調フィルタリング: 共通の興味に基づいてユーザーまたは製品を推奨します。ユーザーベース、プロダクトベース、モデルベース(ディープラーニング)の3つの方法に分かれています。

この記事はレコメンダー システム実装の最初の部分であり、単純なレコメンダー システムと相関ルールの学習に焦点を当てます。コンテンツベースのフィルタリングと協調フィルタリングの方法については、今後も注目してください。

シンプルな推薦システム

単純なレコメンダー システムでは、ユーザーの行動や製品の機能は考慮されません。これらのシステムは通常、お気に入り、人気、売上が高く、スコアが最も高い製品などに焦点を当て、これらの製品をユーザーに直接推奨します。たとえば、Taobao や JD.com は最も売上高が高く、評価も最も高いです。

相関ルールの学習

これは、データ内のパターンを見つけるためのルールベースの機械学習手法です。相関ルールの学習にはアプリオリ アルゴリズムが使用されます。Aprioriは相関ルール マイニング アルゴリズムであり、製品の関連性を明らかにするために使用される最も古典的なアルゴリズムでもあります。Apriori には 3 つの重要な指標があります。

  • サポート: 製品 X と Y が一緒に購入される頻度を測定します
Support(X, Y) = Freq(X, Y) / Total Transaction
  • 信頼度: 製品 X を購入するときに製品 Y を購入する確率
Confidence(X, Y) = Freq(X, Y) / Freq(X)
  • リフト: 製品 X が購入された場合に、製品 Y が購入される確率の増加係数。
Lift = Support(X, Y) / (Support(X) * Support(Y))

アプリオリはどのように機能しますか?

Apriori アルゴリズムは、プロセスの開始時に決定されたサポートしきい値に基づいて可能な製品ペアを計算し、各反復で決定されたサポート値に基づいてそれらを削除し、最終候補を作成します。

画像-1673406883031

  • ステップ 1 : 各製品のサポート値を計算します。

画像-1673406922754

  • ステップ 2 : プロセスの開始時に決定されたサポートしきい値以下のサポート値を持つ製品を排除します。

画像-1673407008497

  • ステップ 3 : 考えられる製品ペアを特定し、サポート値を計算します。

画像-1673407035596

  • ステップ 4 : 決定されたサポート閾値に従って削除します。

画像-1673407058311

  • ステップ 5 : 新しい可能性のある製品ペアを特定し、サポート値を計算します。

画像-1673407072391

  • ステップ 6 : 決定されたサポート閾値に従って削除します。

画像-1673407084450

  • ステップ 7 : 最終テーブル

画像-1673407096355

卵とビールが購入額全体の40%を占めた。卵を購入した顧客の 67% がビールも購入しました。仕入れたエッグビールの売上は1.11倍に増加。最終的な表によれば、次のようなコメントが可能です。

Apriori アルゴリズムの動作ロジックを調べたので、次は Apriori アルゴリズムを使用して相関ルール学習を実装する Python プロジェクトを作成します。

このプロジェクトで使用するデータは、Online Retail II データセットです。関連するデータセットは、ここからダウンロードできます。Online Retail II データセットの関連属性情報は次のとおりです。

属性情報

  • 請求書: 請求書番号。各トランザクションに一意に割り当てられる 6 桁の整数。コードが文字「C」で始まる場合、キャンセルされたことを意味します。
  • StockCode : 製品(商品)コード。異なる製品ごとに一意に割り当てられる 5 桁の整数。
  • 説明: 製品(アイテム)名。
  • 数量: 1取引あたりの各商品(商品)の数量、個数。
  • InvoiceDate : 請求書の日付と時刻、トランザクションが生成された日付と時刻、数値。
  • UnitPrice : 単価。番号。製品の単価(ポンド)。
  • CustomerID : 顧客番号。各顧客に一意に割り当てられる 5 桁の整数。
  • Country : 国名、顧客が所在する国の名前。

データ セットに関連する操作とさまざまな操作はコードの前の部分で完了しています。プロジェクトの完全なコードはここで見つけることができます。

ARL を適用します。まず、ARL データ構造を準備する必要があります。0 と 1 の請求書項目のマトリックスが必要ですが、このマトリックスを作成する前に、データセットを 1 つの国に減らします。私はフランスを選びましたが、他の国を選んで自分で試してみることもできます。

画像-1673407141095

データセットをフランスに縮小したので、次に請求書-品目マトリックスを作成できます。StockCode と description の両方を項目として使用できますが、説明を項目として使用すると多くのメモリが消費され、コードの実行が遅くなるため、製品名を項目として使用する代わりに、StockCode を項目として使用する方が使いやすいです。

画像-1673407157386

頻繁に使用されるアイテムセットは、頻繁に一緒に表示され、事前定義されたサポートと信頼度に達するアイテムセットのグループです。頻繁に使用される項目セットは、相関ルールを使用して見つけることができます。

画像-1673407175671

画像-1673407189560

antecedents : first product
consequents : second product
antecedent support : proportion of transactions that contains antecedent A
consequent support : proportion of transactions that contains consequent C
support : items’ frequency of occurrence
confidence : conditional probability of purchasing consequents Y 
when antecedents X is purchased
lift : How many times the probability of purchasing consequents Y 
increases when antecedents X is purchased
leverage : similar to lift but it gives priority to higher support.
conviction : expected frequency of antecedents X without consequent Y

ルール テーブルを作成した後、ニーズ (サポート、信頼性、リフト、活用) に応じて並べ替え、推奨プロセスを実装できます。

画像-1673407216874

最終ステップとして、商品のご提案をさせていただきます。これを行うには、ルールのデータ フレーム、製品 ID、作成する推奨事項の数を引数として受け取る関数を使用します。

画像-1673407225723

アイテム ID 22492 に対して 2 つのアイテムを推奨するとします。

画像-1673407241582

以下の関数を使うと、おすすめしたい商品のIDから商品名を調べることができます。

画像-1673407255892

レコメンデーション システムは、パーソナライズされた価値のあるコンテンツや製品の提案をユーザーに提供することを目的とした一般的な人工知能アプリケーションです。これは、電子商取引、ニュース ポータル、ビデオ ストリーミング サービス、ソーシャル メディア プラットフォームなどのシナリオでよく使用されます。

推奨システムは通常、ユーザーの閲覧、購入、検索、その他の行動履歴データを使用してユーザーをモデル化し、ユーザーの好みに応じた提案を提供します。これらの提案は通常、ユーザーが興味を持つ可能性のあるコンテンツまたは商品の関連性に従って並べ替えられます。

おすすめ

転載: blog.csdn.net/stone1290/article/details/130265456