推奨アルゴリズム [1] 従来の機械学習による推奨アルゴリズム

推奨アルゴリズム[1]

従来の機械学習の推奨アルゴリズム

人気に基づく推奨アルゴリズム

単純かつ失礼で、主要ニュース、Weibo ホットリストなどと同様に、PV (訪問量)、UV (ユニーク訪問者)、1 日の平均 VV (訪問回数) またはシェア率、その他のデータに基づいて、特定のユーザーに推奨する人気順。

長所: サインアップしたばかりの新規ユーザー向け。

短所: ユーザーにパーソナライズされた推奨事項を提供できません。

改善: このアルゴリズムに基づいて、ユーザー グループの人気を並べ替えに追加したり、ホット リストのスポーツ コンテンツを最初にスポーツ ファンに推奨したり、政治家の話題の投稿を政治について話すのが好きなユーザーにプッシュしたりするなど、いくつかの最適化を行うことができます。 。

協調フィルタリングに基づく推奨アルゴリズム

転置インデックス

転置インデックス。多数の文書から特定の単語を含む一連の文書を検索します。これは O(1) または O(log n) の時間計算量で実行されます。推奨では、広告ライブラリまたはアイテムのコレクションにインデックスが付けられ、いくつかのターゲティング条件に従って、関連する広告またはアイテムが広告ライブラリ内で迅速に検索されます。

  1. インデックスを作成する必要があるドキュメント (アイテム) を収集します。
  2. 各文書の単語の分割。
  3. ドキュメントを前処理します。
  4. すべてのドキュメントの逆インデックスを作成します。インデックスには、辞書とすべての逆レコードのリストが含まれます。

ここに画像の説明を挿入

例:

[外部リンク画像の転送に失敗しました。ソース サイトには盗難防止リンク メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-8exdaWrn-1673923050957) (C:\Users\11878\AppData\Roaming\Typora) \typora-user-images\ image-20221224202028114.png)]

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-GMaT4iJh-1673923050958) (C:\Users\11878\AppData\Roaming\Typora\) typora-user-images\ image-20221225121342039.png)]

TF-IDF (用語頻度 - 逆文書頻度):

各文書について、バッグ オブ ワード (BOW) を使用して文書をベクトル形式で記述します。これは類似性の測定に便利です。シソーラスを構築すると、各記事はシソーラスの長さと同じベクトルに対応し、ベクトルの対応する位置要素は文書内で対応する単語が出現する回数になります。逆文書頻度の場合: 単語がすべての記事に出現する場合、その単語は記事間の類似性に寄与せず、記事間の違いを区別する方法がありません。この単語はベクトルに対するものです。寄与率を下げる必要があります。

IDF ( m ) = log ( NDF ( m ) ) IDF(m)=log(\frac{N}{DF(m)})I D F ( m )=l o g (DF ( m ) _N)、N は記事の総数を表し、m はこの単語が出現する記事の数を表します。

記事内の各単語について、値tf − idft , d = tft , d × idft tf-idf_{t,d}=tf_{t,d}\times idf_t を計算する必要があります。t f私は、私t d=t ft d×私は、私現在の文書内の単語の頻度は、その単語が登場した記事の数の逆数で乗算されます。

  • 単語が少数の文書にのみ出現し、現在の文書ではより頻繁に出現する場合、その単語は現在の文書をより代表しており、単語の割合が比較的大きくなります。
  • 単語の出現頻度が低い場合、または多くの文書に出現する場合、その単語の重みは比較的小さくなります。

それらは何に使われますか? 記事について説明します。記事の類似性を計算します。

ユーザーベースの協調フィルタリングアルゴリズムの説明

同じような趣味を持つ人を見つけるにはどうすればよいですか? データの類似性を計算してみよう!

  1. ジャカード類似係数

    J ( A , B ) = A ∩ BA ∪ BJ(A,B)=\frac{A\cap B}{A \cup B}J ( A B =A BA B

  2. 角度余弦(コサイン)

    ベクトル A とベクトル B の間の角度のコサイン公式

    cos ( θ ) = a ⋅ b ∣ a ∣ ∣ b ∣ cos(\theta)=\frac{a\cdot b}{|a||b|}cos ( θ )=a ∣∣ b a⋅b _ _

  3. その他の方法: ユークリッド距離、マンハッタン距離

ここに画像の説明を挿入

まず最も似ている人を見つけるにはどうすればよいでしょうか? 類似度を計算してみよう!

ここに画像の説明を挿入

この式は、ユーザー i とユーザー j の類似度を計算するものです。I(i, j) は、ユーザー i とユーザー j が一緒に評価した項目を表します。R(i, x) は、ユーザー i のユーザー x に対する評価を表します。R (i) 頭の上にバーがあるものは、ユーザー i のすべての評価の平均スコアを表します。平均スコアが減算される理由は、評価が厳しいユーザーと緩いユーザーがいるからです。ユーザーの評価は、相互評価を避けるために正規化されています影響。

最も似ている人を見つけた後、その似た人に基づいて、まだ好きではないアイテムの加重スコアを計算し、最もスコアの高いアイテムが推奨されます。

  1. 投稿リストの作成
  2. 共起行列を構築する
  3. ユーザー間の類似性を計算します
項目ベースの協調フィルタリング アルゴリズムの説明

ここに画像の説明を挿入

計算式:

画像

|N(i)| はアイテム i を好むユーザーの数、|N(j)| はアイテム j を好むユーザーの数、|N(i)∩N(j)| はアイテムを好むユーザーの数を示します項目 i と項目 j の両方。上の式から、アイテム i とアイテム j は多くのユーザーに好かれているため類似していることがわかり、類似度が高いほど、同時に多くのユーザーがそれらを気に入っていることになります。

既存の問題:

  • 疎行列問題

    ユーザーや製品に何千もの評価がある場合、マトリックスは非常に大きくなり、その多くは空白になります。コンピューターを使用してこのようなマトリックスを処理すると、メモリと時間が無駄になります。

  1. 投稿リストの作成
  2. 共起行列を構築する
  3. ユーザー間の類似性を計算します
潜在因子モデル

マトリックスファクターモデル

m 人のユーザーと n 個のアイテムの場合、 m × nm\times nになります。メートル×nの行列。行列要素はアイテムに対するユーザーの好みまたは評価です。この行列を 2 つの行列 ( m × km\times kのいずれか) に分解します。メートル×kの行列、別のk × nk\times nk×nの行列。各ユーザーと各アイテムは k 次元ベクトルで表され、2 つのベクトルの内積はアイテムに対するユーザーの好みを表します。同時に、ユーザー間の類似度やアイテム間の類似度も計算できます。

ここに画像の説明を挿入

解決:

  1. 固有値分解
  2. 特異値分解
  3. 勾配降下法

興味分類の方法に基づいて、アイテムの興味を分類できます。特定のユーザーについては、まずそのユーザーの興味の分類を取得し、次にその分類から好みそうなアイテムを選択します。

公式:p ( u , i ) = rui = pu T qi = ∑ f = 1 F pu , kqi , kp(u, i)=r_{ui}=p_u^Tq_i=\sum_{f=1}^{F }p_{u,k}q_{i,k}p ( u ,=rあなたは=pあなたTq私は=f = 1pq

pu , k p_{u,k}pカテゴリ k、 qi、k q_{i,k}に対するユーザー u の好みです。q項目 i がカテゴリ k に属する可能性です。これは実際には行列分解のプロセスです。

  1. アイテムを分類するにはどうすればよいですか?
  2. ユーザーがどのような種類のアイテムに興味を持っているか、その度合いをどのように判断するのでしょうか。
  3. 特定のクラスについて、このクラスに属するどの項目がユーザーに推奨されるように選択されますか。クラス内でのこれらの項目の重みはどのように決定すればよいでしょうか?

グラフベースのモデル

ここに画像の説明を挿入

関連性の高い機能:

  • 2 つの頂点を結ぶパスが多数あります。
  • 2 つの頂点を結ぶパスの長さは比較的短いです。
  • 2 つの頂点を結ぶパスは、より大きな出次数を持つアイテムを通過しません。

コンテンツベースの推奨アルゴリズム

  1. コンセプト

    主題の関連情報、ユーザの関連情報、および主題に対するユーザの操作行動に基づいて、推奨アルゴリズムモデルが構築され、ユーザに推奨サービスを提供する。ここでの主題関連情報は、メタデータ情報、タグ、ユーザーコメント、および主題をテキストで説明する手動でラベル付けされた情報である場合があります。ユーザー関連情報とは、人口統計情報 (年齢、性別、好み、地理、収入など) を指します。主題に対するユーザーの操作行動には、コメント、お気に入り、いいね、閲覧、閲覧、クリック、ショッピング カートへの追加、購入などが含まれます。コンテンツベースの推奨アルゴリズムは通常、ユーザー自身の行動にのみ依存してユーザーに推奨を提供し、他のユーザーの行動は関与しません。

  2. 実現原理

    ここに画像の説明を挿入

  3. とアイテムベースの協調フィルタリングアルゴリズムの違い

    協調フィルタリングアルゴリズムは、ユーザーとアイテムの関係性を理解して推奨するだけで、アイテム自体の属性は考慮しませんが、コンテンツベースアルゴリズムは、アイテム自体の属性を考慮し、アイテムの特性を利用します。類似アイテムを見つけるためのベンチマークとしてアイテム自体を使用すること。

  4. 通常、次の 3 つのステップがあります。

    1. ユーザー情報とユーザーの操作行動に基づいてユーザー特徴表現を構築します。

    2. オブジェクトのオブジェクト特徴表現は、オブジェクト情報に基づいて構築される。

    3. ユーザーとオブジェクトの特徴表現に基づいて、そのオブジェクトがユーザーに推奨されます。

      ここに画像の説明を挿入

ロジスティック回帰

オフライン トレーニング: Spark、sklearn、Tensorflow など、さまざまな特徴の組み合わせをトレーニングします。たとえば、ユーザー (uid) とアイテム (item) の 2 つの特徴の交差によって得られる特徴をトレーニングに使用する場合、uid のユーザーはアイテムを特徴とするアイテムの超平面により重量を軽減します。

オンラインで使用する場合、多くの特徴の組み合わせを入力し、保存された重みファイルから対応する重みを見つけ、対応する重みを取り出して直接計算して、対応する分類結果を取得します。

LS-PLM (大規模区分線形モデル) 大規模区分線形モデル

または、MLR (混合ロジスティック回帰) 混合ロジスティック回帰と呼ばれます。

ここに画像の説明を挿入
それは統合されたアルゴリズムとして理解できます。

クラスタリング:ユーザー別(男性、女性)などでサンプルを分類し、カテゴリごとにLRモデルを学習させ、クラスタリング後、各カテゴリの可能性値を取得します。この可能性を重みとして使用して、複数の LR モデルを統合します。

特徴交差に基づく推奨アルゴリズム

通常の線形モデルでは、各特徴は独立して考慮され、特徴の線形結合は活性化関数の後に弱く交差されます。

多数の特徴間には相関関係があります。

非線形強化。

情報はより差別化されます。

おすすめ

転載: blog.csdn.net/no1xiaoqianqian/article/details/128713066