发明内容
基于此,有必要针对推荐的标的物信息的多样性和新颖性不足的问题,提供一种信息推荐方法及装置。
一种信息推荐方法,包括步骤:
获取与待推荐用户信息匹配的标的物信息和历史记录中用户信息与标的物信息的匹配关系kα、kβ、ki、Tαi、Tβi;其中,kα表示标的物信息α匹配用户信息的个数,kβ表示标的物信息β匹配用户信息的个数,ki表示用户信息i匹配的标的物信息的个数,当用户信息i匹配标的物信息α时,Tαi=H,当用户信息i不匹配标的物信息α时,Tαi=0,当用户信息i匹配标的物信息β时,Tβi=H,当用户信息i不匹配标的物信息β时,Tβi=0;
计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度,包括以下公式
其中,α表示历史记录中其中一个标的物信息,β表示待推荐用户信息匹配的标的物信息中其中一个标的物信息,Wαβ表示标的物信息α和标的物信息β的相似度,历史记录中有u+1个用户信息,H和λ为预设值;
根据所述相似度获取推荐列表,向待推荐用户信息的客户端发送所述推荐列表。
一种信息推荐装置,包括:
获取模块,用于获取与待推荐用户信息匹配的标的物信息和历史记录中用户信息与标的物信息的匹配关系kα、kβ、ki、Tαi、Tβi;其中,kα表示标的物信息α匹配用户信息的个数,kβ表示标的物信息β匹配用户信息的个数,ki表示用户信息i匹配的标的物信息的个数,当用户信息i匹配标的物信息α时,Tαi=H,当用户信息i不匹配标的物信息α时,Tαi=0,当用户信息i匹配标的物信息β时,Tβi=H,当用户信息i不匹配标的物信息β时,Tβi=0;
相似度确定模块,用于计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度,包括以下公式
其中,α表示历史记录中其中一个标的物信息,β表示待推荐用户信息匹配的标的物信息中其中一个标的物信息,Wαβ表示标的物信息α和标的物信息β的相似度,历史记录中有u+1个用户信息,H和λ为预设值;
推荐模块,用于根据所述相似度获取推荐列表,向待推荐用户信息的客户端发送所述推荐列表。
上述信息推荐方法及装置,将标的物信息相似度计算转化为二部图的链路挖掘问题,利用扩散过程可以用来寻找网络中两个节点之间的关联强度。具体采用公式
计算相似度,在体现比较热门的标的物信息(即与较多用户匹配的标的物信息)的前提下,由于最后除以了该标的物信息匹配的用户信息个数,对非常热门的标的物信息相当于一次降温,对于与较少用户匹配的标的物信息相当于一次升温,因此本发明在保证推荐标的物信息与目标标的物信息(与待推荐用户信息匹配的标的物信息)有相似性的前提下,使推荐标的物信息具有多样性、新颖性的优点
具体实施方式
以下针对本发明信息推荐方法及装置的各实施例进行详细的描述。
如图1所示,为本发明信息推荐方法实施例的流程示意图,包括:
步骤S101:获取与待推荐用户信息匹配的标的物信息和历史记录中用户信息与标的物信息的匹配关系kα、kβ、ki、Tαi、Tβi。其中,kα表示标的物信息α匹配用户信息的个数,kβ表示标的物信息β匹配用户信息的个数,ki表示用户信息i匹配的标的物信息的个数,当用户信息i匹配标的物信息α时,Tαi=H,当用户信息i不匹配标的物信息α时,Tαi=0,当用户信息i匹配标的物信息β时,Tβi=H,当用户信息i不匹配标的物信息β时,Tβi=0。
用户信息可以包括用户ID,也可以包括用户注册时的用户名、密码等信息。标的物信息可以包括标的物ID,也可以包括标的物名称、分类、编号、标的物图片等属性信息。历史记录可以是浏览日志、订单日志、购物车日志等。可以分别获取不同历史记录中的信息,计算相似度后,对应得到推荐列表。综合不同历史记录得到的推荐列表,进行推荐。也可以是,获取不同历史记录中的信息,综合进行计算相似度,然后得到一个推荐表进行推荐。
步骤S102:计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度,包括以下公式
其中,α表示历史记录中其中一个标的物信息,β表示待推荐用户信息匹配的标的物信息中其中一个标的物信息,Wαβ表示标的物信息α和标的物信息β的相似度,kα表示标的物信息α匹配用户信息的个数,kβ表示标的物信息β匹配用户信息的个数,ki表示用户信息i匹配的标的物信息的个数,当用户信息i匹配标的物信息α时,Tαi=H,当用户信息i不匹配标的物信息α时,Tαi=0,当用户信息i匹配标的物信息β时,Tβi=H,当用户信息i不匹配标的物信息β时,Tβi=0,历史记录中有u+1个用户信息,H和λ为预设值。如图1所示,该公式(1)可以作为一个预设公式。
为了方便说明,将与待推荐用户信息匹配的标的物信息称作目标标的物信息。本方法计算得到的相似度在体现比较热门的标的物信息(即与较多用户匹配的标的物信息)的前提下,由于最后除以了该标的物信息匹配的用户信息个数,对非常热门的标的物信息相当于一次降温,对于与较少用户匹配的标的物信息相当于一次升温,因此本方法在保证推荐标的物信息与目标标的物信息有相似性的前提下,使推荐标的物信息具有多样性、新颖性的优点。
因为本方法的目的是为了给带推荐用户推荐标的物信息,所以首先要找到待推荐用户匹配过的标的物信息,从历史记录中寻找与这些标的物信息有关联的标的物信息,因此,α表示历史记录中其中一个标的物信息,β表示待推荐用户信息匹配的标的物信息中其中一个标的物信息。kα表示历史记录中标的物信息α匹配用户信息的个数。kβ表示历史记录中标的物信息β匹配用户信息的个数。ki表示历史记录中用户信息i匹配的标的物信息的个数。λ的取值可以根据需要设定。一般情况下,可以不向待推荐用户推荐已匹配的信息,即α和β不是同一个标的物信息。
步骤S103:根据相似度获取推荐列表,向待推荐用户信息的客户端发送推荐列表。
为了方便说明,将与待推荐用户信息匹配的标的物信息称作目标标的物信息。当计算出与目标标的物信息有关联关系的历史记录中的标的物信息后,可以将这些相似度进行排序,根据预先设定好的规则进行选择。比如,针对每一个目标标的物信息,选择排名前三的相似度对应的标的物信息,将与每个目标标的物信息相似度最高的三个标的物信息组成推荐列表,向待推荐用户信息的客户端发送推荐列表。推荐列表中的标的物信息可以是标的物的ID号,也可以是标的物信息的图片信息、介绍信息、名称等属性信息。
采用本发明方法,在保证推荐与待推荐用户信息匹配的标的物信息相关的标的物信息,即保证准确性的前提下,同时还满足新颖性和多样性,实现准确性和新颖性的均衡。
在其中一个实施例中,可以先将获取的信息按预设规则进行存储,然后按照ID大小重新编号,将编号和对应信息进行映射,然后按照编号进行索引,大大节省了检索时间。具体步骤为:
获取与待推荐用户ID匹配的标的物ID;
从历史记录中获取用户ID、与用户ID匹配的标的物ID、用户ID与标的物ID的关联时间,以用户ID、标的物ID、关联时间的组合进行存储,即<用户ID,标的物ID,关联时间>。关联时间可以是用户信息与标的物信息产生匹配的那一刻时间,也可以是用户信息与标的物信息产生匹配时间t1同标的物信息出现时间t2的间隔时间t1-t2。
分别将用户ID和标的物ID按大小进行外排并编号,将用户ID的编号与用户ID映射,将标的物ID的编号与标的物ID映射。即将用户ID按照大小进行排序,对排序的用户ID进行编号,编号与用户ID形成映射关系,方便后续查找时,只用查找编号,不用查找ID,根据编号与ID的映射关系得到对应用户ID内容。标的物ID同理。
根据用户ID的编号和标的物ID的编号生成用户ID匹配标的物ID的第一倒叙索引和标的物ID匹配用户ID的第二倒叙索引。即可以通过第一倒叙索引查找到用户匹配标的物的个数和用户匹配哪些标的物,可以通过第二倒叙索引查找到标的物匹配用户的用户个数和该标的物与哪些用户匹配。也就是可以根据第一倒叙索引和第二倒叙索引获取匹配关系kα、kβ、ki、Tαi、Tβi。
基于倒排索引和ID映射的方法处理大数据的策略,全部以文件形式保存中间数据结果,分块进行处理。避免了传统方式中基于数据库SQL脚本完成。同时提高了计算速度,即使数据量很大时,也可以采用本方案方法进行处理。
在其中一个实施例中,还可以先将历史记录中同时匹配α和β的用户信息先选出来,当用户信息i匹配标的物信息α时,Tαi=1,当用户信息i不匹配标的物信息α时,Tαi=0,当用户信息i匹配标的物信息β时,Tβi=1,当用户信息i不匹配标的物信息β时,Tβi=0,历史记录中有u+1个用户信息。将然后再计算相似度时,可以大大减少计算量,提高计算速度。具体如下:
根据待推荐用户ID匹配的标的物ID、与用户ID匹配的标的物ID获取同时匹配α和β的用户信息;
则计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度的公式进一步为:
其中,j表示同时匹配α和β的用户信息,kj表示用户信息j匹配的标的物信息的个数,有n+1个用户信息同时匹配α和β。
由于先选出同时匹配α和β的用户信息,在计算过程中不用考虑历史记录中不同时匹配α和β的用户信息,大大提高了处理效率。
在其中一个实施例中,对于过度流行的标的物(即该标的物与过度用户匹配),为了不让其一直成为推荐对象,可以将其降权处理,将其匹配的用户数量进行去M次方。即计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度的公式进一步为:
其中,m为预设值。在优选方案中,m=1.2。
在其中一个实施例中,如果用户A匹配的标的物过多,用户B匹配的标的物较少,此时,用户B匹配的标的物更具有参考意义,即用户A匹配的标的物之间的关联度比用户B匹配的标的物之间的关联度低。为了避免这种情况,计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度的公式进一步为:
在其中一个实施例中,如果两个标的物有多个用户匹配,则这两个标的物的关联度就越大,为了适应这种情况,提供相似度的准确度,计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度的公式进一步为:
对于标的物,需要考虑关联时间,这里的关联时间可以是用户与标的物产生匹配时间t1同标的物出现时间t2的间隔时间t1-t2。对于两件标的物同时被匹配的情况,当匹配用户数量相同或相差不大时,关联时间越短,这两件标的物的关联度越大。为了适应这种情况,提供相似度的准确度,计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度的公式进一步为:
其中,tαi表示i和α的关联时间,tβi表示i和β的关联时间,t=min(tαi,tβi)。
通过公式(3)、(4)、(5)、(6)的层层递进优化,兼顾新颖性的基础上,提高了准确率,同时计算速度快。
根据上述信息推荐方法,本发明还提供一种信息推荐装置,包括:
获取模块,用于获取与待推荐用户信息匹配的标的物信息和历史记录中用户信息与标的物信息的匹配关系kα、kβ、ki、Tαi、Tβi;其中,kα表示标的物信息α匹配用户信息的个数,kβ表示标的物信息β匹配用户信息的个数,ki表示用户信息i匹配的标的物信息的个数,当用户信息i匹配标的物信息α时,Tαi=H,当用户信息i不匹配标的物信息α时,Tαi=0,当用户信息i匹配标的物信息β时,Tβi=H,当用户信息i不匹配标的物信息β时,Tβi=0;
相似度确定模块,用于计算待推荐用户信息匹配的标的物信息与历史记录中的标的物信息的相似度,包括以下公式
其中,α表示历史记录中其中一个标的物信息,β表示待推荐用户信息匹配的标的物信息中其中一个标的物信息,Wαβ表示标的物信息α和标的物信息β的相似度,历史记录中有u+1个用户信息,H和λ为预设值;
推荐模块,用于根据相似度获取推荐列表,向待推荐用户信息的客户端发送推荐列表。
在其中一个实施例中,获取模块包括:
第一子获取模块,用于获取与待推荐用户ID匹配的标的物ID,从历史记录中获取用户ID、与用户ID匹配的标的物ID、用户ID与标的物ID的关联时间;
存储模块,用于以用户ID、标的物ID、关联时间的组合进行存储;
映射模块,用于分别将用户ID和标的物ID按大小进行外排并编号,将用户ID的编号与用户ID映射,将标的物ID的编号与标的物ID映射;
索引生成模块,用于根据用户ID的编号和标的物ID的编号生成用户ID匹配标的物ID的第一倒叙索引和标的物ID匹配用户ID的第二倒叙索引;
第二子获取模块,用于根据第一倒叙索引和第二倒叙索引获取匹配关系kα、kβ、ki、Tαi、Tβi。
本发明装置也可以采用本发明方法中优化算法,在此不再赘述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。