因子分解マシンと行列因子分解の違いは?


14

レコメンダーシステムで因子分解マシンという用語に出会いました。Matrix Factorizationがレコメンダーシステムにとって何であるかは知っていますが、Factorization Machineについて聞いたことはありません。それで、違いは何ですか?

回答:


7

マトリックス分解は、マトリックスを分解する方法です。行列を2つの行列に分解して、その積が元の行列とほぼ一致するようにするという1つの仕事をします。

しかし、因子分解マシンは、行列因子分解と比較して本質的に非常に一般的です。問題の定式化自体は非常に異なります。線形モデルとして定式化され、フィーチャ間の相互作用が追加のパラメーターとして使用されます。この機能の相互作用は、単純な形式ではなく、潜在空間表現で行われます。そのため、Matrix Factorizationのような機能の相互作用とともに、さまざまな機能の線形ウェイトも使用します。

マトリックス分解と比較して、主な違いは次のとおりです。

  1. マトリックス分解が一般的に使用される推奨システムでは、サイド機能を使用できません。映画の推薦システムの例では、マトリックスの因数分解で映画のジャンルやその言語などを使用することはできません。因数分解自体は、既存の相互作用からこれらを学習する必要があります。ただし、この情報はFactorization Machinesで渡すことができます。
  2. 因数分解マシンは、回帰やバイナリ分類などの他の予測タスクにも使用できます。これは通常、行列分解の場合ではありません

前の回答で共有された論文は、FMについて説明している元の論文です。また、FMが正確に何であるかについての優れた実例もあります。


4

行列分解は、異なる分解モデルです。FMに関する記事から:

行列因子分解、並列因子分析、またはSVD ++、PITF、FPMCなどの特殊なモデルなど、さまざまな因子分解モデルがあります。これらのモデルの欠点は、一般的な予測タスクには適用できず、特殊な入力データでのみ機能することです。さらに、モデル方程式と最適化アルゴリズムは、タスクごとに個別に導出されます。入力データ(特徴ベクトル)を指定するだけで、FMがこれらのモデルを模倣できることを示します。これにより、因子分解モデルの専門知識がなくても、FMを簡単に適用できます。

libfm.orgから:

「因数分解マシン(FM)は、フィーチャエンジニアリングによってほとんどの因数分解モデルを模倣できる一般的なアプローチです。このように、因数分解マシンは、大規模ドメインのカテゴリ変数間の相互作用を推定する際に、フィーチャエンジニアリングの一般性と因数分解モデルの優位性を組み合わせます。」


1

Dileepの答えのほんの一部です。

関係する特徴が2つのカテゴリ変数(ユーザーとアイテムなど)のみである場合、FMは行列因子分解モデルと同等です。しかし、FMは3つ以上の重要な機能に簡単に適用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.