获取推荐对象的方法及装置的制造方法

文档序号:9217284阅读:166来源:国知局
获取推荐对象的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种获取推荐对象的方法及装置。
【背景技术】
[0002] 随着互联网技术的发展,人们进入了信息过载的时代。在用户访问网站的过程中, 大量的新闻、商品、视频、音乐等等对象呈现在了用户面前。怎样筛选出用户真正感兴趣的 内容对提高网站的访问量及收益有着非常重要的意义。推荐系统相关的技术在这样的背景 下得到了越来越广泛的使用。
[0003] 近几年来矩阵分解算法成为了推荐系统领域研宄的主流,研宄表明在个性化推荐 中使用矩阵分解技术可以得到比传统基于邻域的协同过滤更好的结果。矩阵分解算法将用 户对对象的评分矩阵进行分解,生成用户矩阵U和对象矩阵V,这样就将用户和对象映射到 了高维的潜语义空间。用户矩阵及对象矩阵的每一行都是一个向量,表示相应的用户和对 象。用户向量与一个对象向量的内积就是该用户对对象的评分,内积越大,评分越高,表示 越是推荐。每个用户的推荐对象可以取所有对象中K个内积最大的对象向量对应的对象作 为推荐结果。
[0004] 在实际应用场景中,用户和对象的数量往往庞大,相当于多达千万的用户都需要 在千万级对象构成的高维空间中搜索K个最大的内积,该计算过程非常耗时。因此需要一 种方案能够快速地完成用户和对象向量间最大内积的TopK计算。
[0005] 若采用最基本的线性搜索方法进行最近邻搜索,则时间复杂度较高,无法满足海 量数据下的需求。常用的解决方案是建立高维索引,利用高效的数据结构和算法完成搜索。 但是,由于内积不满足三角不等性且无法衡量向量间的相似性,导致常用的聚类、高维索引 树、局部感知哈希等建立高维索引的方案均无法直接适用于内积空间的搜索。

【发明内容】

[0006] 有鉴于此,本发明提供一种获取推荐对象的方法及装置,具有搜索速度快,适用范 围广等优点。
[0007] 为实现上述目的,根据本发明的一个方面,提供了一种获取推荐对象的方法,包 括:构建原始用户矩阵和原始对象矩阵,其中,所述原始用户矩阵中的每一行为原始用户向 量,每个所述原始用户向量表示一个用户的多重属性特征,所述原始对象矩阵中的每一行 为原始对象向量,每个所述原始对象向量表示一个对象的多重属性特征;对原始用户矩阵 和原始对象矩阵进行保序变换,得到新用户矩阵和新对象矩阵;对所述新对象矩阵中的新 对象向量构建对象高维索引结构;对所述新用户矩阵中的各个新用户向量在所述对象高维 索引结构中进行最近邻搜索,得到所述新用户向量对应的最近邻新对象向量;根据各个所 述新用户向量及其对应的所述最近邻新对象向量,输出用户与推荐对象的映射。
[0008] 可选地,所述对原始用户矩阵和原始对象矩阵进行保序变换,得到新用户矩阵和 新对象矩阵的步骤包括:对所述原始用户矩阵的第i行向量\添加数值0作为一个新的维 度,得到新用户向量A= (O.xf)'从而得到所述新用户矩阵;计算所述原始对象矩阵的第j行向量yj的2-范数以及该2-范数的最大值少,对所述yj添加_
作为一个新 的维度,得到新对象向量
,从而得到所述新对象矩阵。
[0009] 可选地,所述对所述新对象矩阵中的新对象向量构建对象高维索引结构的步骤包 括:将所述新对象矩阵中的新对象向量聚类得到多个对象子类,每个对象子类具有一个对 象聚类中心;为每个所述对象子类建立vp-tree树结构。
[0010] 可选地,所述对所述新用户矩阵中的各个新用户向量在所述对象高维索引结构中 进行最近邻搜索,得到所述新用户向量对应的最近邻新对象向量的步骤包括:将所述对象 高维索引结构序列化地保存为对象索引文件并发送给多个节点;在每个所述节点上,根据 所述新对象矩阵和所述对象索引文件重建出所述对象高维索引结构;采用map-reduce技 术,通过hadoop框架在所述多个节点中对所述新用户矩阵中的各个新用户向量进行最近 邻搜索,得到所述新用户向量对应的最近邻新对象向量。
[0011] 可选地,所述采用map-reduce技术,通过hadoop框架在所述多个节点中对所述 新用户矩阵中的各个新用户向量进行最近邻搜索,得到所述新用户向量对应的所述最近邻 新对象向量的步骤包括:将所述新用户矩阵均分成多个新用户向量组并分发到所述多个 节点,所述hadoop为分发到各个节点的所述新用户向量组分别建立mapper;在各个所述 mapper内为对应的所述新用户向量组中各个新用户向量执行以下操作:计算所述新用户 向量与各个所述对象聚类中心的欧氏距离,找到欧氏距离最近的所述对象聚类中心,进入 该欧氏距离最近的对象聚类中心对应的vp-tree,通过递归遍历树完成该vp-tree的最近 邻搜索,得到所述新用户向量对应的最近邻新对象向量;在reducer中汇总并保存所述新 用户向量与对应的所述最近邻新向量对象的映射关系。
[0012] 为实现上述目的,根据本发明的另一方面,提供了一种获取推荐对象的装置,包 括:矩阵构建模块,用于构建原始用户矩阵和原始对象矩阵,其中,所述原始用户矩阵中的 每一行为原始用户向量,每个所述原始用户向量表示一个用户的多重属性特征,所述原始 对象矩阵中的每一行为原始对象向量,每个所述原始对象向量表示一个对象的多重属性特 征;保序变换模块,用于对原始用户矩阵和原始对象矩阵进行保序变换,得到新用户矩阵和 新对象矩阵;索引构建模块,用于对所述新对象矩阵中的新对象向量构建对象高维索引结 构;搜索模块,用于对所述新用户矩阵中的各个新用户向量在所述对象高维索引结构中进 行最近邻搜索,得到所述新用户向量对应的最近邻新对象向量;输出模块,用于根据各个所 述新用户向量及其对应的所述最近邻新对象向量,输出用户与推荐对象的映射。
[0013] 可选地,所述矩阵构建模块还用于:对所述原始用户矩阵的第i行向量Xi添加数 值0作为一个新的维度,得到所述新用户向量X; = (0,xD'从而得到所述新用户矩阵;计 算所述原始对象矩阵的第j行向量h的2-范数以及该2-范数的最大值P,对所述h添加
作为一个新的维度,得到所述新对象向量
,从而 得到所述新对象矩阵。
[0014] 可选地,所述索引构建模块还用于:将所述新对象矩阵中的新对象向量聚类,得到 多个对象子类,每个对象子类具有一个对象聚类中心;为每个所述对象子类建立vp-tree 树结构。
[0015] 可选地,所述搜索模块还用于:将所述对象高维索引结构序列化地保存为对象索 引文件并发送给多个节点;在每个所述节点上,根据所述新对象矩阵和所述对象索引文件 重建出所述对象高维索引结构;采用map-reduce技术,通过hadoop框架在所述多个节点中 对所述新用户矩阵中的各个新用户向量进行最近邻搜索,得到所述新用户向量对应的所述 最近邻新对象向量。
[0016] 可选地,所述搜索模块还用于:将所述新用户矩阵均分成多个新用户向量组并分 发到所述多个节点,所述hadoop为分发到各个节点的所述新用户向量组分别建立mapper; 在各个所述mapper内为对应的所述新用户向量组中各个新用户向量执行以下操作:计 算所述新用户向量与各个所述对象聚类中心的欧氏距离,
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1