行列の因数分解アルゴリズムは、コーディネートモデルフィルタで行うことをお勧めします--LFM

(以下、潜在因子モデル、暗黙的なセマンティックモデルLFM推薦システムのアルゴリズム上の)は、広く分野で使用されています。これは、行列の因数分解アルゴリズムは、新しい高さにプッシュするために適用されるお勧めします、推薦アルゴリズムの輝かしい歴史の中で合計を残しました。この記事ではしますLFMアルゴリズムの基本原理与えられ、詳細に原則を。加えて、そのような隠された意味論的モデルはアルゴリズム名声を説明FunkSVDと基準その上でより成功改善BiasSVD最後に、LFMは、より包括的な要約を行っています。

1.行列の因数分解アルゴリズムは、推奨問題を解決するために適用されます

推薦システムでは、シナリオは、私たちは顔がしばしばあることがあります。既存のユーザーおよびアイテムの数が多いだけでなく、アイテムの数が少ないのユーザースコアの数が少ない、我々はユーザーのためのアイテムを推測する項目の数が少ないの既存のユーザーのスコアを使用する必要があります他の項目可能性が高いスコアに、ユーザに推薦スコア項目の予測高そう。例えば、以下の項目ユーザーの評価表:

ユーザー\アイテム アイテム1 2つのアイテム 3つのアイテム 4つのアイテム 5つのアイテム
ユーザー1 3 2
ユーザー2 1 2 6
3人のユーザー 3 4 6
4人のユーザー 1 2 5
5人のユーザー 4 2 3

各ユーザーのために、私たちはより正確にアイテムを獲得していないスコアを予測することを願っています。mおよびnは、物品のマトリックスとみなすユーザーの数の空Mシナリオマトリックス分解に適用され、この問題を解決することができます。そして、この記事では、あること、行列を打破するために使用推奨のいずれかの方法に焦点を当てますLFM解法アルゴリズム。

2. LFM

LFMの核となるアイデアは、暗黙的な特性(潜在因子)およびユーザオブジェクトを介してリンクであり、このアルゴリズムは、テキストマイニングの分野で最初たテキスト暗黙のセマンティクスに相対的な用語を提案ならびに見つけるために使用されるLDAおよびトピックモデルなどを。

2.1どのようには、ユーザーの好みやアイテム(アイテム)プロパティですか?

以下のために、この質問をするとMovieLensデータセット(フィルムスコア)を、ユーザーがアクション映画が好きで、フィルムが答えるために、商品の種類に属しているかどうかを言うかもしれません。しかし、フィルム、それの他のタイプへのユーザの嗜好の度合い?重量の右の共有の項目の他の種類はどのくらいですか?でも、ユーザーの好みやアイテムの種類を特徴づけるために、既存の映画のために、それは完全にユーザの好みやアイテム属性で表現することができますか?答えは、たとえば、ユーザーがこの設定が表現されていないジャッキーチェンの映画、表現することができない人主演の映画監督を見るのが好き、何もありません。しかし、あなたはそれを特徴付ける属性何で行くことに私に依頼する必要がありますか?この1は、粒子サイズを制御することは困難良い答えを与えることができます。

2.2 LFMのレスキューフィールド

この問題への暗黙的な意味モデルより良い解決策は、それが自動化されたクラスタリングを介してユーザの行動の統計に基づいて、データから開始され、ユーザーの好みや記事を特徴付けるベクトルの次元を指定して、最終的には、ユーザの嗜好ベクトルおよび特性ベクトルアイテムを取得することができます。LFMは、次式のユーザによって計算されるuがアイテムのの好み:
\ [嗜好によって(U、I)= P ^ T_U Q_I = \ sum_f ^ F. {P_ {U、K} Q_ {I、K}} \]
この式は、\(P_ {U、K} \) の対策は、ユーザUの嗜好とFの関係を暗黙の型は、\(Q_ {I、K} \)物品計測IF関係暗黙クラス。

今、我々は、ユーザースコア行列期待Mような分解:
\ [M_ {M} = P * N- ^ T_ {M} * K * K N-Q_の{} \]
では、どのようにマトリックス分解か?ここで言っているユーザーは、スコアを予測することが可能になると、我々は可能な限り小さく残差スコア線形回帰を使用してのアイデアは、最終的な見つけるために、平均二乗誤差損失関数として使用することができ、PQをユーザーサンプルの全ての組み合わせを考える、我々は、損失関数が最小化される期待:
\ [\ sum_ {I、J} {(Tq_jのm_Low {} IJ -p_i ^)^ 2} \]
限り、我々は上に最小化することができるように式、対応する極値取得\(P_I \)\(Q_jを\) 我々は、最終的な行列を取得することができ、PQを、次に任意のマトリクスのため、Mブランク位置スコア任意の、我々はできる\ (P ^ T_I q_j \)予測スコアを計算します。

2.3 FunkSVD勧告について

上記の隠されたセマンティックモデルであるLFM基本原理、実際のビジネスでは、オーバーフィット防止のために、私たちはしばしば追加のL2も、私たちを出産した正則化項、FunkSVDアルゴリズムを。その目的関数(J(P、Q)が\ \) のように定義される:
\ [\ underbrace argmin {} _ {P_I、Q_j} \ sum_ {I、J} {(m_Low T_iq_j} -p ^の{IJ)^ 2 + \ラムダ({\ Arrowvert {
P_I} \ Arrowvert} ^ 2_2 + {\ Arrowvert {Q_I} \ Arrowvert} ^ 2_2)} \] λは正則化ファクタ、必要なパラメータの調整です。この最適化問題のために、私たちは通常、最適化するために、勾配降下法による結果を得ることができます。

式の各\(P_I \)\(Q_j \)我々が入手誘導体:
\ [\ FRAC {\部分{J}} {\部分} {P_I} = - 2(m_Low {} -p ^ ijのT_iq_j)q_j + 2 \ラムダ{ P_I} \]

\ [\ FRAC {\部分{J}} {\部分{q_j}} = - 2(M_ {IJ} -p ^ T_iq_j)P_I + 2 \ラムダ{q_j} \]

反復勾配降下式である:
\ [P_I = P_I + \アルファ((m_Low {} ^ T_iq_jのIJを-p)q_j- \ラムダ{P_I})\]

\ [q_j = q_j + \アルファ((M_ {IJ} -p ^ T_iq_j)p_i- \ラムダ{q_j})\]

反復することにより、我々は最終的に取得することができますPQを推奨するために、その後、。

読者へのさらなる理解は、著者は、ベースの実現MovieLensのこの方法を達成するために、データセットを。参照してくださいコードはGitHubFunkSVDアルゴリズム

2.4 BiasSVD勧告について

BiasSVDがあるFunkSVDアルゴリズムのより多くの成功した改良版。BiasSVDは、多くの要因および評価ユーザー無関係な商品:スコアリングシステムは、三つの部分のバイアス因子を含むと仮定する。ユーザバイアス用語として知られている要因とユーザ評価無関係なアイテムの数があります。記事はまた、いくつかの得点因子やユーザーに依存しない、と呼ばれるバイアス項の項目があります。これは、彼らが重要なユーザーのために、彼の得点記録は、彼らが同じ項目に同じスコア場合でも、一般的に低いのに対し、十分に理解、楽観ユーザー、その行動一般高得点ですが、項目ではなく、好みの同程度。同様に、映画へのアイテム、それをするために、例えば、一般的に高得点、そして一般的に低い一部のお粗末な評価を得るために映画の人気、これらの要因は、ユーザーや製品の要因、および利用者の独立しており、製品の好みとは無関係な。

平均スコアリングシステム仮定するμをの、I番目のユーザはオフセット項である\(B_i \)第ながら、j個の物品の物品はバイアス項である(b_j \)\、最適化後のバイアス項に付加されます目的関数\(J(P_I、q_jは) \) :そのようなことである
\ [\ underbrace argmin {} _ {P_I、q_j} \ sum_ m_Low {^} -p-U-B_i T_iq_jの{I、J} {(IJ -b_j)^ 2 + \ラムダ( {\ Arrowvert {P_I} \ Arrowvert} ^ 2_2 + {\ Arrowvert {Q_I} \ Arrowvert} ^ 2_2 + {\ Arrowvert {b_i} \ Arrowvert} ^ 2_2 + {\ Arrowvert {b_j} \ Arrowvert 2_2 ^})} \]
この最適化の目的は、勾配降下法を用いて解くことができます。そしてFunkSVDの差は、2つの妄想アイテム今回我々が有することである\(b_i \)\(b_j \)、\ (P_I \)\(q_j \)反復式とFunkSVD類似するが、各段階勾配誘導体わずかに異なります。\(b_i \)\(b_j \)一般に、最初に0に設定することができ、その後、参加反復。反復式は次のとおりです。
\ [P_I = P_I + \アルファ((M_ {IJ} -p ^ T_iq_j-U-b_i-b_j)q_j- \ラムダ{P_I})\]

\ [q_j = q_j + \アルファ((M_ {IJ} -p ^ T_iq_j-U-b_i-b_j)p_i- \ラムダ{q_j})\]

\ [b_i = b_i + \アルファ(M_ {IJ} -p ^ T_iq_j-U-b_i-b_j- \ラムダ{b_i})\]

\ [b_j = b_j + \アルファ(M_ {IJ} -p ^ T_iq_j-U-b_i-b_j- \ラムダ{b_j})\]

反復することにより、我々は最終的に取得することができますPQを推奨するために、その後、。BiasSVDはそうよりもいくつかのシーンでは、考慮すべきいくつかの追加要素を追加FunkSVDも行います。

読者へのさらなる理解は、著者は、ベースの実現MovieLensのこの方法を達成するために、データセットを。参照してくださいコードはGitHubBiasSVDアルゴリズム

概要

LFMは、一連の指標を最適化することにより、最適なモデルを確立し、優れた理論的基礎で、機械学習に基づく手法です。それは本質的に推奨されるマトリックス分解法に適用される、請求項FunkSVDは新しいレベルにプッシュマトリックスを分解するための推奨される方法であり、それは実際の用途に広く用いられています。もちろん、行列の因数分解は常に、現在の勧告を進行している行列因数分解アルゴリズムの分解ネイティブメソッド(マトリックス分解MF最も広く使用されています)。

マトリックス分解プロセス自体が推奨されるために、それは簡単で、低複雑プログラムへの拡張性を維持しながら、予測効果は、達成されましたこれらは、その貴重な利点です。しかし、LFMは、 勧告の良い説明与えることはできません確かに意味的関心やアイテムのクラスを表しますが、自然言語で記述することは困難であるとユーザーに説明を生成隠されたクラスを計算し、。

LFMモデリングプロセスであることを前提とMの加入者は、N番目の項目、Kの場合、ユーザーは、記事の行動を記録F暗黙の種類、その空間的な複雑さをオフラインで計算され、\(O(F *(M N +))\) 反復のS倍の時間複雑\(O(K * S * F)\) ときM(ユーザー数)とN(記事数)が大きいLFMの尊重ItemCFUserCFもメモリオフライン保存計算し、時間の複雑さからLFM何度などの反復にItemCFUserCF質的なし違い。

同時に、残念ながら、LFMは、 オンラインリアルタイムでお勧めすることはできません、ユーザーが新しい動作を持っているとき、ある、彼はリストは変更されませんお勧めします。LFM予測式、見ることができますLFMをユーザーが推薦リストを生成するとき、あなたはすべての重いものの上に、ユーザーの関心を計算する必要があり、その後、順位は、N項目の最大重量を返します。だから、とき項目の数の多くは、このプロセスの時間複雑さは最大で、非常に高く(O(N * M * F)\)\そのため、LFMはあなたが行う場合には、システムの記事の非常に大きな数には適していません、我々はまた、候補者の比較的小さなリストにユーザーを計算し、次に使用するより高速なアルゴリズムを必要とするLFMの再ランキングを。一方、LFM遅すぎるユーザー推薦リストを生成する際に、そのため、オンラインリアルタイムで計算オフライン、事前にデータベースに保存された勧告の結果を計算するために、すべてのユーザーが必要とすることはできません。

参考:

(転載へようこそ、ソースは通信:. [email protected]を歓迎ご記入ください)

おすすめ

転載: www.cnblogs.com/rainbowly/p/11921582.html