矩阵分解

Hulu视频如何提升推荐多样性?

▼魔方 西西 提交于 2019-11-28 22:54:04
作者 | 余沾 整理 | 深度传送门(ID: deep_deliver) 导读: 本文主要介绍Hulu在NIPS 2018上发表的《Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity》中,提出的DPP算法解决视频推荐中的多样性问题。 引言 随着机器学习技术日益成熟,机器学习的应用领域也越来越广。其中,推荐领域是机器学习一个比较常见且成功的应用场景。 推荐多样性和相关性是衡量推荐算法常用的标准 ,最近项目团队针对搜索多样性做了大量的研究工作。Hulu陈拉明的推荐算法研究团队在NIPS 2018会议上提出的基于DPP的推荐多样性算法,能较好地提高推荐的多样性和相关性,并且执行效率也十分可观。 我们团队也复现了该算法,具有不错的上线效果。 DPP 的构造 行列式点过程 (Determinantal Point Process, DPP )是一种性能较高的概率模型。DPP将复杂的概率计算转换成简单的行列式计算,并通过核矩阵的行列式计算每一个子集的概率。DPP不仅减少了计算量,而且提高了运行效率,在图片分割、文本摘要和商品推荐系统中均具有较成功的应用。 DPP通过最大后验概率估计,找到商品集中相关性和多样性最大的子集 ,从而作为推荐给用户的商品集。

[译]Multi-View Stereo: A Tutorial(1)

对着背影说爱祢 提交于 2019-11-28 16:34:18
摘要: 该教程是MVS领域专注于实用算法的实践手册,MVS算法只依赖于图像,基于一些合理的假设(比如?)重建出真实精确的3d模型. 最重要的是场景固定.该教程将mvs问题转化成图像/几何约束优化问题.详细来说主要在两方面: 1.鲁棒实现图像一致性检测;2.有效的优化算法. 主要讲了这两因素在应用程序和工业中如何应用.本教程还描述了高级方法涉及到领域专业知识如:结构优化,以及接下来的挑战和未来的研究方向. 1简介 1.1 图像获取 有序无序 1.2 相机投影模型 如简介所述,为了使重建效果更好,MVS算法需要额外的信息,尤其是每个图片对应的相机模型-它描述了如何将3D点投影到对应的2D空间,MVS算法常采用针孔相机模型,它的相机投影矩阵是3X4的矩阵[88],按比例定义的.这是通常用于拍摄静态照片的现成数码相机的模型。任何一个3X4的矩阵都可以分解成3x3的上三角矩阵K和3X4姿态矩阵的乘积[R|T]. K --- 相机内参矩阵 (fx, fy): 垂直/水平焦距 (cx, cy): 主点 s : 扭曲畸变 [R|T] --- 外参矩阵 R : 旋转参数 T : 平移参数 矩阵K是相机的内参矩阵,它是由相机的内参组成,垂直、水平焦点(光心)长度(f x , f y ),主点(c x , c y ),畸变参数s。[R|T]矩阵为外参矩阵,R是相机的旋转矩阵,T是相机的平移矩阵

numpy奇异值分解,广义逆矩阵与行列式

眉间皱痕 提交于 2019-11-28 14:01:21
SVD 是一种因子分解运算, 将一个矩阵分解为3个矩阵的乘积 其中, 奇异值矩阵是对角线矩阵 Key_Function np.linalg.svd函数, 可以对矩阵进行奇异值分解.   U: 正交矩阵   sigma: 表示奇异值矩阵对角线的数组, 其他非对角线元素均为0   V: 正交矩阵 np.diag函数, 得出完整的奇异值矩阵 Code import numpy as np A = np.mat("4 11 14; 8 7 -2") print(A) ''' [[ 4 11 14] [ 8 7 -2]] ''' U, Sigma, V = np.linalg.svd(A, full_matrices=False) print(U) ''' [[-0.9486833 -0.31622777] [-0.31622777 0.9486833 ]] ''' print(Sigma) # 这个Sigma只是奇异值矩阵对角线上的值 ''' [ 18.97366596 9.48683298] ''' print(np.diag(Sigma)) ''' [[ 18.97366596 0. ] [ 0. 9.48683298]] ''' print(V) ''' [[-0.33333333 -0.66666667 -0.66666667] [ 0.66666667 0.33333333 -0

Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)

久未见 提交于 2019-11-28 13:04:54
   注意:论文中,很多的地方出现baseline,可以理解为参照物的意思,但是在论文中,我们还是直接将它称之为基线, 也 就是对照物,参照物. 这片论文中,作者没有去做实际的实验,但是却做了一件很有意义的事,他收罗了近些年所有推荐系统中涉及到深度学习的文章 ,并将这些文章进行分类,逐一分析,然后最后给出了一个推荐系统以后的发展方向的预估. 那么通过这篇论文,我们可以较为 系统的掌握这些年,在推荐系统方面,深度学习都有那些好玩的应用,有哪些新奇的方法,这片论文起到了一个简报的作用,下面是论文的一个粗糙翻译: 概述:   随着互联网上数字信息量的急剧增加,在线商店、在线音乐、视频和图像库、搜索引擎和推荐系统已经成为在短时间内查找 相关信息的最方便的方式。近年来,深度学习在语音识别、图像处理和自然语言处理等领域得到了广泛的关注。同时,最近的一 些研究也显示了深度学习在推荐系统和信息检索领域的应用。近年来,深度学习在语音识别、图像处理和自然语言处理等领域得 到了广泛的关注。同时,最近的一些研究也显示了深度学习在推荐系统和信息检索领域的一些应用。在这个简短的回顾中,我们 涵盖了最近在使用各种不同的深度学习技术在推荐领域取得的进展。我们将综述分为三个部分:协作系统、基于内容的系统和混 合系统。本文还讨论了深度学习集成推荐系统在多个应用领域中的贡献

奇异值分解

人盡茶涼 提交于 2019-11-28 12:44:06
SVD也是对矩阵进行分解,但是和特征分解不同,SVD并不要求要分解的矩阵为方阵。假设我们的矩阵A是一个 $A=U\sumV^2$ 来源: https://www.cnblogs.com/xcxy-boke/p/11407636.html

四步理解GloVe!(附代码实现)

两盒软妹~` 提交于 2019-11-28 09:52:32
1. 说说GloVe 正如GloVe论文的标题而言, GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。 我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。 2. GloVe的实现步骤 2.1 构建共现矩阵 什么是共现矩阵? 共现矩阵顾名思义就是共同出现的意思,词文档的共现矩阵主要用于发现主题(topic),用于主题模型,如LSA。 局域窗中的word-word共现矩阵可以挖掘语法和语义信息, 例如: I like deep learning. I like NLP. I enjoy flying 有以上三句话,设置滑窗为2,可以得到一个词典: {"I like","like deep","deep learning","like NLP","I enjoy","enjoy flying","I like"} 。 我们可以得到一个共现矩阵(对称矩阵):

线性代数之——对角化和伪逆

我的未来我决定 提交于 2019-11-28 09:14:42
这部分我们通过选择更好的基底来产生更好的矩阵。当我们的目标是对角化矩阵时,一个选择可以是一组特征向量基底,另外一个选择可以是两组基底,输入基底和输出基底是不一样的。这些左右奇异向量是矩阵四个基本子空间中标准正交的基向量,它们来自于 SVD。 事实上,所有对 \(A\) 的分解都可以看作是一个基的改变。在这里,我们只关注两个突出的例子,有一组基的 \(\Lambda\) 和有两组基的 \(\Sigma\) 。 \(S^{-1} AS=\Lambda\) 如果输入和输出基都是 \(A\) 的特征值。 \(U^{-1} AV=\Sigma\) 如果这些基分别是 \(A^TA\) 和 \(AA^T\) 的特征值。 只有当 \(A\) 是方阵并且有 \(n\) 个不相关的特征向量时,我们才能将其对角化成 \(\Lambda\) 。而通过 SVD,任意矩阵都可以对角化成 \(\Sigma\) 。如果一个矩阵是对称的、反对称的或者正交的,那么有 \(A^TA=AA^T\) ,在这种情况下,奇异值是特征值的绝对值,上面的两个对角化形式除了一个 \(-1\) 或者 \(e^{i\theta}\) 的因子外是相同的。 另外,注意 Gram-Schmidt 分解 \(A=QR\) 只选择了一个新的基底,也就是通过 \(Q\) 给出的输出正交基,而输入基底则是标准基由 \(I\) 给出

二维坐标变换

雨燕双飞 提交于 2019-11-28 06:04:07
平时开发程序,免不了要对图像做各种变换处理。有的时候变换可能比较复杂,比如平移之后又旋转,旋转之后又平移,又缩放。 直接用公式计算,不但复杂,而且效率低下。这时可以借助变换矩阵和矩阵乘法,将多个变换合成一个。 最后只要用一个矩阵对每个点做一次处理就可以得到想要的结果。 另外,矩阵乘法一般有硬件支持,比如3D 图形加速卡,处理3D变换中的大量矩阵运算,比普通CPU 要快上1000倍。 下面是3类基本的2D图形变换。 平移: 设某点向x方向移动 dx, y方向移动 dy ,[x,y]为变换前坐标, [X,Y]为变换后坐标。 则 X = x+dx; Y = y+dy; 以矩阵表示: 1 0 0 [X, Y, 1] = [x, y, 1][ 0 1 0 ] ; dx dy 1 1 0 0 0 1 0 即平移变换矩阵。 dx dy 1 旋转: 旋转相比平移稍稍复杂: 设某点与原点连线和X轴夹角为b度,以原点为圆心,逆时针转过a度 , 原点与该点连线长度为R, [x,y]为变换前坐标, [X,Y]为变换后坐标。 x = Rcos(b) ; y = Rsin(b); X = Rcos(a+b) = Rcosacosb - Rsinasinb = xcosa - ysina; (合角公式) Y = Rsin(a+b) = Rsinacosb + Rcosasinb = xsina + ycosa

推荐系统实践笔记(八)

北战南征 提交于 2019-11-28 05:50:13
第八章 评分预测问题   一个评分记录为一个三元组(u,i,r)我们用$r{ui}$表示一个用户u给物品i的评分. 8.2 评分评测算法   (1) 平均值   假设有两个分类的函数,一个是用户分类函数$\phi$,一个是物品分类函数$\varphi$.$\phi(u)$定义了用户u所属的类,$varphi(i)$定义了物品i所属的类,评分预测值为:      (2) 基于领域的方法   基于用户的领域算法认为一个用户对一个物品的评分,需要参考和这个用户兴趣相似的用户对该物品的评分.      这里, S(u, K) 是和用户 u 兴趣最相似的 K 个用户的集合,N(i) 是对物品 i 评过分的用户集合.$r_{ui}$是用户v对物品i的评价,$\hat{r_v)}$是用户v所有评分的平均值,用户之间的相似度可以通过皮尔逊系数计算:   (3) 隐语义模型与矩阵分解模型   用户的评分行为可以表示成一个评分矩阵 R,其中 R [ u ][ i ] 就是用户 u 对物品 i 的评分,评分系统在某种意义上是对矩阵中确实的值填空.要寻找的补全方法是一种对矩阵扰动最小的补全方法--既补充之前与之后矩阵的特征值相差不大.   最开始使用SVD(奇异值分解)来解决这个问题,SVD对空间的要求以及其计算所需的高额时间负责度是大型推荐系统所不能接受的.Funk-SVD用了隐模型的方法来改进SVD

PCA算法学习_2(PCA理论的matlab实现)

こ雲淡風輕ζ 提交于 2019-11-28 04:05:40
   前言   在前面的博文 PCA算法学习_1(OpenCV中PCA实现人脸降维) 中已经初步介绍了PCA算法的大概流程及在人脸降维上面的应用。本文就进一步介绍下其理论基础和matlab的实现(也是网上学者的代码)。   开发环境:Matlab2012a    基础   假设X是一个m*n的矩阵,是由样本数据构成的矩阵。其中m表示样本的属性维数,n表示样本的个数。现在要对X进行线性变换变成另一个矩阵Y,使得Y的协方差矩阵为对角矩阵,这样的Y就认为是对原始矩阵X提取主成分后的矩阵,实际过程中只需取Y的前面主要的行即可。   X变换到Y的线性变换公式为:      X和Y的协方差计算方法为:         从下面的公式可以看出Cy和Cx的关系为:      因为Cx是对称矩阵,对Cx进行特征值分解就可以将其变换成对角矩阵,见下面的公式推导:      公式中的P和E满足:      其中D是由Cx的特征向量构成的对角矩阵。P是线性变换矩阵,P的每一行都是Cx矩阵的特征向量,且P是正交矩阵,一般情况下把特征值大的特征向量排在矩阵前面几行。   由此可知,求出P后就可以求出X主成分矩阵了。   另外,还可以求出PCA的白化矩阵,PCA的白化矩阵就是特征向量去相关的矩阵,白化矩阵的协方差阵一般为单位矩阵,在PCA中可以这么求:inv(sqrt(D))*E'