一种信息相似度确定方法及装置制造方法及图纸

技术编号:13290643 阅读:67 留言:0更新日期:2016-07-09 09:13
本发明专利技术公开了一种信息相似度确定方法及装置,包括:根据每个用户对多种数据信息的操作记录,将多种数据信息生成为一个评分矩阵;计算评分矩阵中每行元素中每两个元素之间的乘积,并随机生成一个在预设范围区间内的随机数值;计算概率门限值,并根据概率门限值和随机数值对每行元素中每两个元素之间的乘积进行筛选得到有效数值;根据有效数值、预设相似度阈值、评分矩阵的列数和评分矩阵中每列元素的模,计算评分矩阵中每两列元素之间的关联度;根据评分矩阵中每两列元素之间的关联度,确定多种数据信息之间的相似度。采用本发明专利技术实施例,可以解决分布式的大规模相似度运算问题,降低计算的复杂度,防止堆栈溢出。

【技术实现步骤摘要】

本专利技术涉及信息处理领域,尤其涉及一种信息相似度确定方法及装置
技术介绍
随着信息技术的不断发展,终端处理的数据越来越巨大,用户一般希望能得到相似度很高的信息,例如:对于用户喜欢的某一首歌曲,用户希望查找出与该歌曲相似的其他歌曲。在现有技术方案中,通常是利用spark进行相似度分布式计算,首先需要获取用户操作数据,构建评分矩阵,当求取行向量之间的相似度时,可以固定其中的某一行向量数据,将该行向量数据与其余各行向量分别求余弦相似度,并对计算得到的多个余弦相似度进行排序,从而得到每一个行向量的相似列表。此种方法一般分为map阶段和reduce阶段,在map阶段,主要获取原始数据中的有效数据,并将有效数据输出到reduce阶段,在reduce阶段,首先对相同的键值(列偏移量)对应的数据直接相加,然后分别除以对应列向量的模,计算得到任意两个列向量的余弦相似度,进而确定两种数据信息之间的相似度。但是,现有技术存在如下缺点:第一,算法时间复杂度高,要求取所有列向量对应相似列向量,运算的时间复杂度为O(m2*n),例如:当前某个音乐软件的用户量为的量级(亿级),而曲库也有上千万107的歌曲数量,消除同歌组的影响,也有百万级106的歌曲,因此此种相似度计算算法时间复杂度达到O(1020),即使在spark分布式集群中,也需要耗费大量的时间与计算资源;第二,在spark计算过程中,中间产生的shuffle数据量大,容易导致executor堆栈溢出,在map阶段,shufflewrite的数据量为O(L2*m),假设L=1000,那么shufflewrite的数据量可以达到O(1012),如果某些列数据特别密集,那么很容易造成数据倾斜,使得数据都集中集群的某些worker上,从而导致executor堆栈溢出。
技术实现思路
本专利技术实施例提供一种信息相似度确定方法及装置。可以解决运算时间复杂度高以及堆栈溢出的问题。本专利技术第一方面提供了一种信息相似度确定方法,包括:根据每个用户对多种数据信息的操作记录,将所述多种数据信息生成为一个评分矩阵,所述评分矩阵的每行元素表示一个用户,所述评分矩阵的每列元素表示一种数据信息;计算所述评分矩阵中每行元素中每两个元素之间的乘积,并针对所述每两个元素之间的乘积随机生成一个在预设范围区间内的随机数值;根据预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算概率门限值,并根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之间的乘积进行筛选得到有效数值;根据所述有效数值、所述预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算所述评分矩阵中每两列元素之间的关联度;根据所述评分矩阵中每两列元素之间的关联度,确定所述多种数据信息之间的相似度。其中,所述其中,ξ为预设相似度阈值,p=k*log(n),n为所述评分矩阵的列数,k为常数,||ci||为第i列元素的模,||cj||为第j列元素的模;所述根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之间的乘积进行筛选得到有效数值包括:判断所述随机数值是否小于所述概率门限值;若所述随机数值小于所述概率门限值,则对所述随机数值对应的两个元素之间的乘积进行保留。其中,所述概率门限值包括第一门限值和第二门限值,所述其中,ξ为预设相似度阈值,p=k*log(n),n为所述评分矩阵的列数,k为常数,||ci||为第i列元素的模,||cj||为第j列元素的模;所述根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之间的乘积进行筛选得到有效数值包括:判断所述随机数值是否小于所述第一门限值;若所述随机数值小于所述第一门限值,则判断所述随机数值是否小于所述第二门限值;若所述随机数值小于所述第二门限值,则对所述随机数值对应的两个元素之间的乘积进行保留。其中,所述关联度包括第一关联度和第二关联度,所述根据所述有效数值、所述预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算所述评分矩阵中每两列元素之间的关联度包括:根据所述预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算条件参数;若所述条件参数大于预设阈值,则根据所述有效数值以及所述评分矩阵中每列元素的模,计算所述第一关联度,若所述条件参数不大于所述预设阈值,根据所述有效数值、所述预设相似度阈值以及所述评分矩阵的列数,计算所述第二关联度。其中,所述所述所述其中,所述为第i列以及第j列对应的所有所述有效数值之和。其中,所述多种数据信息包括多首歌曲,所述方法还包括:根据所述多首歌曲之间的相似度,确定用户终端当前播放歌曲与其他每首歌曲之间的相似度是否大于所述预设相似度阈值;若所述当前播放歌曲与所述其他每首歌曲中的目标歌曲之间的相似度大于所述预设相似度阈值,则将所述目标歌曲推送至所述用户终端进行播放。其中,所述多种数据信息包括多首歌曲,所述方法还包括:接收用户终端发送的歌曲播放历史记录;根据所述歌曲播放历史记录,确定所述用户终端已播放歌曲;根据所述多首歌曲之间的相似度,确定所述已播放歌曲与其他每首歌曲之间的相似度是否大于所述预设相似度阈值;若所述当前播放歌曲与所述其他每首歌曲中的目标歌曲之间的相似度大于所述预设相似度阈值,则将所述目标歌曲推送至所述用户终端进行播放。相应地,本专利技术第二方面提供了一种信息相似度确定装置,包括:矩阵生成模块,用于根据每个用户对多种数据信息的操作记录,将所述多种数据信息生成为一个评分矩阵,所述评分矩阵的每行元素表示一个用户,所述评分矩阵的每列元素表示一种数据信息;随机生成模块,用于计算所述评分矩阵中每行元素中每两个元素之间的乘积,并针对所述每两个元素之间的乘积随机生成一个在预设范围区间内的随机数值;数值筛选模块,用于根据预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算概率门限值,并根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之间的乘积进行筛选得到有效数值;关联度计算模块,用于根据所述有效数值、所述预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算所述评分矩阵中每两列元素之间的关联度;相似度确定模块,用于根据所述评分矩阵中每两列元素之间的关联度,确定所述多种数据信息之间的相似度。其中,所述其中,ξ为预设相似度阈值,p=k*log(n),n为所述评分矩阵的列数,k为常数,||ci||为第i列元素的模,||cj||为第j列元素的模;所述数值筛选模块具体用于:判断所述随机数值是否小于所述概率门限值;若所述随机数值小于所述概率门限值,则对所述随机数值对应的两个元素之间的乘积进行保留。其中,所述概率门限值包括第一门限值和第二门限值,所述其中,ξ为预设相似度阈值,p=k*log(n),n为所述评分矩阵的列数,k为常数,||ci|本文档来自技高网
...

【技术保护点】
一种信息相似度确定方法,其特征在于,所述方法包括:根据每个用户对多种数据信息的操作记录,将所述多种数据信息生成为一个评分矩阵,所述评分矩阵的每行元素表示一个用户,所述评分矩阵的每列元素表示一种数据信息;计算所述评分矩阵中每行元素中每两个元素之间的乘积,并针对所述每两个元素之间的乘积随机生成一个在预设范围区间内的随机数值;根据预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算概率门限值,并根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之间的乘积进行筛选得到有效数值;根据所述有效数值、所述预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的模,计算所述评分矩阵中每两列元素之间的关联度;根据所述评分矩阵中每两列元素之间的关联度,确定所述多种数据信息之间的相似度。

【技术特征摘要】
1.一种信息相似度确定方法,其特征在于,所述方法包括:
根据每个用户对多种数据信息的操作记录,将所述多种数据信息生成为一
个评分矩阵,所述评分矩阵的每行元素表示一个用户,所述评分矩阵的每列元
素表示一种数据信息;
计算所述评分矩阵中每行元素中每两个元素之间的乘积,并针对所述每两
个元素之间的乘积随机生成一个在预设范围区间内的随机数值;
根据预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元素的
模,计算概率门限值,并根据所述概率门限值和所述随机数值对所述每行元素
中每两个元素之间的乘积进行筛选得到有效数值;
根据所述有效数值、所述预设相似度阈值、所述评分矩阵的列数和所述评
分矩阵中每列元素的模,计算所述评分矩阵中每两列元素之间的关联度;
根据所述评分矩阵中每两列元素之间的关联度,确定所述多种数据信息之
间的相似度。
2.如权利要求1所述的方法,其特征在于,所述其中,ξ为预设相似度阈值,p=k*log(n),n为所述评分矩阵的列数,k为常数,
||ci||为第i列元素的模,||cj||为第j列元素的模;
所述根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之
间的乘积进行筛选得到有效数值包括:
判断所述随机数值是否小于所述概率门限值;
若所述随机数值小于所述概率门限值,则对所述随机数值对应的两个元素
之间的乘积进行保留。
3.如权利要求1所述的方法,其特征在于,所述概率门限值包括第一门限

\t值和第二门限值,所述其中,ξ为
预设相似度阈值,p=k*log(n),n为所述评分矩阵的列数,k为常数,||ci||为第i
列元素的模,||cj||为第j列元素的模;
所述根据所述概率门限值和所述随机数值对所述每行元素中每两个元素之
间的乘积进行筛选得到有效数值包括:
判断所述随机数值是否小于所述第一门限值;
若所述随机数值小于所述第一门限值,则判断所述随机数值是否小于所述
第二门限值;
若所述随机数值小于所述第二门限值,则对所述随机数值对应的两个元素
之间的乘积进行保留。
4.如权利要求2或3所述的方法,其特征在于,所述关联度包括第一关联
度和第二关联度,所述根据所述有效数值、所述预设相似度阈值、所述评分矩
阵的列数和所述评分矩阵中每列元素的模,计算所述评分矩阵中每两列元素之
间的关联度包括:
根据所述预设相似度阈值、所述评分矩阵的列数和所述评分矩阵中每列元
素的模,计算条件参数;
若所述条件参数大于预设阈值,则根据所述有效数值以及所述评分矩阵中
每列元素的模,计算所述第一关联度,若所述条件参数不大于所述预设阈值,
根据所述有效数值、所述预设相似度阈值以及所述评分矩阵的列数,计算所述
第二关联度。
5.如权利要求4所述的方法,其特征在于,所述所
述所述其中,所述为第i列以

\t及第j列对应的所有所述有效数值之和。
6.如权利要求1-5任意一项所述的方法,其特征在于,所述多种数据信息
包括多首歌曲,所述方法还包括:
根据所述多首歌曲之间的相似度,确定用户终端当前播放歌曲与其他每首
歌曲之间的相似度是否大于所述预设相似度阈值;
若所述当前播放歌曲与所述其他每首歌曲中的目标歌曲之间的相似度大于
所述预设相似度阈值,则将所述目标歌曲推送至所述用户终端进行播放。
7.如权利要求1-5任意一项所述的方法,其特征在于,所述多种数据信息
包括多首歌曲,所述方法还包括:
接收用户终端发送的歌曲播放历史记录;
根据所述歌曲播放历史记录,确定所述用户终端已播放歌曲;
根据所述多首歌曲之间的相似度,确定所述已播放歌曲与其他每首歌曲之
间的相似度是否大于所述预设相似度阈值;
若所述当前播放歌曲与所述其他每首歌曲中的目标歌曲之间的相似度大于
所述预设相似度阈值,则将所述目标歌曲推送至所述用户终端进行播放。
8.一种信息相似度确定装置,其特征在于,所述装置包括:
矩阵生成模块,用于根据每个用户对多种数据信息的操作记录,将所述多
种数据信息生成为一个评分矩阵,所述评分矩阵的每行元素表示一个用户,所
述评分矩阵的每列元素表示一种数据信息;
随机生成模块,用于计算所述评分矩阵中每行元素中每两个元素之间的乘
积,并针对所述每两个元素之间的乘积随机生成一个在预设范围区间内的随机
数值;
数值...

【专利技术属性】
技术研发人员:黄安埠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1