一种个性化推荐方法及系统与流程

文档序号:12887253阅读:240来源:国知局
一种个性化推荐方法及系统与流程
本发明涉及信息搜索
技术领域
,具体涉及一种个性化推荐方法及系统。
背景技术
:当今信息社会里,个性化推荐系统已经与我们的生活密不可分。当我们阅读新闻资讯、网上购物、聆听音乐、观看视频的时候都会看到各种各样的“推荐”榜单,形式有“猜你喜欢”、“你可能感兴趣的商品”、“与你兴趣相似的用户还在看”等等。个性化推荐通过对用户的行为数据进行深入地分析和挖掘,千人千面地向用户推荐真正感兴趣的信息或者商品。对于个人而言,个性化推荐可以帮助用户解决面对琳琅满目并且种类繁杂的商品、电影、歌曲、视频等各种服务时无所适从的问题。对于企业而言,个性化推荐可以不仅提供极佳的用户体检,满足用户的信息需求,也帮助企业挖掘其中蕴含的无限商机,有效提升用户点击率、付费率和二次购买率。然而在实际业务场景中,实时个性化推荐还存在诸多挑战:1)用户兴趣是在快速变化的。当用户购物时,用户今天想买的是电器,过一段时间可能想买的是衣服。当用户听音乐时,用户当前听的是一些轻缓的歌曲,过几个小时想听的可能就是一些欢快动感的曲目;2)用户的行为除了正反馈的,比如点击、收藏、购买。同时也有负反馈的,比如用户对当前的推荐结果不满意的话,可以支持“不喜欢”的这种行为类型;3)用户所操作的物品信息的语义信息存在歧义的情况,比如“三生三世十里桃花”,可能是小说,也可能是电视剧或者电影;4)推荐结果的准确率和召回率往往此消彼长,如何保证高准确率的同时提高召回率也需要好好权衡。技术实现要素:本发明的目的是通过获取用户的实时操作数据,结合被点击物品信息,包括标题、标签和分类,从而生成用户的实时兴趣,基于这些信息从大量待推荐物品集里筛选出用户最感兴趣的物品列表进行精准推荐。为了实现上述目的,本发明提供了一种个性化推荐方法,其特征在于,包括如下步骤:获取输入数据,输入数据包括点击数据和对象数据,其中,点击数据为用户对兴趣对象的操作行为,对象数据包括兴趣对象标题、以及根据标题提取的类别或标签;将输入数据进行预处理;对预处理后的输入数据进行兴趣分析,得到基于标题及类别的推荐列表和基于标签及类别的推荐列表;利用推荐算法对基于标题及类别的推荐列表和基于标签及类别的推荐列表进行加权融合处理,得到候选推荐列表;按照预设条件对候选推荐列表过滤,生成推荐列表。进一步,所述将输入数据进行预处理包括对用户点击行为数据、点击对象数据进行数据清洗、过滤异常行为操作;将点击操作行为与用户进行映射,兴趣对象与信息参数进行映射。进一步,所述对预处理后的输入数据进行兴趣分析,得到基于标题及类别的推荐列表和基于标签及类别的推荐列表包括设置不同操作的权重;根据输入数据获取不同兴趣对象与标题、类别及标签的关联关系,以及同一用户与兴趣对象、操作行为、操作时间的关联关系;统计同一兴趣对象中不同标题与类别、不同标签与类别的数量,并分别计算不同标题与类别的加权值、不同标签与类别的加权值;将不小于预设值的加权值对应的结果作为兴趣分析结果。进一步,所述利用推荐算法对基于标题及类别的推荐列表和基于标签及类别的推荐列表进行加权融合处理,得到候选推荐列表包括计算标题及类别的推荐列表和基于标签及类别的推荐列表的加权值;按照计算得到的加权值将推荐列表进行排序。本发明还提供了一种个性化推荐系统,包括输入模块,用于获取输入数据,输入数据包括点击数据和对象数据,其中,点击数据为用户对兴趣对象的操作行为,对象数据包括兴趣对象标题、以及根据标题提取的类别或标签;预处理模块,用于将输入数据进行预处理;兴趣分析模块,用于对预处理后的输入数据进行兴趣分析,得到基于标题及类别的推荐列表和基于标签及类别的推荐列表;重生成模块,用于利用推荐算法对基于标题及类别的推荐列表和基于标签及类别的推荐列表进行加权融合处理,得到候选推荐列表;推荐模块,用于按照预设条件对候选推荐列表过滤,生成推荐列表。进一步,预处理模块包括处理单元,用于对用户点击行为数据、点击对象数据进行数据清洗、过滤异常行为操作;映射单元,用于将点击操作行为与用户进行映射,兴趣对象与信息参数进行映射。进一步,兴趣分析模块包括权重设置单元,用于设置不同操作的权重;信息提取单元,用于根据输入数据获取不同兴趣对象与标题、类别及标签的关联关系,以及同一用户与兴趣对象、操作行为、操作时间的关联关系;加权计算单元,用于统计同一兴趣对象中不同标题与类别、不同标签与类别的数量,并分别计算不同标题与类别的加权值、不同标签与类别的加权值;候选分析单元,用于将不小于预设值的加权值对应的结果作为兴趣分析结果。进一步,重生成模块包括融合单元,用于计算标题及类别的推荐列表和基于标签及类别的推荐列表的加权值;排序单元,用于按照计算得到的加权值将推荐列表进行排序。在上述技术方案中,本发明可以在用户的每一次操作记录之后更新用户兴趣,实时更新个性化推荐结果,满足用户的信息诉求;有效解决歧义性的文本在推荐场景中的语义理解问题;不仅保证了个性化推荐结果的准确度,也扩大了推荐结果的召回数量;基于搜索引擎的推荐结果生成方式,可以保证最新的item也有被推荐的机会,从而解决新的item冷启动问题。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本发明所述的个性化推荐方法的流程示意图;图2为本发明所述的个性化推荐方法中s103的流程示意图;图3为本发明所述的个性化推荐系统的结构示意图;图4为本发明所述个性化推荐系统的原理结构示意图;图5为应用本发明所述的个性化推荐系统的使用示意图。具体实施方式为了使本领域的技术人员更好地理解本发明的技术方案,下面将结合附图对本发明作进一步的详细介绍。如图1所示,本发明提供了一种个性化推荐方法,包括如下步骤:s101、获取输入数据,输入数据包括点击数据和对象数据,其中,点击数据为用户对兴趣对象的操作行为,对象数据为兴趣对象标题、以及根据标题提取的类别或标签;具体地,点击数据格式如下:<userid,action,itemid,action_time>,每一行表示用户(userid)在时间点(action_time)对物品(itemid)的一次操作(action)行为。操作包括点击(click)、购买(buy)、收藏(collect)、点赞(like),不喜欢(dislike)等。对象数据兴趣对象(即物品)的信息数据,格式如下:<itemid,title,cate_list,tag_list>,每一行表示物品(itemid)的相关信息,包括标题(title)、类别(cate_list)、标签(tag_list),其中类别和标签支持多个,存在一个物品属于多个类别同时带有多个标签的情况。也就说,同一物品可以属于多个类别,如手机可以属于电子产品类别,还可以属于生活移动设备类别;再如,苹果手机的标签包括多个,如运行快、质量高、抗摔、进口等。s102、将输入数据进行预处理;进一步,预处理包括对用户点击行为数据、点击对象数据进行数据清洗、过滤异常行为操作。数据采集和上报的异常数据,需要结合数据库表结构和实际场景做过滤,比如空值检查(如:用户行为数据中userid、itemid是不能为空的)、数值异常(如:userid的取值不能是0、null、-1等)、类型异常(如用户点击时间是整形的)、数据去重(如数据的重复上报)。另外,对于“人为”的噪音数据,如刷点击、刷榜单等行为,这些关键数据会严重影响后续算法的效果,需要有一些反作弊策略进行清除或者降权,如进行session分析,结合cookie、ip、行为发生的时间和次数等一些规则进行过滤。s103、对预处理后的输入数据进行兴趣分析,得到基于标题及类别的推荐列表和基于标签及类别的推荐列表;对预处理后的输入数据进行兴趣分析,具体通过调用搜索引擎得到相应推荐物品列表,具体方式如下:1)基于标题和类别的推荐。for(category,title,weight)in[(category,title,weight)1……(category,title,weight)k]:foritemid,scoreinsearch_by_title(category,title,m):title_rec_item[itemid]+=score*weight其中seach_by_title表示调用搜索引擎的函数,输入为category、title和期望返回的数量m,输出为检索到的结果,每一项包括itemid及对应的相关性score。title_rec_item表示经过加权后的推荐结果,按照权重从高到低排序,取权重最高的p个。2)基于标签和类别的推荐。使用兴趣分析的结果,调用搜索引擎得到相应推荐物品列表,具体方式如下:for(category,tag,weight)in[(category,tag,weight)1……(category,tag,weight)k]:foritemid,scoreinsearch_by_tag(category,tag,m):tag_rec_item[itemid]+=score*weight其中seach_by_tag表示调用搜索引擎的函数,输入为tag、title和期望返回的数量m,输出为检索到的结果,每一项包括itemid及对应的相关性score。tag_rec_item表示经过加权后的推荐结果,按照权重从高到低排序,取权重最高的p个。进一步,如图2所示,s103包括如下步骤:s1031、设置不同操作的权重;s1032、根据输入数据获取不同兴趣对象与标题、类别及标签的关联关系,以及同一用户与兴趣对象、操作行为、操作时间的关联关系;s1033、统计同一兴趣对象中不同标题与类别、不同标签与类别的数量,并分别计算不同标题与类别的加权值、不同标签与类别的加权值;s1034、将不小于预设值的加权值对应的结果作为兴趣分析结果。具体地,1)从用户行为数据中取最近一段时间之内的n条数据,记为data。在s1031中,设置每种操作行为的权重,代表用户兴趣的投票权重,比如购买行为比点击更能代表用户的兴趣,而用户不喜欢的话,则用一个负值表示。如表1所示为不同操作的权重。表1actionclick-点击collect-收藏dislike-不喜欢wight0.20.5-0.12)对data中的每条用户行为数据,在s1032步骤得到如表2和表3所示分别为不同兴趣对象与标题、类别及标签的关联关系,不同用户与兴趣对象、操作行为、操作时间的关联关系。表2itemiduseridcate_listtag_list1001title1c1;c2t1;t21002title2c1;c3t1;t3表3在s1033中,计算(category,title)和(category,tag)出现的加权次数,分别记为count(category,title)和count(category,tag),其中category属于itemid中的cate_list,tag属于itemid中tag_list,则计算方式如下:其中info(itemid)表示获取itemid的物品信息,包括标题、分类和标签,weight(action)表示action的权重,最终计算得到count(category,title)和count(category,tag)。具体根据表1-3计算如下:itemid1001的item信息可展开为num_1(c1,title1)=1、num_1(c2,title1)=1、num_1(c1,t1)=1、num_1(c1,t2)=1、num_1(c2,t1)=1、num_1(c2,t2)=1itemid1002的item信息可展开为num_2(c1,title1)=1、num_2(c3,title1)=1、num_2(c1,t1)=1、num_2(c1,t3)=1、num_2(c3,t1)=1、num_2(c3,t3)=1count(c1,title1)=weight(click)*num_1(c1,title1)+weight(collect)*num_1(c1,title1)=0.2*1+0.5*1=0.7count(c1,t1)=weight(click)*num_1(c1,t1)+weight(collect)*num_1(c1,t1)+weight(dislike)*num_2(c1,t1=0.2*1+0.5*1-0.1*1=0.6。在s1034中,经过s1033可以得到多个(category,title)和(category,tag)对应的加权次数,并且从高到低排序,取加权次数大于0且最高的k个,得到用户的实时兴趣分析结果。记为:[(category,title,weight)1,(category,title,weight)2……(category,title,weight)k][(category,tag,weight)1,(category,tag,weight)2……(category,tag,weight)k],其中weight代表对应的加权次数。s104、利用推荐算法对基于标题及类别的推荐列表和基于标签及类别的推荐列表进行加权融合处理,得到候选推荐列表;基于标题和类别的推荐算法召回的结果较多,但是准确性较低;二基于标签和类别的推荐算法由于标签严格匹配,得到的结果准确性高,但是召回偏少。所以需要将上面两个结果进行融合重排序。本发明中的目的在于提高搜索引擎推荐效果,具体可基于对象数据的信息参数,如标题、标签、类别等进行构建搜索引擎。具体地,如图3所示,s104包括如下步骤:s1041、计算标题及类别的推荐列表和基于标签及类别的推荐列表的加权值;s1042、按照计算得到的加权值将推荐列表进行排序。本发明的目的在于要尽可能保证精准,同时尽可能多的召回,可以设置两种算法的不同权重,进行加权融合,计算方式如下:其中rec_item(itemid)表示推荐itemid的权重,alg表示推荐算法,rec_list(alg)表示算法alg的推荐结果,weight(alg)表示算法alg在生成最终推荐结果时的权重,score(itemid)表示算法alg推荐itemid时的权重。融合重排序后的结果为[(itemid,weight)1,(itemid,weight)2……(itemid,weight)q]。s105、将融合得到的结果进行业务逻辑处理后,生成推荐列表进行输出。对于重排序的结果[(itemid,weight)1,(itemid,weight)2……(itemid,weight)q],需要业务逻辑的处理,比如用户推荐过和操作过的itemid需要过滤,已经下线的itemid需要过滤,还有一些businessrule的处理,比如有些itemid不能被推荐。经过各种处理后,对余下的结果按照weight从高到低排序,取最高的n个itemid作为最终的推荐结果展示给用户。如图4所示,本发明还提供了一种个性化推荐系统,包括输入模块10、预处理模块20、兴趣分析模块30、重生成模块40和推荐模块50。其中,输入模块10,用于获取输入数据,输入数据包括点击数据和对象数据,其中,点击数据为用户对兴趣对象的操作行为,对象数据为兴趣对象标题、以及根据标题提取的类别或标签;预处理模块20,用于将输入数据进行预处理;兴趣分析模块30,用于对预处理后的输入数据进行兴趣分析,得到基于标题及类别的推荐列表和基于标签及类别的推荐列表;重生成模块40,用于利用推荐算法对基于标题及类别的推荐列表和基于标签及类别的推荐列表进行加权融合处理,得到候选推荐列表;推荐模块50,用于按照预设条件对候选推荐列表过滤,生成推荐列表。如图5所示为应用本发明所述的个性化推荐系统的使用示意图。具体地,将本发明所述的个性化推荐系统应用到搜索引擎中,具体可通过预设接口加载至搜索引擎内,实现在搜索引擎中生成推荐功能,即推荐下拉菜单下,以列表方式向用户推荐信息,该实施例以新闻资讯为例进行推荐。如图6所示,本发明本发明采集预设时间段内用户检索数据(即输入数据)的点击行为(点击数据)以及item信息表(即对象数据),将点击行为及item信息表进行预处理后进行兴趣分析,该搜索引擎内生成基于标题和类别的推荐、基于标签和类别的推荐,并对这两种推荐进行重排序后,输出生成如图4所示的推荐列表。推荐类别中每个咨询信息均如图6所示,包括标题、分类、标签信息,其中,本实施例中分类仅仅为一个,标签信息包括多个,具体实施时,分类也可可能包括多个,本发明在此不一一列举。进一步,预处理模块包括处理单元,用于对用户点击行为数据、点击对象数据进行数据清洗、过滤异常行为操作;映射单元,用于将点击操作行为与用户进行映射,兴趣对象与信息参数进行映射。进一步,兴趣分析模块包括权重设置单元,用于设置不同操作的权重;信息提取单元,用于根据输入数据获取不同兴趣对象与标题、类别及标签的关联关系,以及同一用户与兴趣对象、操作行为、操作时间的关联关系;加权计算单元,用于统计同一兴趣对象中不同标题与类别、不同标签与类别的数量,并分别计算不同标题与类别的加权值、不同标签与类别的加权值;候选分析单元,用于将不小于预设值的加权值对应的结果作为兴趣分析结果。进一步,所述重生成模块包括融合单元,用于计算标题及类别的推荐列表和基于标签及类别的推荐列表的加权值;排序单元,用于按照计算得到的加权值将推荐列表进行排序。以上只通过说明的方式描述了本发明的某些示范性实施例,毋庸置疑,对于本领域的普通技术人员,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式对所描述的实施例进行修正。因此,上述附图和描述在本质上是说明性的,不应理解为对本发明权利要求保护范围的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1