矩阵分解在协同过滤中得到了广泛的应用,简单来说,它尝试学习以下参数:
我们可以应用SGD和ALS作为学习算法,但是,正如我在这里读到的,他们说,
如果数据集很大,SGD 不实用,而 ALS 更好。
我想知道如果数据集很大,为什么 SGD 不好?我想即使它很大,我们也可以使用 mini-batch SGD,这是训练大型神经网络的广泛采用的方法,不是吗?
跟进
通过 SGD,我们每次只使用一个数据点,并且只优化整个损失的一部分,即优化,所以我们使用这个梯度部分,产生。
绝对将优化,但它可能会恶化整个损失的其他部分,比如,我的意思是和涉及。
考虑到上述情况,我们如何保证 SGD 会收敛?