MF(Matrix Factorization)
-
MF的基本原理
将一个矩阵D分解为U和V的乘积,即对于一个特定的规模为 m ∗ n m*n m∗n 的矩阵D,估计出规模分别为 m ∗ k m*k m∗k 和 n ∗ k n*k n∗k 的矩阵U和V,使得 U V T UV^T UVT的值尽可能逼近矩阵D,一般来讲,k的取值应该满足 k ≤ m i n ( m , n ) k≤min{(m,n)} k≤min(m,n) 。如果在推荐系统中,D代表用户对商品的行为矩阵的话,那么U和V则分别代表embedding表示的用户和商品向量。
以公式来表示的话,就是 :
其中 U i U_i Ui表示 U U U 矩阵第 i i i 行的向量, V j V_j Vj 表示 V V V 矩阵第j行向量。
为了限制 U , V U,V U,V的取值呈现一个以0为中心的正态分布,这里对 U , V U,V U,V的值加上正则项,得到目标优化项:
对 L L L求 U i U_i Ui的偏微分,得到对应梯度:
将该结果扩展,可以得到对 L 求 U 和 V L求U和V L求U和V的偏微分为:
得到梯度以后,既可以通过梯度对 U , V U,V U,V的值进行迭代。如果是采用最简单的梯度下降的话,则迭代公式如下:
其中 α α α 表示学习速率。 -
推荐阅读
矩阵分解