需要帮助在小批量梯度下降实现协同过滤中找到逻辑错误

问题描述

我正在尝试实现小批量梯度下降,以便根据 cust_id、item_id 和评分进行预测。

我已将效用矩阵(用户 x 项目)分解为用户特征矩阵和项目特征矩阵。这里的特征是指潜在特征。但是我得到了项目特征矩阵的巨大值(在第一个纪元本身的 e^140 范围内!!)

据我所知,算法是这样的-

对于每个时代{

对于所有迭代(迭代不是 1 epoch 中的批次){

更新项目特征矩阵

新用户特征矩阵

}

检查均方根误差

}

实施失败的可能原因-

  1. 我怀疑我计算项目-特征矩阵的逻辑是错误
  2. 矢量化逻辑错误

我已关注以下资源-

1.https://www.youtube.com/watch?v=4qJaSmvhxi8

  1. https://www.youtube.com/watch?v=-_4Zi8fCZO4

  2. https://upscfever.com/upsc-fever/en/data/en-exercises-25.html

这是我的实现的 google colab 链接-

https://colab.research.google.com/drive/1eSuyH7d97ppuDsxlv4EhWmTF1muCkHE5?usp=sharing

如果有人能帮我弄清楚我在这里做错了什么,那将会很有帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)