论文及代码出处
论文原文:Beyond Alternating Updates for Matrix Factorization with Inertial Bregman Proximal Gradient Algorithms
补充材料下载链接:https://proceedings.neurips.cc/paper/2019/file/bc7f621451b4f5df308a8e098112185d-Supplemental.zip
代码出处:https://github.com/mmahesh/cocain-bpg-matrix-factorization
BPG-MF算法
算法流程
无正则
根据算法流程对 P k P^k Pk和 Q k Q^k Qk进一步推导,可以得到无正则项的BPG-MF算法为如下形式:
L2正则
代码结构
作者提供的程序包实现了BPG-MF、CoCaIn BPG-MF、
BPG-MF-WB、PALM和iPALM五种算法,可以通过修改main.py文件中的algo参数进行选择。同时还可以通过修改dataset_option对使用的数据集进行选择。
算法功能实现的函数在my_functions.py中,主要函数及其功能如下:
函数名 | 功能 |
---|---|
main_func | 计算数据一致项 |
grad | 计算光滑项g的梯度 |
make_update | 实现算法的更新策略 |
breg | 计算Bregman距离 |
make_update函数
breg_num为1时,该函数实现了PALM与iPALM;breg_num为2时,该函数实现了BPG相关算法。接下来讨论BPG算法的代码实现。