レコメンダーシステムで因子分解マシンという用語に出会いました。Matrix Factorizationがレコメンダーシステムにとって何であるかは知っていますが、Factorization Machineについて聞いたことはありません。それで、違いは何ですか?
レコメンダーシステムで因子分解マシンという用語に出会いました。Matrix Factorizationがレコメンダーシステムにとって何であるかは知っていますが、Factorization Machineについて聞いたことはありません。それで、違いは何ですか?
回答:
マトリックス分解は、マトリックスを分解する方法です。行列を2つの行列に分解して、その積が元の行列とほぼ一致するようにするという1つの仕事をします。
しかし、因子分解マシンは、行列因子分解と比較して本質的に非常に一般的です。問題の定式化自体は非常に異なります。線形モデルとして定式化され、フィーチャ間の相互作用が追加のパラメーターとして使用されます。この機能の相互作用は、単純な形式ではなく、潜在空間表現で行われます。そのため、Matrix Factorizationのような機能の相互作用とともに、さまざまな機能の線形ウェイトも使用します。
マトリックス分解と比較して、主な違いは次のとおりです。
前の回答で共有された論文は、FMについて説明している元の論文です。また、FMが正確に何であるかについての優れた実例もあります。
行列分解は、異なる分解モデルです。FMに関する記事から:
行列因子分解、並列因子分析、またはSVD ++、PITF、FPMCなどの特殊なモデルなど、さまざまな因子分解モデルがあります。これらのモデルの欠点は、一般的な予測タスクには適用できず、特殊な入力データでのみ機能することです。さらに、モデル方程式と最適化アルゴリズムは、タスクごとに個別に導出されます。入力データ(特徴ベクトル)を指定するだけで、FMがこれらのモデルを模倣できることを示します。これにより、因子分解モデルの専門知識がなくても、FMを簡単に適用できます。
libfm.orgから:
「因数分解マシン(FM)は、フィーチャエンジニアリングによってほとんどの因数分解モデルを模倣できる一般的なアプローチです。このように、因数分解マシンは、大規模ドメインのカテゴリ変数間の相互作用を推定する際に、フィーチャエンジニアリングの一般性と因数分解モデルの優位性を組み合わせます。」