レコメンデーション システムの再現層アルゴリズム

序文

この記事に興味がある場合は、「【訪問者必読-ガイドページ】この記事には、ホームページ上のすべての高品質のブログが含まれています」をクリックして、完全なブログ分類と対応するリンクを表示できます。


全体概要

レコメンデーション システムでは、何千万もの候補アイテムが存在することが多く、それらを 1 つずつ並べ替えるのは現実的ではないため、通常は「最初に選別してから並べ替える」という方法が取られます。

  • スクリーニング部分はリコールレイヤーであり、リコール率を確保しながら、ユーザー情報に基づいて数百万の候補アイテムから数百のアイテムを選別します。
  • 並べ替え部分は並べ替えレイヤー、つまり、フィルター処理されたアイテムを並べ替えるプロセスであり、このプロセスでは精度率 (つまり、ユーザーのクリック率) を確保する必要があります。

通常、リコール層には次の種類のメソッドがあります。

  1. ユーザーの関心タグ、登録情報に基づいたフィルタリング、最近の人気、友人のお気に入り、さまざまな人気のある動画と人気のない動画のフィルタリングなど、論理的なスクリーニングを通じて
  2. 協調フィルタリング + 高速近隣探索アルゴリズム
  3. 埋め込み + 高速近隣探索アルゴリズム

その中で、「協調フィルタリング」は、共通の関心を共有するユーザー、または同じユーザーが好きなアイテムを介して候補アイテムを協調フィルタリングすることを指し、「埋め込み」は、さまざまな埋め込み方法 (word2vec、グラフ埋め込み、bert など) によって取得されるベクトルを指します。 ...)。さらに、一般的な「高速近隣検索アルゴリズム」には、KDTree、最小ハッシュ、および LSH が含まれます。


最小ハッシュ

LSH (Locality Sensitive Hashing) は Locality Sensitive Hashing であり、 And then Or 操作を使用して精度の確率を高め、誤判定の確率を減らします。

Min-hash: LSH の一種で、2 つのベクトルが Jaccard の類似性を見つけることができる場合に使用できます。Jaccard の類似性 = 交差/結合。

解決手順は次のとおりです。

  • 各順列は、行列を行ごとにランダムにシャッフルすることです
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

原理:

  • 順列ごとに、各ユーザーが同じ署名ハッシュ値を取得する確率は、それらの間の Jaccard 類似度であり、SSとして示されます。S ;[簡単な証明]
  • 経験豊富なttT回の順列、t × mt\times mt×m行列 (mmmはユーザー数)、それをbbbバンド、各バンドにはrrRライン;
  • ある帯域において、u1 と u2 の署名ハッシュ値が完全に一致する確率はS r S^rSr、同じ帯域で異なる確率は( 1 − S r ) (1-S^r)( 1Sr )
  • したがって、すべての帯域で異なる確率は( 1 − S r ) b (1-S^r)^b( 1Sr )b [非類似と判断]、すべての帯域で少なくとも 1 つの同一確率がある1 − ( 1 − S r ) b 1-(1-S^r)^b1( 1Sr )b [類似と判断];
  • このアプローチは、AND の次に OR と呼ばれ、AND セクションではrr と呼ばれます。rが大きいほど、2 つのユーザー署名ハッシュが同じである確率は低くなります [正解率が高くなります]; OR 部分では、bbbが大きいほど、2 人のユーザーが少なくとも 1 つのハッシュを同じにする確率が高くなります [再現率が高くなります]。
    ここに画像の説明を挿入

一度置換して、署名値の行に対応するアルゴリズムを生成します。

  • これは、毎回行番号をランダム化し、それを最初の行に置き換え、値 1 を割り当てるが値を割り当てないことと同じです。
    ここに画像の説明を挿入

ローカリティ・センシティブ・ハッシング

wiki: コンピューター サイエンスでは、ローカリティ センシティブ ハッシング (LSH) は、同様の入力項目を高い確率で同じ「バケット」にハッシュするアルゴリズム手法です (バケットの数は、可能な入力項目の範囲よりもはるかに小さいです)。アイテムが同じバケットに入る場合、この手法はデータ クラスタリングと最近傍検索に使用できます。ハッシュ衝突が最小化されるのではなく、最大化されるという点で、従来のハッシュ技術とは異なります。あるいは、この手法は、高次元データの次元を削減する方法と見なすこともできます。高次元の入力アイテムは、アイテム間の相対距離を維持しながら低次元のバージョンに縮小できます。

全体的な直感:

  • 高次元空間で距離が近い点は、低次元空間に射影された場合でも近いままです (または、確率を増幅して再現率を向上させる手段を使用できます)。
  • 高次元空間では元々遠くにある点を低次元空間に射影すると、確率の高い距離はやはり遠くなりますが、確率の低い距離は近くなります。( and メソッドを使用すると、誤判定の確率を減らし、正解率を向上させることができます)

ここに画像の説明を挿入

上記の投影操作は、線形変換に置き換えることができます。

  • 射影されたベクトルx \boldsymbol{x}を仮定します。x、長さkkkの場合、x \boldsymbol{x}xと別のランダムに生成された長さkkkv \boldsymbol{v}x \boldsymbol{x}と考えることができるvの内積xの 1 次元空間へのx ⋅ v \boldsymbol{x}\cdot \boldsymbol{v}バツv
  • wwwは等しい部分の数に設定され、通常は0 00 w w w間のbbb、境界の凝固を避けるために使用されます。つまり、射影演算の式は次のとおりです:
    h = ⌊ x ⋅ v + bw ⌋ \boldsymbol{h}=\left\lfloor\frac{\boldsymbol{x}\cdot \boldsymbol {v}+ b}{\boldsymbol{w}}\right\rfloor時間=wバツv+bここに画像の説明を挿入

LSH は広く使用されており(LSH の理論)、次の 5 種類の距離に対応するバリアントがあります。

  • ユークリッド距離
  • ジャカード係数
  • コサイン類似度
  • 編集距離
  • ハミング距離

参考文献

おすすめ

転載: blog.csdn.net/qq_41552508/article/details/127532608