一种推荐信息生成方法和系统与流程

文档序号:18199962发布日期:2019-07-17 06:06阅读:110来源:国知局
一种推荐信息生成方法和系统与流程

本发明涉及网络信息处理技术领域,尤其是一种推荐信息生成方法和系统。



背景技术:

随着网络商务的发展,在在线商城中进行销售的物品越来越多,商品的种类繁多已经成为一种信息过载,用户需要从海量的商品中快速选择自己感兴趣和符合需求的物品,推荐系统作为一种信息过滤系统,在线商城的推荐系统对用户的兴趣检测就显得十分重要。

在传统的算法中,往往用向量点积或距离做客户兴趣相关性检测,往往需要引入人为规则进行改进,数据量大了以后鲁棒性较差。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种推荐信息生成方法和系统。

本发明所采用的技术方案是:

第一方面,本发明提供一种推荐信息生成方法,包括步骤:获取原始交易数据,所述原始交易数据包括用户信息和交易记录,根据预设的标签赋予规则处理所述用户信息和交易记录以获取用户向量和交易向量;基于叉积模处理所述用户向量和所述交易向量以获取用户商品间相似度并赋予对应的评分;根据评分进行用户与商品关联性的排序以获取top-k列表,根据top-k列表输出推荐信息。

优选地,所述根据预设的标签赋予规则处理所述用户信息和交易记录具体包括:根据预设的标签赋予规则匹配所述用户信息和交易记录,基于用户信息的标签和交易记录的标签生成关系矩阵;以用户标签为起点,交易标签为终点的向量为用户向量;以交易标签为终点,另一个交易标签为终点的向量为交易向量。

优选地,所述叉积模处理具体包括:计算最少两个向量的长度平方,计算向量上的元素值的平方和,计算平方和的乘积a,计算向量上的点的元素值的乘积和的平方b,评分s的平方s2=a-b,其中,元素值为点对应的标签的值。

优选地,还包括步骤:更新标签赋予规则,基于更新的标签赋予规则处理所述用户信息和交易记录以获取用户向量和交易向量。

优选地,更新标签赋予规则包括增加或减少标签,具体的,以叉积模和的最大化为目标函数,基于头脑风暴算法决定增加或减少标签。

第二方面,本发明提供一种推荐信息生成系统,包括:原始数据处理模块,用于获取原始交易数据,所述原始交易数据包括用户信息和交易记录,根据预设的标签赋予规则处理所述用户信息和交易记录以获取用户向量和交易向量;评分模块,用于基于叉积模处理所述用户向量和所述交易向量以获取用户商品间相似度并赋予对应的评分;推荐模块,用于根据评分进行用户与商品关联性的排序以获取top-k列表,根据top-k列表输出推荐信息。

优选地,所述根据预设的标签赋予规则处理所述用户信息和交易记录具体包括:根据预设的标签赋予规则匹配所述用户信息和交易记录,基于用户信息的标签和交易记录的标签生成关系矩阵;以用户标签为起点,交易标签为终点的向量为用户向量;以交易标签为终点,另一个交易标签为终点的向量为交易向量。

优选地,所述叉积模处理具体包括:计算最少两个向量的长度平方,计算向量上的元素值的平方和,计算平方和的乘积a,计算向量上的点的元素值的乘积和的平方b,评分s的平方s2=a-b,其中,元素值为点对应的标签的值。

优选地,还包括更新模块,用于更新标签赋予规则,基于更新的标签赋予规则处理所述用户信息和交易记录以获取用户向量和交易向量

优选地,更新标签赋予规则包括增加或减少标签,具体的,以叉积模和的最大化为目标函数,基于头脑风暴算法决定增加或减少标签。

本发明的有益效果是:

本发明通过解析原始交易数据以获取用户信息和交易记录,根据标签赋予规则处理以关系的矩阵,基于叉积模处理矩阵以获取相似度和评分,根据评分进行推荐信息的生成,相对于传统的向量点积或距离方式提高对大量数据的处理效果。

附图说明

图1是本发明的一种推荐信息生成方法的示意图;

图2是本发明的一种推荐信息生成系统的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例1

对于“看了这个商品的还看了”这种推荐形式,无论是京东还是淘宝,或者易购网站,这样的推荐产品可以说是推荐系统的标配。类似的点评类网站的“喜欢了这部电影的还喜欢了”,社交网站的“关注了这个人还关注了”,这些都只是一个古老的推荐算法,叫做基于物品条目的协同过滤,其缺点在于会出现需求次数较少,仍然反复推荐的情况,这种没有考虑用户的购物兴趣变更的推荐方法,不仅不能满足客户推荐的需求,还容易因为出现现阶段无用的物品引起客户的不满。

本发明在考虑客户的属性变更和商品更新的基础上,提出对应的方法,

本实施例提供如图1所示一种推荐信息生成方法,包括步骤:

s1、获取原始交易数据,所述原始交易数据包括用户信息和交易记录,根据预设的标签赋予规则处理所述用户信息和交易记录以获取用户向量和交易向量;

s2、基于叉积模处理所述用户向量和所述交易向量以获取用户商品间相似度并赋予对应的评分;

s3、根据评分进行用户与商品关联性的排序以获取top-k列表,根据top-k列表输出推荐信息。

其中,步骤s1获取原始交易数据,具体可以是来源于网上商城的数据,用户数量和商品数量往往比较巨大,对计算资源的需求成为瓶颈,所以本方案按年龄,教育程度,居住地,收入水平等标签(这部分的标签适用于用户信息,其来源于用户注册时填写的信息)来分类和聚类用户,把物品的价格与用户承受的支出水平关联起来,这样至少可以关注到用户群的兴趣的整体迁移。物品对应的消费者数量大小可以按价格,年龄,收入水平,教育程度等(标签)进行分类调整,对于计算物品之间的相似度稀疏稠密度就可以按统计准确度需要任意调节了;而交易记录为用户实际购买的物品,可以以生活物品、工具、食品、使用寿命等标签来进行标记;对应的,用户中符合同一标签的,可以以其他标签作为变化的趋势(即向量),例如,同属于30岁~40岁,则符合同一(年龄)标签,此时,以教育程度作为变化的趋势,则可以生成一个向量,该向量以年龄为起点,向不同教育程度(小学、初中、大学等,其对应一个值,这个值即矩阵的其中一维的坐标),依次类推,可以形成关于用户的变换向量(即用户向量);而交易向量具体为个人的交易商品的标签的变换的趋势,同时,当个人变成同一用户信息的人群时,可以形成更为泛用的趋势,例如,同属于30岁~40岁,其购买商品中均出现商品甲,且商品甲的出现次数随着年龄增加而增加,则说明随着年龄增加,商品甲又或者类似的商品被购买的可能性就增加,对应的趋势即为交易向量。

以用户的标签、交易(商品)的标签作为坐标系的一维,则可以形成多维的关系网,即关系矩阵,以用户标签为起点,交易标签为终点的向量为用户向量(即什么样的用户采购了什么样的商品);以交易标签为终点,另一个交易标签为终点的向量为交易向量(即用户买了什么样的商品之后,下一个购买商品会是什么样的商品),通过这两个方式,能够获取用户标签和商品标签的关系,商品标签和(下一个)商品标签的关系。

关系矩阵往往是一个稀疏矩阵,没有交互记录处(即矩阵的点)为空值;矢量的维度可以是用户的年龄,教育水平,收入水平等数目(即标签的值,例如年龄从10岁到100岁),一个用户标签代表向量的一维,这个向量的总维度是总用户标签数量;矢量各个维度的取值是聚类用户对这个物品的教育记录,可以是行为本身的布尔值,也可以是消费行为量化如时间长短、次数多少等,还可以是消费的评价分数,而不同标签的交合点即向量上的点。

原始数据(即原始交易数据)往往是用户对商品的评分矩阵,这个矩阵常常是巨大而且稀疏的,如果直接使用原始数据进行推荐算法的计算,往往需要消耗巨大的内存资源,且效果不理想。因此我们常常将高维的评分矩阵数据表征成低维的用户向量和商品向量,以便于下一步的计算,最终得到最终的推荐。

原始交易数据处理:将用户记录日志进行原始交易数据的清洗,得到评分矩阵,没有交互的部分数据为0;

用户向量和商品向量的表征:使用矩阵分解,图嵌入,词向量表征等机器学习算法将评分矩阵分解为用户向量矩阵和商品向量矩阵(具体可以参考实施例3的例子);

现有方法往往使用距离或余弦相似性来计算商品与商品,用户与用户,商品和用户的相似程度。本发明用叉积模和来计算user,item之间的相似性,对商品和用户之间的推荐做出得分,相比距离或余弦相似性,能够兼顾到距离信息和偏差角度信息。

步骤s2中,叉积模的具体包括:计算两个向量的长度平方,求元素值的平方和a再相乘减去两个向量的点积的平方b,最后开平方得到菱形表面积(该表面积即同类商品或者行为的相关性,根据预设的系数,结合表面积可以得到评分s),点积就是相同位置的元素值相乘再求和。其中,元素值为点对应的标签的值(不同的标签并没有对应的数学值,此时可以为其设定,例如食品可以设置为11、衣服可以设置为12,其目的方便各种标签的后续的计算),根据叉积模的计算原理,计算两个向量或者更多的向量,可以形成多种的用户、商品之间的关系,有利于精确的获取用户可能感兴趣的物品。

步骤s3中,获取top-k列表,能够提供一个标准的处理方式,避免混乱的处理公式以降低方法的运行的稳定性;这对于面对大量数据的推荐系统来说是非常重要的,列表是一系列的多维数组,数组的维度代表相关条目的多少,比如根据步骤s2,按两两(向量)计算的相关度记录到二维数组中去,按三三(向量)计算的相关度记录到三维数组中去,依次类推。然后分别对所述数组进行按相关度大小的排序,从大到小排序,以便找出相关度高的商品族(商品租即具备相同标签的商品的集合)。

针对于商品的更新换代和用户对于潮流的追求,需要时时更新推荐信息,因此需要更新用户的标签和商品的标签;但是标签的增加或者减少会显著的影响到叉积模的计算,即会影响到原本的评分,因此出于降低计算的负担的目的,需要合适的权衡更新标签赋予规则,具体的,以叉积模和的最大化为目标函数,基于头脑风暴算法决定增加或减少标签。

推荐的循环流程包括:

收集用户信息添加新的条目(即标签),计算用户条目的相关度排名(即评分),更新相关商品族的聚类列表(top-k列表),推荐相关条目给相关用户。

实施例2

本实施例提供一种推荐信息生成系统,包括:

原始数据处理模块1,用于获取原始交易数据,所述原始交易数据包括用户信息和交易记录,根据预设的标签赋予规则处理所述用户信息和交易记录以获取用户向量和交易向量;

评分模块2,用于基于叉积模处理所述用户向量和所述交易向量以获取用户商品间相似度并赋予对应的评分;

推荐模块3,用于根据评分进行用户与商品关联性的排序以获取top-k列表,根据top-k列表输出推荐信息。

原始交易数据是非常庞大的数据,如果直接使用原始数据进行推荐算法的计算,往往需要消耗巨大的内存资源,且效果不理想。因此将高维的评分矩阵数据表征成低维的用户向量和商品向量,以便于下一步的计算,最终得到最终的推荐:原始数据处理:将推荐系统的用户记录日志进行原始数据的清洗,得到评分矩阵,没有交互的部分数据为0;用户向量和商品向量的表征:使用矩阵分解,图嵌入,词向量表征等机器学习算法将评分矩阵分解为用户向量矩阵和商品向量矩阵;原始方法往往使用距离或余弦相似性来计算商品与商品,用户与用户,商品和用户的相似程度。我们的方法是用叉积模和来计算user,item之间的相似性,对商品和用户之间的推荐做出得分,相比距离或余弦相似性,能够兼顾到距离信息和偏差角度信息;根据得分高低来对用户商品对进行排序,得到top-k列表;对用户进行推荐。

实施例3

本实施例用于说明本发明可以适用的具体领域的实例,例如:

在线商城如(淘宝,亚马逊)等用户个性化推荐,具体步骤包括:

读取商城日志,清洗数据后得到评分矩阵;将商品和用户信息表征成为低维向量;使用积模和来计算user,item之间的相似性,对商品和用户之间的推荐做出得分,得到top-k列表。

社交网络如(facebook,twitter)用户个性化推荐具体步骤包括:读取社交网络,清洗数据后得到用户与用户之间的网络拓扑图;利用图嵌入算法如deepwalk将网络拓扑图中的每一个用户都表征成为低维向量;使用叉积模和来计算user之间的相似性,对用户和用户之间的推荐做出得分,得到top-k列表。

k12教育平台用户学习路线个性化推荐,具体步骤包括:

读取用户学习网络,清洗数据后得到知识点之间的网络拓扑图;利用图嵌入算法如deepwalk将网络拓扑图中的每一个知识点都表征成为低维向量;使用叉积模和来计算知识点之间的相似性,根据用户历史记录,结合协同过滤算法对用户和知识点之间的推荐做出得分,得到top-k列表,得到用户的下一步学习路线。

ugc平台(youtube,豆瓣)个性化推荐,与在线商城类似。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1