振幅の推奨:アルゴリズムの裏側
公開: 2021-05-10「十分に高度なテクノロジーは、魔法と見分けがつきません。」
–アーサー・C・クラーク、未来のプロフィール
パーソナライズの課題
どこのマーケターも、パーソナライズの価値を理解しています。 ユーザーが要求する前にユーザーが何を望んでいるかを認識する機能は、魔法と見分けがつかない力のように感じることができます。 ここAmplitudeでは、新しい推奨製品が、一般的なビジネス目標に基づいてパーソナライズされた推奨を提供するための便利な既製のサービスをお客様に提供します。
品質推奨システムを作成することは、多くの企業にとって手の届かないものになる可能性があります。 Amplitude Recommendationは、ユーザーとの以前のやり取りやユーザーに関する知識に基づいて、事前定義されたアイテムのカタログから個々のユーザーに推奨を提供する既成のシステムを提供します。 推奨チームは、顧客からの過度の入力や高度なドメイン知識を必要とせずに、一般的な品質のためにシステムを構築し、繰り返し改善することに多大な努力を払ってきました。 おすすめのフードの下には何がありますか? ここでは、Amplitudeのパーソナライズへのアプローチを強化するテクノロジーのツアーに参加します。
おすすめのユーザーのモデリング
私たちのレコメンデーションシステムでは、コンバージョンイベントの観点から問題を具体的に組み立てます。ユーザーがレコメンデーションされたコンテンツアイテムを提示する場合、どのアイテムがユーザーにコンバージョンを促す可能性が最も高いと思いますか? ユーザーの好みをモデル化するには、最初にユーザーの適切な表現を選択する必要があります。これは、そのユーザーに関する意味のある情報のセットを表す機能のセットとしてです。 お客様から、2つの貴重なデータソースが提供されます。これらの機能を収集するために使用できるユーザーアクティビティからのイベントのストリームと、ユーザーに関連付けられた一連のプロパティ(技術プラットフォームやロケールなど)です。
お客様ごとに、特定の期間内に最も一般的なイベントを収集し、ユーザーがそれらのイベントを実行した回数や、それらのイベントが最初と最後に発生した回数など、ユーザーごとにそれらのイベントに関する統計を収集します。 これと一連のプロパティの間で、ユーザー表現のための多数の機能セットを収集します。
私たちの特徴エンジニアリングは、AmplitudeのNova AutoMLシステムを利用して、NovaQueryデータストアによって維持されているイベントデータをモデリングに関連する機能に処理します。 推奨については、AutoMLに機能を追加して、ファネル分析用のユーザーレベルのデータを提供します。これにより、特定のコンテンツアイテムと結果のコンバージョンイベントとの関係をより適切に識別できます。 これにより、たとえば、顧客が製品X、Y、Zを購入した後、Yのみを購入した場合に、特にYとのインタラクションへのコンバージョンをクレジットすることができます。

振幅の機械学習をお勧めします
推奨は、一連のユーザー間の関係を学習する教師なし学習手法を利用します。 最も一般的な教師なし学習手法はクラスタリングです。クラスタリングでは、特徴の類似性に基づいて例が個別のグループに分けられます。 私たちのコンテキストでは、クラスタリング手法を使用してユーザーをグループ化し、顧客のユーザーベースの注目すべきセグメントを認識することができます。

Amplitude Recommendationは、 k-meansクラスタリングと呼ばれる手法を使用して、教師なし学習を利用します。 お客様は、ロケールや技術プラットフォームなど、そのユーザーに固有のプロパティとともに、ユーザーからのイベントデータのストリームを提供してくれます。 この収集されたデータを一連のユーザー機能に処理します。 K-meansクラスタリングは、これらのユーザー機能を取得し、これらの機能の値が類似しているユーザーをクラスター化します。たとえば、特定のイベントの頻度やプロパティが類似している場合などです。
使用するクラスターの数を選択します(k-meansの「k」はこのクラスターの数を指します)。kのさまざまな数の範囲でクラスタリングを作成し、「最もタイトな」クラスターを提供するクラスタリングを選択します。 。 ここでのタイトネスは、クラスター内のユーザーの類似性とクラスター間のユーザーの類似性の比率によって定義されます。理想的には、クラスター内の類似性は高く、クラスター間の類似性は低くなります。 この尺度による最良のクラスタリングが、最終的なクラスタリングとして選択されます。

これらのクラスターを使用して、そのクラスター内のユーザーの間で特に人気のあるコンテンツアイテムを認識し、そのクラスター内のユーザーにコンテンツアイテムの一意のランキングを提供することができます。 重要なのは、新しいユーザー、または多くのコンテンツアイテムを操作したことがないユーザーに対して同様の分析を実行し、「類似した」ユーザーが以前に親和性を示したことに基づいて、これらのユーザーが何を好むかを認識することができることです。
クラスタリング手法が直面する一般的な問題の1つは、ノイズの多い機能です。 機能セットは、統計のランダムなミッシュマッシュである可能性があります。ユーザーとその好みに関する重要なシグナルを含むものもあれば、問題とは無関係で気を散らすものもあります。 モデルにノイズの多い無関係な機能を追加すると、コンピューティングリソースが浪費されるだけでなく、意味がなく単なる偶然の類似点でユーザーがクラスター化される可能性があります。
クラスタリングでノイズの多い機能の問題を回避するために、目標イベントとの相関の最小しきい値を持つ機能を認識し、残りの機能を除外することで、潜在的に意味のある機能のサブセットを具体的に識別します。 このしきい値は、重要度の低い関連を収集するため、またはコホートが小さい場合は低く設定されますが、関連性のない可能性のある機能を削除するには十分な大きさです。
機能のフィルタリングとクラスタリングは、機能エンジニアリング用のカスタムApache Sparkコードを使用して行われ、効率を高めるためにAmazonEMRで実行されます。 さらに、このSparkコードは、特徴データをより管理しやすくするためにいくつかの追加の後処理を実行します。これには、特徴のスケーリングや異常値の削除など、クラスタリング品質に対する異常な特徴データの影響を減らすことが含まれます。

ユーザーの最適なクラスタリングを選択したら、各クラスターに、それらのアイテムとの既存の相互作用に基づいて、そのクラスター内での相対的な人気に基づいてアイテムのランキングを提供します。 アイテムをランク付けする主な要因として、クラスターごとに変更された条件付きコンバージョン率(アイテムとの相互作用が与えられた場合のコンバージョンの確率)を使用します。 結果の信頼度を示すために、コンバージョン率をわずかに変更します。一部のアイテムは、クラスター内でのインタラクションが非常に少ない可能性があるため(たとえば、比較的最近追加されたため)、これらのアイテムの信頼性が低いことを示します。 これは、データが少ないコンテンツアイテムの「平均的な」動作の可能性を想定した以前のモデルの追加を使用して行われます。
ランキングの最終的な割り当ては、PythonコードとGoogleのTensorFlowテクノロジーを使用して行われます。 このコードは、機械学習タスクの管理専用のクラウドプラットフォームであるAmazonSagemakerで実行されます。
パーソナライズ、パイピングホット
パイプラインを実行して、2時間ごとに顧客が選択したユーザーのコホートの新しいランキングを生成します。 パイプラインのすべての異なるコンポーネントがシームレスに相互作用できるようにするために、パイプライン管理にApache Airflowを使用して、最適化された方法で異なるプラットフォーム上のコンピューティングタスクをまとめることができます。 実行するたびに、機能とモデルを再生成し、アイテムのランキングと分布に関する統計を収集し、Key-Valueストアのランキングを更新して、お客様が簡単にアクセスできるAPIを介して効率的に提供できるようにします。 私たちのAPIは、選択された値Nに対して、ユーザーごとのアイテムの上位Nランキングを提供するJSONデータを提供します。
この投稿の公開時点で、Recommendを通じて、毎日数十の顧客に25億を超えるパーソナライズされた推奨のデータベースを提供しています。 推奨するために現在計画されている拡張機能には、次のものがあります。
- パーソナライズをさらに改善するための、ニューラルネットワークなどの教師あり学習手法の使用。
- コンテンツベースのアイテム機能。これにより、コンテンツアイテム間の関係を認識し、関連するイベントデータがほとんどまたはまったくない、新しいコンテンツアイテムの適切なオーディエンスを見つける機能が向上します。 と
- コンバージョンを最大化しながら、Recommendが非常に大きなコンテンツセット(> 1000アイテム)にスケーリングできるようにするスマートアイテム検索。
私たちは、お客様に推奨品質を改善し、パーソナライズを改善する方法を毎日繰り返し続けています。 AmplitudeRecommendの詳細を今すぐご覧ください。
