Geometric matrix completion with recurrent multi-graph neural networks代码理解①算法思路

1.问题优化

这篇论文的思路就很数学,从优化的角度入手
矩阵补全问题本质是求最小秩,优化这个np难问题,则有
在这里插入图片描述
其中F范数平方即所有元素平方和
*范数是通过奇异值分解得到的稀疏值经过松弛得到的核范数
参考自https://www.cnblogs.com/aezero/p/4860174.html
进一步优化核范数,使对于矩阵这样的几何结构平滑松弛(点题)
这时就分别有用户和电影的邻接矩阵(相似度矩阵?),分别得到拉普拉斯矩阵,进而得到矩阵的平滑度
在这里插入图片描述
从而有Dirichlet范数
在这里插入图片描述
现在得到目标函数在这里插入图片描述

进一步改善复杂度将矩阵X分解得到最终的目标函数作为损失
在这里插入图片描述

这里就存在一个问题,用户和电影的对称的邻接矩阵怎么来呢,源码的数据集是已经有特征工程做好的,难道是相似度矩阵?

2.图卷积核

已知拉普拉斯矩阵的特征值分解
在这里插入图片描述
接下来是图卷积核的原理

在这里插入图片描述
从图信号学迁移过来类比傅里叶变换有如下图卷积的计算公式在这里插入图片描述
其中g即为学习参数

此时存在要对拉普拉斯矩阵做特征分解的巨额复杂度,所以引入切比雪夫多项式将卷积核展开近似,
在这里插入图片描述
其中切比雪夫多项式为
在这里插入图片描述
𝜃为学习参数,k为决定展开阶数的超参数

调了一下k试试,最终的rmse并没有多大差距,仅是损失收敛平缓程度有些差别

3.算法流程

如上文所说,先喂入GCN编码得到嵌入,然后给LSTM解码出最终矩阵
这里将原本的矩形邻接矩阵分解出W和H两个对称阵,再分别对这俩做GCN,这样就可以使用拉普拉斯进而切比雪夫了
于是,依照切比雪夫网络的公式,先由拉普拉斯矩阵得到切比雪夫数列,再将这数列与邻接矩阵相乘,然后再乘权重(𝜃)加偏重,形成一个卷积层
此时的输出是一堆序列,也即编码出来的嵌入
喂入LSTM,经过记忆遗忘输出更新等操作得到最终的对称矩阵,这里的遗忘大概也能起到丢弃的作用吧,然后两个对称矩阵相乘就是补全后的大邻接矩阵了
这里损失用上面提到的目标函数来计算

4.个人体会

首先这个算法确实相当慢,换用GPU会提速不少,但是应该是代码里没有及时清理缓存,就连CPU都不一定能撑够3000次
以及代码中用到的这个图也不是很理解是干啥的在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值