レコメンドシステム—— FM(Factorization Machine)の応用(リコール)
シーリズの目次
レコメンドシステムのシーリズをここにまとめています。
無料相談コース(未経験OK)
- 機械学習やレコメンド分野に悩んでいる人
- 機械学習やレコメンド分野に携わりたい人
ぜひ下記の無料コースへお申し込みください!
機械学習エンジニア、レコメンドエンジニアになるためのサポート
レコメンドシステムの紹介
レコメンドシステムには通常、いくつかの段階があります。
まず、ユーザーに提案されるアイテムを1,000個以下に絞り込む「リコール」があります。
次に、「ランキング」で、少数のアイテムを正確にソートするために複雑なモデルを使用できます。
最後に、「再ランキング」では、精緻なソート結果が得られても、通常はユーザーに直接表示されず、既読のアイテムの削除、多様性の確保、広告の組み込みなど、さまざまなビジネス戦略が追加されることがあります。その後、最終的な推薦結果が形成され、ユーザーに表示されます。
上記のオンラインレコメンドの2つの段階のタスク分割から、リコール段階は候補セットの計算が非常に多いため、速度を確保するために単純なモデルを使用し、少ない特徴を使用して一般化能力を確保し、ユーザーの興味をこの段階でできるだけ取り戻す必要があることがわかります。
一方、ランキング段階の主要な目標は精度であり、処理されるアイテムのデータ量が少ないため、できるだけ多くの特徴を使用し、比較的複雑なモデルを採用し、精度を最優先とすることができます。
FM(Factor Machines)モデルは、精度、解釈性、迅速な開発展開の特性を兼ね備えたモデルであり、リコール段階で広く使用されています。
FM公式の復習
まずFMの式を復習しましょう:
IDや0-1特徴(例:ユーザーが男性かどうか、ユーザーが機械学習のプロファイルを持っているかどうかなど)がオンラインで使用される場合、公式を以下のように変更できます:
計算の際には、特徴値が1の特徴だけを取って上記の操作を行います。
公式の推理
FMの公式は理解しましたが、リコールはどうやって行うのでしょうか?
よくあるU2iリコール、すべての候補物質の材料のembeddingを計算してオフラインでインデックスを立てて、リアルタイムでuserのembeddingを計算して、それからuserのembeddingを使用してインデックス内で検索を行います(ベクトルデータベースを使用することができます)、100万単位の物質候補をミリ秒単位で見つけ出すことができます。
以下では、オンラインリアルタイム(ミリ秒単位)リコールの仕組みについて詳しく見ていきます。
FMの特徴は3つに分類されます:
- ユーザー側の特徴、消費履歴、ユーザーの基本情報などuserクラスの特徴
- アイテム側の特徴、一般的には、物品の内容理解の特徴、およびいくつかの消費データの特徴
- コンテキスト情報、(時間が発生した時、場所、など)
userによってitemを選別するので、コンテキストの特徴をユーザ側に配置することもできます。つまり:
上記のFM式の特徴を2つに分割します。1つはユーザ側の特徴であり、もう1つはアイテム側の特徴です。ユーザー側の特徴を
オンラインでのリコール
リコールのシナリオでは、ユーザーに対してアイテムをリコールするため、すべてのアイテムに対して、ユーザーの特徴のウエイトと
ユーザーとitemのマッチングスコア=itemの一次ウエイト+item特徴内の交差+itemとユーザの特徴交差
注意:上記の公式の
このように:
これで分かりますがユーザーのitemマッチングスコアは:
簡略化すれば:
そうすると、一般的なembeddingと一致させます。そして:
上記の式により、オフラインですべてのitemのembeddingを計算してインデックスを立て、オンラインでユーザーのembeddingを計算してそのままベクトルインデックスリコールを行うことができる。
上記が、FMを使用してembeddingベースのリコールを行う方法です。
Discussion