[发明专利]一种分布式非负矩阵分解方法有效
申请号: | 201610597735.6 | 申请日: | 2016-07-27 |
公开(公告)号: | CN106294288B | 公开(公告)日: | 2018-09-14 |
发明(设计)人: | 高琰;邢小兵;顾磊;张绍兴 | 申请(专利权)人: | 中南大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 长沙正奇专利事务所有限责任公司 43113 | 代理人: | 马强;王娟 |
地址: | 410083 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种分布式非负矩阵分解方法,对已有的分布式矩阵分解算法DSGD进行改进,通过减少程序分布式执行过程中的数据倾斜,有效降低了DSGD中的锁定等待的耗时,进而提高了算法执行的效率。并在此基础之上添加非负控制及其动态步长选择设计出该分布式非负矩阵分解算法,同时在Spark平台上实现了该算法。本发明不仅执行效率比较高,而且收敛性好,可以很好地应用协同过滤等各个应用领域。 | ||
搜索关键词: | 一种 分布式 矩阵 分解 方法 | ||
【主权项】:
1.一种分布式非负矩阵分解方法,其特征在于,包括以下步骤:1)将原始矩阵X数据读入到hadoop的分布式系统,在Spark平台上计算原始矩阵的统计信息,包括每行及每列所包含的数据个数,以及原始矩阵的数据总数和非零元素的最大id值;2)利用原始矩阵X进行矩阵的分块,如果Spark上的计算节点为S个,则原始矩阵随机划分生成2S×2S个因子矩阵,每个因子矩阵是一个数据块,每2S个数据块组成一个模式,共得到2S个相互独立的模式Pi;任意2个模式Pi和模式Pj没有重叠的数据块;i和j的取值都为1到2S;每个单独的模式都覆盖整个原始矩阵X,使得在单模式下的所有数据块上迭代计算一次后,矩阵W的所有行和矩阵H的所有列都进行了更新,W和H是X进行分解后得到的因子矩阵;3)对Spark平台上的S个计算节点,每次只装载1个模式,在分块过程统计每个模式内各数据块的数据量,根据数据量为每个节点选择2个数据块;4)遍历访问2S个模式,每个模式的2S个不同的数据块在S个计算节点上采用SDG算法对矩阵元素进行迭代更新;该过程迭代执行,直到RSME值小于阈值或迭代次数达到最大值T;步骤3)中,分块过程中,预先计算分块后每个数据块中的数据量,根据数据块中的数据量对同一调度过程中的数据块进行重新划分。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学,未经中南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610597735.6/,转载请声明来源钻瓜专利网。
- 上一篇:基于小波变换与正弦曲线拟合的非稳态畸变噪声检测方法
- 下一篇:一种新型手机壳