【综述】矩阵补全问题
前言
最近接触到这个问题, 看了一些相关的资料,觉得维基百科的介绍是最为精炼详实的, 以这篇笔记翻译了一下, 也供自己查阅所用。
矩阵补全
顾名思义, 矩阵补全就是指将一个部分元素已知的矩阵的缺失值补全的问题。 这个问题的著名背景是美国的视频公司Netflix提出了这样的问题, 给出一个矩阵, 其每行代表一个用户, 每列则代表用户所看过的电影。 这样一个矩阵的维度是非常庞大的, 因此Netflix公司希望可以只储存其中的个别值,就能将矩阵进行补全, 算是一种信息的压缩。
如果没有任何其他的辅助限制的话, 这个问题其实有无数组解——除了被观测到的元素之外, 其他矩阵元素可以是任意值。 因此, 矩阵补全往往要求补全的矩阵的秩最小。 或者, 假设已知了原始矩阵的秩rrr,我们就是补全一个秩为rrr的矩阵。
上图展示了一个例子。 左边的是缺失的矩阵, 我们希望将其补全。 如果已知矩阵的秩为1,那么就能很轻松的知道, 每一行都必须和第三行是一样的(否则秩不为1)。
低秩矩阵补全
常见的矩阵补全问题可以表示如下:
minXrank(X)subject to Xij=Mij∀i,j∈E\begin{array}{lc} \min _{X} & \operatorname{rank}(X) \\ \text { subject to } & X_{i j}=M_{i j} \forall i, j \in E \end{array} minX subject to rank(X)Xij=Mij∀i,j∈E
求解这个问题的时候, 我们需要保证足够多的矩阵采样数(即已知元素的个数)来确保这个问题不是欠定的, 能求得一个唯一解。
均匀采样
为了使分析更为简便, 我们往往假设观测的元素是在EEE中均匀采样所得。 一种更特殊的假设是考虑伯努利采样( Bernoulli sampling), 即每个矩阵元素都有ppp的概率被观测到。 我们令 p=Nmnp = \frac{N}{mn}p=mnN, 其中 NNN 为 总的期望采样元素数,m,n为矩阵的维度。
最少的观测数量
假设我们现在要恢复一个 秩为rrr的m×nm\times nm×n的矩阵MMM。 【3】中证明了, 当 r≤n2r \le \frac{n}{2}r≤2n 时, 至少需要4nr−4r24nr - 4r^24nr−4r2个观测元素,可以确保该矩阵补全问题有唯一解。
同时, 每一行和每一列都必须要被采样到。
这个也很容易证明: 我们可以把矩阵M奇异值分解为: M=UΣVHM = U\Sigma V^HM=UΣVH
比如MMM的第一行没有被采样到, 由矩阵相乘我们可知, UUU的第一行只参与了构建MMM的第一行,那么当MMM的第一行是任意的时候, 我们可以任意的设置UUU的第一行。 同理, 如果第一列没有被采样到, 我们可以任意的设置 VHV^HVH的第一列。 如果考虑伯努利采样的话, 已被证明 需要 O(nlogn)O(n \log n)O(nlogn)个元素被观测才能确保大概率每一行和每一列都被观测到了。
综合这两点考虑, 我们认为所需的观测元素数的下界为 nrlognnr \mathrm{log}nnrlogn。
Incoherence
并不是所有的矩阵都能很好的补全。 事实上, 我们希望被补全的矩阵不要太 稀疏。 尽可能的在每个奇异值方向上都有分量的矩阵是较为容易补全的。 反例是 这样的一个矩阵 [10⋯0⋮⋮0000]\left[\begin{array}{cccc}1 & 0 & \cdots & 0 \\ \vdots & & \vdots & \\ 0 & 0 & 0 & 0\end{array}\right]⎣⎢⎡1⋮000⋯⋮000⎦⎥⎤ 几乎只能通过观测所有元素才能确定。
噪声情况下
在实际中, 我们的观测可能还存在噪声:
Yij=Mij+Zij,(i,j)∈ΩY_{i j}=M_{i j}+Z_{i j},(i, j) \in \OmegaYij=Mij+Zij,(i,j)∈Ω
ZZZ代表观测的噪声。 最后观测到的矩阵可以写为:
PΩ(Y)=PΩ(M)+PΩ(Z)P_{\Omega}(Y)=P_{\Omega}(M)+P_{\Omega}(Z) PΩ(Y)=PΩ(M)+PΩ(Z)
那么,我们可以把问题建模为:
minX∥X∥∗subject to ∥PΩ(X−Y)∥F≤δ\begin{array}{lr} \min _{X} & \|X\|_{*} \\ \text { subject to } & \left\|P_{\Omega}(X-Y)\right\|_{F} \leq \delta \end{array} minX subject to ∥X∥∗∥PΩ(X−Y)∥F≤δ
∥X∥∗\|X\|_{*}∥X∥∗代表XXX的核范数, 等于奇异值之和。 可以近似的将最小化核范数看做最小化秩, 原理就和将 l0l_0l0范数近似为l1l_1l1范数类似。
算法
凸优化
上面的最小化核函数的问题, 可以看做是一个凸松弛, 将一个NP-hard问题放松成了凸问题。 他可以改写为下式:
minW1,W2trace(W1)+trace(W2)subject to Xij=Mij∀i,j∈E[W1XXTW2]⪰0\begin{array}{ll} \min _{W_{1}, W_{2}} & \operatorname{trace}\left(W_{1}\right)+\operatorname{trace}\left(W_{2}\right) \\ \text { subject to } & X_{i j}=M_{i j} \forall i, j \in E \\ & {\left[\begin{array}{cc} W_{1} & X \\ X^{T} & W_{2} \end{array}\right] \succeq 0} \end{array} minW1,W2 subject to trace(W1)+trace(W2)Xij=Mij∀i,j∈E[W1XTXW2]⪰0
这个经典的半正定规划(SDP)问题。 可以用凸优化算法进行求解。
【综述】矩阵补全问题相关推荐
- 低秩矩阵补全算法matlab实现,推荐系统中的矩阵补全算法
最基本的问题,以用户电影评分为例,也就是这个用户-电影矩阵. 表中是用户多电影的评分,但评分有缺失,因为用户不可能对所有电影作出评价. 那么推荐问题就是给用户合理推荐一个没看过的电影,合理是指,预测用 ...
- 综述|基于深度学习的深度图补全
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 在科学研究中,从方法论上来讲,都应"先见森林,再见树木".当前,人工智能学术研究方 ...
- 【综述专栏】基于深度学习的深度图补全
在科学研究中,从方法论上来讲,都应"先见森林,再见树木".当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异.对于AI从业者来说,在广袤的知识森林中,系统梳理脉络 ...
- 点云补全综述 Comprehensive Review of Deep Learning-Based 3D Point Clouds Completion Processing and Analys
点云补全(点云完成)综述(Point Clouds Completion) By 人工智能社区 www.studyai.com Comprehensive Review of Deep Learnin ...
- 知识图谱补全算法综述(动态知识图谱补全)
论文阅读笔记:知识图谱补全算法综述 论文:丁建辉, 贾维嘉. 知识图谱补全算法综述[J]. 信息通信技术. 概念 表示学习相关理论 知识图谱表示学习 静态知识图谱补全(static KGC) 动态知识 ...
- 知识图谱最新权威综述论文解读:知识图谱补全部分
上期我们介绍了2020年知识图谱最新权威综述论文<A Survey on Knowledge Graphs: Representation, Acquisition and Applicatio ...
- Transformer在3D点云中的应用综述(检测/跟踪/分割/降噪/补全)
1 摘要 Transformer 一直是自然语言处理 (NLP) 和计算机视觉 (CV) 的核心.NLP 和 CV 的巨大成功激发了研究者对 Transformer 在点云处理中的使用的探索.但是,T ...
- AAAI 2020 开源论文 | 可建模语义分层的知识图谱补全方法
©PaperWeekly · 作者|蔡健宇 学校|中国科学技术大学 研究方向|知识图谱 近些年,知识图谱(Knowledge Graph)在自然语言处理.问答系统.推荐系统等诸多领域取得了广泛且成功的 ...
- 时态知识图谱补全的方法及其进展
点击上方蓝字关注我们 时态知识图谱补全的方法及其进展 申宇铭, 杜剑峰 广东外语外贸大学信息科学与技术学院,广东 广州 510420 摘要:时态知识图谱是将时间信息添加到传统的知识图谱而得到的.近年来 ...
- TensorFlow实现基于深度学习的图像补全
第一步:将图像理解为一个概率分布的样本 你是怎样补全缺失信息的呢? 但是怎样着手统计呢?这些都是图像啊. 那么我们怎样补全图像? 第二步:快速生成假图像 在未知概率分布情况下,学习生成新样本 [ML- ...
最新文章
- ACR2010_MRI骶髂关节炎症与CTX-II变化以及TNF拮抗剂治疗过程中全身炎症改变相关...
- SAP 电商云 Spartacus UI 修改代码后,重新构建基于 SSR 版本的程序报错
- day45-前端CSS
- 【TensorFlow】TensorFlow从浅入深系列之十 -- 教你认识卷积神经网络的基本网路结构及其与全连接神经网络的差异
- Python正则表达式,看完这篇文章就够了...#华为云·寻找黑马程序员#
- 创建父需求子需求构建需求树_还不知道B+树 ?看完,别再问我什么是B+树 了
- GitHub上不错的Android开源项目(二)
- 继“段友”之后,抖音也慌了?
- Javascript:流程控制
- 转载 关于git的常用命令总结
- 职场 | 算法是怎样决定你的职业生涯的
- qmap按插入顺序排序_C++语言排序算法之插入排序
- vue前端开发框架、常用vue组件库及简单示例
- python测网速_python一键测试网速
- HTML5系列代码:使用空格符号
- web技术分析| 一篇前端图像处理秘籍
- 美化你的Typora
- OSChina 周二乱弹 —— 好朋友都脱单了 而我就比较厉害了
- 经典!《MySQL性能调优手册》高清电子版,限时 3 天免费下载
- 2017华为软件精英挑战赛解分析
热门文章
- cmd下批量pingIP地址
- 计算机取证的相关案例,计算机取证案例分析
- 时间校准(全网最全最准确方案)完美无解
- 最新2022中国大学排名发布!
- 2018你那计算机考试新题型,2018年421多省公务员考试判断推理新题型、新趋势
- flash player 11.2 64位 linux,Adobe Flash Player 11.2.202 Beta 1支持 64位操作系统
- 关于axure的 中继器表格合计功能
- python做一段有意思的代码_Python爬虫入门有意思的小长代码
- Windows下生成SSH密钥
- 山东轻工业学院CSDN高校俱乐部参加“新一代语音云发布暨语音开发者大会”与“2012百度开发者大会”体会心得