Candes E J, Plan Y. Matrix Completion With Noise[J]. arXiv: Information Theory, 2010, 98(6): 925-936.

这篇文章,同一个人(团队?)写的,遗憾的是,没怎么看懂。怎么说呢,里面的关于对偶的性质实在不知道从何入手,但想来还是得记一笔。

这篇文章,讨论的是这样的一个问题,有一个矩阵\(M \in \mathbb{R}^{n_1 \times n_2}\),但是因为种种原因,我们只能知晓其中的一部分元素即\(P_{\Omega}(M)\),那么问题来了,有没有办法能够恢复\(M\)呢,或者说在什么条件下我们能恢复\(M\)呢(实际上,这个问题好像是作者前一篇论文已经给出了答案)?然后,又有新的困难,因为我们的观测是有误差的,也就是说我们观测到的实际上不是\(P_{\Omega}(M)\),而是\(P_{\Omega}(M+Z)\)。
作者总拿Netflix举例子,类似地,我们可以用网易云来举例子(虽然估计网易云的推荐方法和这个并没有啥大关系)。

我们可以这么想,\(M\)的每一行是一个用户,每一列是一首歌,其中的每一个元素是该用户给这首歌打的分(当然,这个分可能是通过一些操作的判断的,比如收藏,评论,下载,是否跳过等等)。显然,一个用户不可能听过里面的所有的歌,一首歌也没法让所有人都听(打分),所以,我们所见识到的是\(P_{\Omega}(M)\),一个稀疏的矩阵。然而,推荐歌曲,关注的就是那些用户没有听过的但可能被打高分的歌,所以我们要做的就是利用\(P_{\Omega}(M)\)恢复出\(M\)。听起来的确蛮好玩的。

然后问题是,恢复需要什么前提。很显然,如果一首歌没有被人听过,或者该用户没有听过任何歌,肯定没法把分数恢复出来,因为这跟瞎猜没分别,所以,假设就是\(M\)低秩,但是每行每列不能全为零。

和之前一样,作者采用不连贯条件来描述:

恢复1

本来,是应该求解下述问题的:


但是,这个问题很难求解(NP-hard)。

然后\(\mathrm{rank}\)的凸放松是\(\|\cdot\|_*\)核范数,所以:

核范数与SDP

核范数与SDP

然后,作者指出,核范数可以通过对偶,转换成一个半正定规范问题(看这篇论文最大的收获吧)。

\[
\|X\|_* \le y \Leftrightarrow
存在对称矩阵W_1,W_2 使得
M:= \left [ \begin{array}{cc}
W_1 & X \\
X^T & W_2
\end{array} \right ] \succeq 0, \mathrm{Tr} W_1 + \mathrm{Tr} W_2 \le 2y
\]
先来前推后,只要构造出这么一个\(W_1\)就可以了。假设\(X = U\Sigma V^T, \Sigma \in \mathbb{R}^{r \times r}\),\(W_1 = U\Sigma U^T,W_2=V\Sigma V^T\)。那么,\(\mathrm{Tr} W_1 + \mathrm{Tr} W_2 \le 2y\)容易证明,第一个条件这么来玩:
\[
[z_1^T, z_2^T]
\left [ \begin{array}{cc}
W_1 & X \\
X^T & W_2
\end{array} \right ]
\left [ \begin{array}{c}
z_1\\
z_2
\end{array} \right ]
\]
再令\(a = U^Tz_1, b = V^Tz_2\),可得:
\[
[z_1^T, z_2^T]
\left [ \begin{array}{cc}
W_1 & X \\
X^T & W_2
\end{array} \right ]
\left [ \begin{array}{c}
z_1\\
z_2
\end{array} \right ] = (a+b)^T \Sigma (a+b) \ge 0
\]
对于任意的\(z_1, z_2\)成立,所以半正定条件也得证了。

好了,现在来反推:
\(\|X\|_* = \sup \{\mathrm{Tr}(X^TW)|\|W\|\le 1\}\),其中\(\|\cdot\|\)表示谱范数。
注意\(\|A\|_* \le \mathrm{Tr}(A)\),当\(A\)为半正定矩阵的时候。
所以
\[
\|M\|_* \le \mathrm{Tr}(M)=\mathrm{Tr}(W_1+W_2)\le 2y
\]
又\(\|M\|_* = \sup \{\mathrm{Tr}(M^TW)|\|W\|\le 1\}\),所以
\[
\mathrm{Tr}(M^TW) \le 2y
\]

\[
N :=
\left [ \begin{array}{cc}
U^T & 0 \\
0 & V^T
\end{array} \right ]
M
\left [ \begin{array}{cc}
0 & I_{n_1 \times n_1} \\
I_{n_2 \times n_2} & 0
\end{array} \right ]
\left [ \begin{array}{cc}
V & 0\\
0 & U
\end{array} \right ] =
\left [ \begin{array}{cc}
\Sigma & U^TW_1U \\
V^TW_2V & \Sigma
\end{array} \right ]
\]

\[
W =
\left [ \begin{array}{cc}
0 & I_{n_1 \times n_1} \\
I_{n_2 \times n_2} & 0
\end{array} \right ]
\left [ \begin{array}{cc}
V & 0\\
0 & U
\end{array} \right ]
\left [ \begin{array}{cc}
U^T & 0 \\
0 & V^T
\end{array} \right ] =
\left [ \begin{array}{cc}
0 & UV^T \\
VU^T & 0
\end{array} \right ]
\]
容易证明\(\|W\| \le 1\),所以\(\mathrm{Tr}(N) = \mathrm{Tr}(M^TW)=2\|X\|_*\le 2y\),故\(\|X\|_* \le y\)得证。但愿没出错。。。

然后,论文就给出了第一个定理,关于恢复的:

这个结果貌似是之前的工作,,满足一定条件,\(M\)就会有很大概率被恢复。

然后呢,论文又提了以下加强版的不连贯条件:

然后有相应的定理2:

然后跳过。

稳定恢复

用户的评分是不一定正确,不同的场合,不同的天气可能就会给出不同的分数,如果是机器推断的分数那就更是如此了。所以,我们观测的部分数据实际上不一定是\(P_\Omega (M)\),而是\(P_\Omega (Y) = P_\Omega (M+Z)\),其中\(Z\)是类似噪声的存在。
假设,\(\|P_{\Omega}(Z)\|_F \le \delta\),求解下列问题:
\[
\begin{array}{cc}
\min & \|X\|_* \\
s.t. & \|P_{\Omega}(X-Y)\|_F \le \delta
\end{array}
\]
这个问题同样可以作为SDP求解,假设其解为\(\hat{M}\)。有如下定理:


但是问题是,我们从何知道\(\delta\)呢?而在实际操作的时候,作者是求解下述问题:

\[
\min \quad \frac{1}{2} \|P_{\Omega} (X-Y)\|_F^2 + \mu \|X\|_*
\]

作者说,这个问题是上面那个问题的对偶结果,饶了我吧,有点像,但是整不出来。然后,不同的情况,作者也给出了\(\mu\)的一些选择。

作者还拿上面的结果和下面的神谕问题进行了比较:

这个神谕,就是指,我们已经知道\(X \in T\)里面了,然后用了对偶还是共轭算子?晕了已经。就这样吧,再看我就得吐了。

Matrix Completion with Noise的更多相关文章

  1. 矩阵补全(Matrix Completion)和缺失值预处理

    目录 1 常用的缺失值预处理方式 1.1 不处理 1.2 剔除 1.3 填充 2 利用矩阵分解补全缺失值 3 矩阵分解补全缺失值代码实现 4 通过矩阵分解补全矩阵的一些小问题 References 矩 ...

  2. 论文阅读Graph Convolutional Matrix Completion

    摘要:我们从链路预测的视角考虑推荐系统的matrix completion.像电影评分的交互数据可以表示为一个user-item的二分图,其中的edge表示观测到的评分.这种表示是特别有用的在额外的基 ...

  3. Matrix Factorization, Algorithms, Applications, and Avaliable packages

    矩阵分解 来源:http://www.cvchina.info/2011/09/05/matrix-factorization-jungle/ 美帝的有心人士收集了市面上的矩阵分解的差点儿全部算法和应 ...

  4. 小小知识点(二十三)circularly symmetric complex zero-mean white Gaussian noise(循环对称复高斯噪声)

    数学定义 http://en.wikipedia.org/wiki/Complex_normal_distribution 通信中的定义 在通信里,复基带等效系统的噪声是复高斯噪声,其分布就是circ ...

  5. Data Science and Matrix Optimization-课程推荐

    课程介绍:Data science is a "concept to unify statistics, data analysis, machine learning and their ...

  6. {ICIP2014}{收录论文列表}

    This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...

  7. 论文阅读之 DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation

    DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation Xia ...

  8. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  9. 2016CVPR论文集

    http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...

随机推荐

  1. Python爬虫9-request包介绍及应用

    GitHub代码练习地址:1.两种简单get请求方法:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac13_request ...

  2. Java数据结构和算法 - 数组

    Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new ...

  3. Json,Gson,Ajax基础知识

    //json 是一种轻量级的文本格式,解析简单,他也是一键值来存,数据与数据的分割是以,来分割 //{} 看到大括号就是一个对象,[]代表集合 ,基本上所有数据的交互都是以json格式来进行传递的 / ...

  4. AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文 ...

  5. 警惕挂着开源的招牌到处坑蒙拐骗的垃圾项目,比如iBase4J

    开源界,本是技术爱好者百花齐放.各显其能的地方.但是,不管什么好东西,到了这块奇葩的土地都能变了味.现在的开源界,真的是鱼龙混杂,有些开源软件,不知道是噱头喊得高,还是star刷得好,竟能凭借一身垃圾 ...

  6. Nginx学习笔记~目录索引

    回到占占推荐博客索引 前几天整理了<Docker的学习笔记索引>,受到了很多朋友的关注,今天把Nginx的文章也整理一下,以后将永久更新,像大叔之前的<EF文章系列>,< ...

  7. SpringBoot整合Netty并使用Protobuf进行数据传输(附工程)

    前言 本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容.Protobuf会简单的介绍下用法,至于Netty在之前的文章中已经简单的介绍过了,这里就不 ...

  8. 关于ApiCloud的Superwebview在androidstudio中集成微信支付模块,提示模块未绑定的问题

    前两天ApiCloud项目集成了微信支付模块,android端今天也将ApiCloud官方的uzWxPay.jar集成了.在编译玩测试的时候提示wxPay模块为绑定!我的项目是使用ApiCloud推出 ...

  9. MySQL 笔记整理(17) --如何正确地显示随机消息?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 17) --如何正确地显示随机消息? 如果有这么一个英语单词表,需要每次 ...

  10. 基于IIS的WCF

    (1)创建WCF服务应用程序 (2)配置IIS 将WCF服务应用程序配置IIS网站,需要使用.net4.0集成版本的程序池 (3)使用SvcUtil.exe生成客户端代码和配置 SvcUtil.exe ...