我正在使用 MATLAB 中的矩阵分解进行协同过滤。我正在使用梯度下降进行参数学习。要优化的成本函数是:
我有以下更新方程:
矩阵的维度是:
我无法提出渐变的矢量化形式,因此我必须明确地循环 i 和 j,这大大减慢了代码速度。
我正在使用 MATLAB 中的矩阵分解进行协同过滤。我正在使用梯度下降进行参数学习。要优化的成本函数是:
我有以下更新方程:
矩阵的维度是:
我无法提出渐变的矢量化形式,因此我必须明确地循环 i 和 j,这大大减慢了代码速度。
您的问题是如何对方程进行矢量化以进行更新?您有一个 i 和 j 的向量,并且对于每次更新,您都对 j 求和。计算每个分量的向量,然后对 j 求和。
提供实际代码可能会对您的问题有所帮助。就目前而言,它似乎很模糊。