前言
现在,矩阵因子分解的问题已经转化成了一个标准的优化问题,需要求解P、Q,使目标损失函数取最小值
最小化过程的求解,一般采用随机梯度下降算法或者交替最小二乘法来实现
交替最小二乘法(Alternating Least Squares ,ALS)
ALS的思想是:由于两个矩阵P和Q都未知,且通过矩阵乘法耦合在一起,为了使它们解耦,可以先固定Q,把P当做变量,通过损失函数最小化求出P,这是一个经典的最小二乘问题;再反过来固定P,把Q当作变量,求解出Q:如此交替执行,直到误差满足阈值条件,护着到达迭代上线;
ALS 算法
ALS算法具体过程如下:
1、为Q指定一个处置Q0,可以是随机生成或者全局平均值
2、固定当前Q0,求解P0
3、固定当前P0值,求解Q1
4、固定当前Q1值,求解P1
5、重复以上过程
6、直到损失函数的值c收敛,迭代结束;
求解过程
以固定Q,求解P为例
由于每一个用户u都是相互独立的,当Q固定时,用户特征向量Pu应该取得的值与其他用户特征向量无关,所以每一个Pu都可以单独求解