CN109919699A - 项目推荐方法、项目推荐系统以及计算机可读介质 - Google Patents
项目推荐方法、项目推荐系统以及计算机可读介质 Download PDFInfo
- Publication number
- CN109919699A CN109919699A CN201711325615.1A CN201711325615A CN109919699A CN 109919699 A CN109919699 A CN 109919699A CN 201711325615 A CN201711325615 A CN 201711325615A CN 109919699 A CN109919699 A CN 109919699A
- Authority
- CN
- China
- Prior art keywords
- project
- collection
- item
- user
- behavior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种项目推荐方法、项目推荐系统以及计算机可读介质。根据实施例的项目推荐方法对给定用户推荐项目,包括:关联项目集获取操作,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,所述行为序列是由用户的行为以及该行为所涉及的项目构成的序列,所述关联项目集中的项目相互关联;推荐项目集选出操作,根据所述给定用户的给定行为以及所述给定行为所涉及的项目,从所述关联项目集的集合中选出针对所述给定用户的推荐项目集;以及推荐项目确定操作,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,在所述推荐项目集中确定针对所述给定用户的推荐项目。
Description
技术领域
本公开涉及互联网技术领域,更具体地,涉及一种对给定用户推荐项目的项目推荐方法、项目推荐系统以及计算机可读介质。
背景技术
随着互联网数据的不断增加,如何帮助用户找到其真正感兴趣或需要的信息、物品等正变得越来越紧迫和重要。近年来,为了解决这一课题,个性化推荐系统得到了广泛应用。在电子商务和各类社会化站点中,个性化推荐系统可以根据用户的需求、兴趣等向用户推信息、物品等各种项目。
现有的推荐方法主要分为以下几类:(1)基于内容的推荐,即从项目本身的属性/内容元数据中找到项目间的相似度,根据项目之间的相似度进行推荐;(2)协同过滤推荐,即根据大量用户针对项目的行为得出用户或项目间的相似度,利用用户或项目间的相似度进行推荐;(3)基于关联规则的推荐,即从大量统计数据中挖掘关联规则,发现不同项目的相关性,基于关联规则进行推荐。此外,实际应用中,常常将上述几种推荐方法组合起来进行推荐,即所谓的组合推荐。
但是,在实现本发明的过程中,本发明人发现在现有技术中至少存在如下问题。
现有的基于内容的推荐和协同过滤推荐都是孤立地看待各个项目,并没有将用户感兴趣的项目联系起来从整体上考虑项目间的相关性,因此无法准确把握用户的真正需求,很难给用户推荐看似不相关却又真正符合用户需求的项目。比如,在电子商务中,对于上述两种推荐方法来说,当用户购买了“垃圾袋”时,可能会推荐“垃圾桶”,当用户购买了“打火机”时,可能会推荐“香烟”。但是,实际上,该用户已经购买的物品是“垃圾袋”、“打火机”、“碳块”、“烧烤架”、“鸡翅”、“羊肉串”。根据这些已购买物品,可以推测出该用户正在为野外烧烤作准备,他真正需要的物品应该是用于野外烧烤的“钎子”、“烤叉”等,而不是“垃圾桶”和“香烟”。由此可见,在需要根据用户的购买物品集合推测出用户的真正需求才能给出准确推荐的情况下,上述两种推荐方法并不适用。
另外,基于关联规则的推荐主要是从大量有关用户、项目的统计结果中发现不同项目的相关性,难以根据项目多侧面的相关性(比如性质、用途上的相关性等)来推测用户的真正需求,并不能很好地适用于诸如上述野外烧烤的情形。此外,基于关联规则的推荐是以超市实体店这样的购物场景为背景发展起来的。在这样的研究背景下,无法跟踪用户的长期购物行为,并不特别适合于当前电子商务或各类社会化站点要求个性化推荐的应用场景。再有,基于关联规则的推荐必须首先自底向上地构建项目的频繁项集,然后基于频繁项集发现关联规则。然而,由于互联网上的信息、物品等各种项目的数量尤为庞大,因此使得构建频繁项集这一过程非常繁复而且耗时。另外,随着被发现的关联规则数目的增多,系统也会变得越来越复杂和低效。
因此,如何能够以相对简便的方法根据项目多侧面的相关性推测出用户的真正需求,针对特定用户个性化地进行相对准确的项目推荐就成为困扰本领域技术人员的一个重要课题。
发明内容
有鉴于此,本公开的目标至少部分地在于提供一种项目推荐方法、项目推荐系统以及计算机可读介质,能够以相对简便的方法根据项目多侧面的相关性推测出用户的真正需求,针对特定用户个性化地进行相对准确的项目推荐。
本公开的一个方面提供一种项目推荐方法,对给定用户推荐项目,所述项目推荐方法包括:关联项目集获取操作,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,所述行为序列是由用户的行为以及该行为所涉及的项目构成的序列,所述关联项目集中的项目相互关联;推荐项目集选出操作,根据所述给定用户的给定行为以及所述给定行为所涉及的项目,从所述关联项目集的集合中选出针对所述给定用户的推荐项目集;以及推荐项目确定操作,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,在所述推荐项目集中确定针对所述给定用户的推荐项目
根据本公开的一个方面的项目推荐方法,所述关联项目集获取操作包括:行为序列预处理操作,将用户的所述行为序列预处理成由用户的行为所涉及的项目的项目名称构成的序列即项目名称序列,其中,项目名称是自然语言当中用来表征项目的词;关联项目名称集获取操作,基于所述项目名称序列,利用自然语言处理的方法获取关联项目名称集;以及关联项目集确定操作,将所述关联项目名称集中的项目名称对应成项目,得到与所述关联项目名称集对应的候选关联项目集,将可信度高的所述候选关联项目集确定为所述关联项目集。
根据本公开的一个方面的项目推荐方法,给定一个项目集,该项目集的可信度被定义为:在给定时间段内对该项目集中所有项目有过给定行为的用户数目与该给定时间段内有过该给定行为的用户数目之比。
根据本公开的一个方面的项目推荐方法,在所述关联项目名称集获取操作中,基于所述项目名称序列,利用自然语言处理中的词向量训练获取项目名称的词向量即项目名称向量,根据项目名称向量之间的相似度确定所述关联项目名称集。
根据本公开的一个方面的项目推荐方法,基于项目名称向量之间的相似度对项目名称进行聚类,由此得到所述关联项目名称集。
根据本公开的一个方面的项目推荐方法,将聚类的结果中具有规定数目的项目名称的类作为所述关联项目名称集。
根据本公开的一个方面的项目推荐方法,在所述关联项目名称集获取操作中,基于所述项目名称序列,利用自然语言处理中的主题模型训练获取项目主题,将项目主题下的项目名称组成的集合确定为所述关联项目名称集,其中,项目主题包括项目名称和项目名称的概率分布。
根据本公开的一个方面的项目推荐方法,将项目主题下的概率高的项目名称组成的集合确定为所述关联项目名称集。
根据本公开的一个方面的项目推荐方法,在所述关联项目名称集获取操作中,基于所述项目名称序列,利用自然语言处理中的布朗聚类获取项目名称的哈夫曼编码,将哈夫曼编码的前缀相同的项目名称组成的集合确定为所述关联项目名称集。
根据本公开的一个方面的项目推荐方法,将哈夫曼编码的规定长度的前缀相同的项目名称组成的集合确定为所述关联项目名称集。
根据本公开的一个方面的项目推荐方法,在所述推荐项目集选出操作中,根据所述关联项目集的特征和所述给定用户相对所述关联项目集的特征,利用梯度提升决策树算法对所述关联项目集进行排序,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,选出排序靠前的所述关联项目集作为针对所述给定用户的所述推荐项目集。
根据本公开的一个方面的项目推荐方法,所述关联项目集的特征是从以下特征当中选出的一种或几种:点击占比、点击用户占比、浏览占比、浏览用户占比、关注占比、关注用户占比、加购占比、加购用户占比、订购占比、订购用户占比、以及平均复购周期,所述给定用户相对所述关联项目集的特征是从以下特征当中选出的一种或几种:点击次数、浏览次数、关注次数、加购次数、订购次数、以及复购最短周期。
根据本公开的一个方面的项目推荐方法,在所述推荐项目确定操作中,根据所述推荐项目集中的项目的特征,利用梯度提升决策树算法对所述推荐项目集中所述给定用户的所述给定行为所涉及的项目以外的项目进行排序,将排序靠前的项目确定为针对所述给定用户的所述推荐项目。
根据本公开的一个方面的项目推荐方法,所述推荐项目集中的项目的特征是从以下特征当中选出的一种或几种:点击占比、点击用户占比、浏览占比、浏览用户占比、关注占比、关注用户占比、加购占比、加购用户占比、订购占比、订购用户占比、复购占比、以及复购用户占比。
根据本公开的一个方面的项目推荐方法,所述项目是商品,用户的所述行为是从以下行为当中选出的一种或几种:点击、浏览、关注、加购、以及订购。
本公开的另一个方面提供项目推荐系统,关联项目集获取模块,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,所述行为序列是由用户的行为以及该行为所涉及的项目构成的序列,所述关联项目集中的项目相互关联;推荐项目集选出模块,根据所述给定用户的给定行为以及所述给定行为所涉及的项目,从所述关联项目集的集合中选出针对所述给定用户的推荐项目集;以及推荐项目确定模块,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,在所述推荐项目集中确定针对所述给定用户的推荐项目。
根据本公开的另一个方面的项目推荐系统,所述关联项目集获取模块包括:行为序列预处理单元,将用户的所述行为序列预处理成由用户的行为所涉及的项目的项目名称构成的序列即项目名称序列,其中,项目名称是自然语言当中用来表征项目的词;关联项目名称集获取单元,基于所述项目名称序列,利用自然语言处理的方法获取关联项目名称集;以及关联项目集确定单元,将所述关联项目名称集中的项目名称对应成项目,得到与所述关联项目名称集对应的候选关联项目集,将可信度高的所述候选关联项目集确定为所述关联项目集。
根据本公开的另一个方面的项目推荐系统,给定一个项目集,该项目集的可信度被定义为:在给定时间段内对该项目集中所有项目有过给定行为的用户数目与该给定时间段内有过该给定行为的用户数目之比。
本公开的另一个方面提供一种项目推荐系统,对给定用户推荐项目,所述项目推荐系统包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行本公开的上述一个方面的项目推荐方法。
本公开的另一个方面提供一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行本公开的上述一个方面的项目推荐方法。
根据本公开的实施例,通过创新性地将自然语言理解的思想引入到项目推荐技术中,用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)对用户的行为序列进行处理来获取关联项目集,从而能够根据用户的行为序列的类自然语言特征(诸如语义特征等)发现相互关联的项目。因此,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性,并且能够跟踪用户的长期行为。
此外,通过在利用自然语言处理的方法获取到关联项目集的基础上,根据给定用户的给定行为选出针对该给定用户的推荐项目集并确定推荐项目,从而能够基于所发现的项目的多侧面的相关性推测出用户的真正需求,并且能够对特定用户个性化地进行相对准确的项目推荐。
此外,本公开的项目推荐方法不需要自底向上地构建频繁项集,也不需要给出关联规则,能够以相对简便的方法实现项目推荐。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了本公开一个方面的项目推荐方法的流程图。
图2示意性示出了本公开一个方面的项目推荐方法的关联项目集获取操作的流程图
图3示意性示出了本公开另一个方面的与上述项目推荐方法对应的项目推荐系统的框图。
图4示意性示出了本公开另一个方面的与上述项目推荐方法对应的项目推荐系统的关联项目集获取模块的框图。
图5示意性示出了本公开另一方面的项目推荐系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的一个方面提供了一种项目推荐方法,对给定用户推荐项目。
下面,以购物网站为例来进行说明。此时,可将“项目”简单理解为“商品”。
首先,说明用户的行为序列和项目名称序列。
这里,需要说明的是,现实中的某个具体项目(例如商品)往往具有多个属性,比如统一牌黑胡椒牛肉方便面具有品牌、口味的属性。按照实际需要,可以根据项目的属性,将具体的项目以不同的层次进行抽象。比如将统一牌黑胡椒牛肉方便面抽象成统一牌方便 面、黑胡椒牛肉方便面、方便面等。为了便于说明本公开的基本思想,对项目进行较高层次的抽象。例如,将统一牌黑胡椒牛肉方便面抽象成方便面。
在购物网站上,用户的行为主要有浏览、点击、加购物车(以下简称为“加购”)、订购、和关注等。如果考虑某个用户在某一段时间内的行为,按照时间顺序将该用户的行为和该行为所涉及到的项目排列起来,就构成该用户的行为序列。
例如,考虑某个用户最近一天内的行为,可能会形成以下的行为序列:
点击智能手机页面
浏览智能手机页面
关注智能手机
点击平板电脑页面
浏览平板电脑页面
加购平板电脑
订购平板电脑
......。
需要指出的是,不同的用户行为所反映出的用户针对项目的兴趣度和需求度是不同的。容易理解,若用户订购了项目,则说明该用户对该项目的兴趣度和需求度最高,而其他诸如加购、关注、浏览、和点击这些用户行为所反映出的用户对项目的兴趣度和需求度可以认为是逐渐降低的。因此,为了准确反映用户针对项目的兴趣度和需求度,可以仅考虑某一种或几种用户行为,例如仅考虑订购行为、关注行为等。
这样,例如考虑某个用户最近一个月的订购和关注行为,可以得到诸如以下的行为序列:
订购沐浴露
关注打火机
订购垃圾袋
关注烧烤架
订购牙刷
订购碳块
关注洗发水
订购面包
订购羊肉串
关注牙膏
订购方便面
订购鸡翅
订购矿泉水
......。
将上述行为序列中的项目提取出来,并且按照上述行为发生的时间顺序将项目名称排列起来,就可以得到一个仅由项目名称构成的序列:
‘沐浴露’‘打火机’‘垃圾袋’‘烧烤架’‘牙刷’‘碳块’‘洗发水’‘面包’‘羊肉串’‘牙膏’‘方便面’‘鸡翅’‘矿泉水’......
这里,项目名称是自然语言当中用来表征项目的词。于是,如果将上述序列看做是以项目名称作为词而构成的类自然语言的一个句子或一篇文档,就可以利用自然语言处理的方法进行处理。本公开的基本思想即是,通过利用自然语言处理的方法对这样的类自然语言的句子或文档进行处理,从而获取关联项目集。
需要说明的是,本公开的讨论对象涉及作为实体存在的项目和自然语言当中用来表征项目的词即上述项目名称,由于这两者的属性、处理方法以及研究内容均不相同,因此为了加以区分,用带下划线的文字表示作为实体存在的项目,用带单引号的文字表示项目名称。
另外,这里所说的关联项目集,指的是一组相互关联的项目所组成的集合。可以认为关联项目集是由一组在某个或某些方面具有相关性的项目组成的集合,例如通常会在同一场合下使用、同属于某个类别、用途类似、性质类似等等。
比如香皂、沐浴露、洗发水、润发乳通常在洗浴时使用,因此可以组成“个人洗浴化学品”,而洗发水、润发乳又可进一步组成“个人洗发化学品”。再比如牙刷、牙膏、漱口水、牙 线、牙签可组成“个人洁牙用品”,诸如此类。
可以想象,在现实生活中,上述含义下的关联项目集的数量是非常之多的。除了人们通常所熟知的诸如“床上用品”、“办公用品”、“电子产品”、...等各大项目类别以外,在电子商务中,期望能够根据项目的不同侧面找出足够多的关联项目集,以便能够按照不同用户的不同需求进行关联项目的推荐。比如,在用户近期购买了沐浴露的情况下,推荐用户购买洗发水,在用户近期购买了牙刷的情况下,推荐用户购买牙膏。或者,将关联项目集中的项目作为套餐进行捆绑销售。比如将牙刷和牙膏捆绑销售。
下面,结合附图来详细说明本公开一个方面的项目推荐方法。
图1示意性示出了本公开一个方面的项目推荐方法的流程图。
首先,在关联项目集获取操作S1中,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,如前所述,用户的行为序列是由用户的行为以及该行为所涉及的项目构成的序列,关联项目集中的项目相互关联。具体来说,例如根据最近三个月或半年内的用户数据得到每个用户的订购行为序列,基于所有用户的订购行为序列,利用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)获取关联项目集。其中,用户的订购行为序列是由用户的订购行为以及订购行为所涉及的项目即所订购的项目构成的序列。
例如,通过关联项目集获取操作S1获取到以下关联项目集:
个人洗浴化学品:
{香皂、沐浴露、洗发水、塑发乳}
个人洁牙用品:
{牙刷、牙膏、漱口水、牙线、牙签}
需要说明的是,这里以订购行为为例来说明,但是基于用户的哪种或哪些行为的行为序列来获取关联项目集可以根据实际需要来决定。
关于如何利用自然语言处理中的方法来获取关联项目集,后面会详细介绍。
由此,通过创新性地将自然语言理解的思想引入到项目推荐技术中,用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)对用户的行为序列进行处理来获取关联项目集,从而能够根据用户的行为序列的类自然语言特征(诸如语义特征等)发现相互关联的项目。因此,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性,并且能够跟踪用户的长期行为。
接着,在推荐项目集选出操作S2中,根据给定用户的给定行为以及该给定行为所涉及的项目,从关联项目集的集合中选出针对该给定用户的推荐项目集。具体来说,例如根据给定用户最近一天内的订购行为以及所订购的项目,从由所有获取到的关联项目集组成的集合中选出包含有该给定用户最近一天内所订购的(所有或部分)项目的关联项目集,作为针对该给定用户的推荐项目集。
例如,在用户最近一天内订购了香皂、洗发水的情况下,将由香皂、沐浴露、洗发 水、润发乳构成的关联项目集“个人洗浴化学品”作为针对该给定用户的推荐项目集。
同样需要说明的是,这里以订购行为作为用户的给定行为来说明,但是给定行为也可以是其他行为,可以根据实际需要来决定给定行为。
关于如何从由所有关联项目集组成的集合中选出针对给定用户的推荐项目集,后面会详细介绍。
最后,在推荐项目确定操作S3中,根据上述给定用户的上述给定行为以及该给定行为所涉及的项目,在推荐项目集中确定针对该给定用户的推荐项目。具体来说,例如根据该给定用户最近一天内的订购行为以及所订购的项目,将选出的推荐项目集中用户最近一天内所订购的所有项目之外的(所有或部分)项目确定为针对该给定用户的推荐项目。
例如,在将由香皂、沐浴露、洗发水、润发乳构成的关联项目集“个人洗浴化学品”选出作为针对该给定用户的推荐项目集的情况下,在该推荐项目集中,将润发乳确定为针对该用户的推荐项目。
关于如何在推荐项目集中确定针对给定用户的推荐项目,后面会详细介绍。
由此,通过在利用自然语言处理的方法获取到关联项目集的基础上,根据给定用户的给定行为选出针对该给定用户的推荐项目集并确定推荐项目,从而能够基于所发现的项目的多侧面的相关性推测出用户的真正需求,并且能够对特定用户个性化地进行相对准确的项目推荐。
此外,本公开的项目推荐方法不需要自底向上地构建频繁项集,也不需要给出关联规则,能够以相对简便的方法实现项目推荐。
下面,利用图2对上述关联项目集获取操作S1进一步具体说明。
图2示意性示出了本公开一个方面的项目推荐方法的关联项目集获取操作的流程图。
上述关联项目集获取操作S1包括:行为序列预处理操作S11、关联项目名称集获取操作S12、以及关联项目集确定操作S13。
首先,在行为序列预处理操作S11中,将用户的行为序列预处理成由用户的行为所涉及的项目的项目名称构成的序列即项目名称序列,其中,项目名称是自然语言当中用来表征项目的词。具体来说,例如将每个用户在最近三个月或半年内的订购行为序列预处理成项目名称序列,得到所有用户的项目名称序列。如何根据用户的行为序列得到项目名称序列如前所述,这里不再赘述。
由此,通过将用户的行为序列预处理成由自然语言当中用来表征项目的词即项目名称构成的序列即项目名称序列,将该序列看做是类自然语言的句子或文档,从而创新性地将自然语言理解的思想引入到项目推荐技术中。
接着,在关联项目名称集获取操作S12中,基于项目名称序列,利用自然语言处理的方法获取关联项目名称集。具体来说,例如将预处理成的每个用户的项目名称序列看做是类自然语言的一个句子或一篇文档,利用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)对所有用户的项目名称序列进行处理,由此获取关联项目名称集。
例如,通过关联项目名称集获取操作S12获取到以下关联项目名称集:
NS1:
{‘香皂’、‘沐浴露’、‘洗发水’、‘润发乳’}
NS2:
{‘牙刷’、‘牙膏’、‘漱口水’、‘牙线’、‘牙签’}
NS3:
{‘烧烤架’、‘钎子’、‘烤叉’}
关于如何利用自然语言处理中的方法来获取关联项目名称集,后面会详细介绍。
最后,在关联项目集确定操作S13中,将关联项目名称集中的项目名称对应成项目,得到与关联项目名称集对应的候选关联项目集,将可信度高的候选关联项目集确定为关联项目集。具体来说,例如将某个关联项目名称集中的所有项目名称对应成项目,由此将该关联项目名称集对应成一个项目集即候选关联项目集。这样,将所有关联项目名称集对应成候选关联项目集。
例如,将上述关联项目名称集NS1~NS3对应成以下候选关联项目集:
CS1:
{香皂、沐浴露、洗发水、润发乳}
CS2:
{牙刷、牙膏、漱口水、牙线、牙签}
CS3:
{烧烤架、钎子、烤叉}
进而,将所得到的所有候选关联项目集中可信度高的候选关联项目集确定为所述关联项目集。
给定一个项目集S,该项目集S在给定时间段T内的可信度被定义为:在给定时间段T(例如最近三个月或半年)内对项目集S中所有项目有过给定行为的用户数目与该给定时间段T内有过该给定行为的用户数目之比。其中,这里的给定行为可以是浏览、点击、加购、订购、以及关注当中的一种或几种。
例如,如果用订购行为来定义可信度,则一个项目集S的可信度被定义为:给定时间段T内订购过项目集S中所有项目的用户数目与该给定时间段T内订购过项目的所有用户数目之比。即:
可以对可信度给出阈值,将可信度大于阈值的候选关联项目集确定为关联项目集。也可以按照可信度从高到低对候选关联项目集排序,将最靠前的M个候选关联项目集确定为关联项目集。其中,M是正整数。上述阈值和正整数M可以根据需要来决定。
例如,根据可信度,将候选关联项目集CS1~CS3中的CS1、CS2确定为以下关联项目集:
个人洗浴化学品:
{香皂、沐浴露、洗发水、塑发乳}
个人洁牙用品:
{牙刷、牙膏、漱口水、牙线、牙签}
需要说明的是,这里给出的可信度的定义仅仅是一个例子,只要能够反映出一个项目集作为关联项目集的可信程度,就可以有其它形式的定义。
另外,这里使用可信度来确定关联项目集是为了利用项目的历史销售数据等来保证关联项目集的可信程度,也可以不根据可信度来确定关联项目集,而直接通过将关联项目名称集中的项目名称对应成项目来得到关联项目集,即,直接将上述意义的候选关联项目集作为关联项目集。
由此,通过用自然语言处理的方法对用户的项目名称序列这样的类自然语言的句子或文档进行处理来得到关联项目名称集,进而将关联项目名称集对应成关联项目集,从而能够根据用户的行为序列(更具体是项目名称序列)的类自然语言特征(诸如语义特征等)发现相互关联的项目。因此,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性。
下面,给出3个具体例子对上述关联项目名称集获取操作S12进一步具体说明。3个例子分别使用自然语言处理中的词向量训练、主题模型训练、布朗聚类的方法基于项目名称序列获取关联项目名称集。
<1-基于词向量训练的方法>
本例利用自然语言处理中的词向量训练来获取关联项目名称集。
首先,简要说明自然语言处理中的词向量训练,并引入聚类的概念。
词向量是一种将自然语言当中的词进行数学化表示的方法。具体来说,每个词都被表示成一个50维或100维的实数向量。例如,[0.792,-0.177,-0.107,0.109,-0.542,......]。所有词向量构成一个词向量空间,每一个词向量为该空间中的一个点。在这个空间上引入“距离”的概念,就可以算出每个词向量之间的距离,进而可以根据词向量之间的距离来判断词与词之间在语法、语义上的相似性。
在自然语言处理中,一种生成词向量的途径是通过利用神经网络对语料进行训练,从而得到词向量。目前广泛应用的工具有Word2Vec等。
对于由大量的词组成的集合,在得到每个词的词向量之后,就可以按照词向量之间的相似度(距离)将该大量的词划分成不同的类,从而得到语法、语义相似的词的集合。
这里,本公开利用聚类的方法。聚类是将物理或抽象对象的集合分成由相似的对象组成的多个类的过程。聚类有多种算法,例如有K-means算法、Birch算法、Dbscan算法等。
在本例中,基于项目名称序列,利用词向量训练的方法获取项目名称的词向量即项目名称向量,根据项目名称向量之间的相似度确定关联项目名称集。
下面,具体说明这一过程。
首先,将每个用户的项目名称序列看做是一个句子,通过将所有用户的项目名称序列作为语料,采用神经网络进行训练,从而得到每个项目名称的词向量即项目名称向量。
然后,基于项目名称向量之间的相似度例如采用K-means算法对项目名称进行聚类,由此得到由项目名称组成的类即关联项目名称集。
这里,可以仅将通过聚类而得到的所有类当中的一部分类作为关联项目名称集。例如,可以将包含过多或过少项目名称的类舍去,而将具有规定数目的项目名称的类作为关联项目名称集。该规定数目可以根据实际需要和聚类结果来定。例如,将由3~10个项目名称组成的类确定为关联项目名称集。
此外,为了得到足够多或者足够小的关联项目名称集,可以进行多次聚类。
由此,通过利用自然语言处理的词向量训练,将所有用户的项目名称序列作为语料进行训练,得到项目名称向量,然后基于项目名称向量之间的相似度对项目名称进行聚类,并根据聚类的结果确定关联项目名称集,从而利用自然语言处理的方法获取到了作为关联项目集的基础的关联项目名称集。由此,能够根据用户的行为序列(更具体是项目名称序列)的类自然语言特征(诸如语义特征等)发现相互关联的项目,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性。
<2-基于主题模型训练的方法>
本例利用自然语言处理中的主题模型训练来获取关联项目名称集。
首先,简要说明自然语言处理中的主题模型训练。
主题模型是对文字中隐含主题的一种数学建模方法。所谓主题,可以被认为是一个概念、一个方面等。主题表现为一系列相关的词。比如一篇文章如果涉及到“百度”这个主题,那么‘中文搜索’、‘李彦宏’等词就会以较高的频率出现,而如果涉及到“烧烤”这个主题,那么‘烧烤架’、‘烤叉’、‘钎子’、‘碳块’、‘羊肉串’、‘鸡翅’等词就会出现的很频繁。简单来说,可以把主题认为是语义相关或相似的词的集合。
在主题模型中,假设文档由一系列主题构成,每个主题下有若干词,每个词都有在文档中相对于该主题的出现概率(条件概率),主题下的词与主题之间关系的密切程度由该词相对于该主题的出现概率来定义。与主题关系越密切的词,它的出现概率就越大,反之就越小。可以认为,出现概率大的词之间的相关或相似性也大。
如果用较为规范的数学语言来描述的话,主题是词的条件概率分布。即,文档的主题由文档中出现的若干词及该若干词的条件概率来定义。其中,LDA是目前最流行的主题模型训练方法。
对于大量文档来说,可以采用LDA进行训练,得出文档中隐含的所有主题,即得出主题下的词以及词的(条件)概率分布,这样就得到了语义相关或相似的词的集合以及表征词与主题关系的密切程度的概率。
在本例中,基于项目名称序列,利用自然语言处理中的主题模型训练获取项目主题,将项目主题下的项目名称组成的集合确定为关联项目名称集。
下面,具体说明这一过程。
首先,将每个用户的项目名称序列看做是一篇文档,通过将所有用户的项目名称序列作为语料,采用LDA进行训练,从而得到若干项目主题,其中,每一项目主题都包括若干项目名称以及该若干项目名称的概率分布。
例如,在采用LDA进行训练后,得到以下项目主题IT1~IT3:
IT1:
‘香皂’t11
‘沐浴露’t12
‘洗发水’t13
‘润发乳’t14
IT2:
‘牙刷’t21
‘牙膏’t22
‘漱口水’t23
‘牙线’t24
‘牙签’t25
IT3:
‘烧烤架’t31
‘钎子’t32
‘烤叉’t33
其中,tij表示主题ITi下第j个项目名称的(条件)概率。
然后,针对一个项目主题,将该项目主题下的项目名称组成的集合确定为一个关联项目名称集,由此根据若干项目主题得到若干关联项目名称集。
这里,可以选择一个项目主题下的一部分项目名称来组成一个关联项目名称集。例如,可以选择一个项目主题下的概率高的项目名称来组成一个关联项目名称集。可以按照概率从高到低对项目名称排序,将最靠前的M个(例如4个)项目名称所组成的集合确定为关联项目名称集。也可以对项目名称的概率给出阈值,将概率大于阈值的项目名称所组成的集合确定为一个关联项目名称集。其中,M是正整数。阈值和正整数M可以根据需要来决定。
同样地,为了得到足够多或者足够小的关联项目名称集,可以进行多次主题模型训练。
由此,通过利用自然语言处理的主题模型训练,将所有用户的项目名称序列作为语料进行训练,得到若干项目主题(每个项目主题都包括若干项目名称以及该若干项目名称的概率分布),然后将项目主题下的项目名称组成关联项目名称集,从而利用自然语言处理的方法获取到了作为关联项目集的基础的关联项目名称集。由此,能够根据用户的行为序列(更具体是项目名称序列)的类自然语言特征(诸如语义特征等)发现相互关联的项目,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性。
<3-基于布朗聚类的方法>
本例利用自然语言处理中的布朗聚类来获取关联项目名称集。
首先,简要说明自然语言处理中的布朗聚类。
布朗聚类是一种针对词的聚类算法,该聚类是将词的集合分成由类似的词组成的多个类的过程。在输入一系列句子后,布朗聚类将句子中的每个词编码成一个由“1”和“0”排列而成的二进制码。该二进制码可以被认为是哈夫曼编码。在布朗聚类中,哈夫曼编码的前缀(即,前若干位)相同的所有词组成类,并且前缀相似度越高的词越接近。
例如,对于下列项目名称,有如下哈夫曼编码:
‘香皂’:110011000
‘沐浴露’:11001101
‘洗发水’:110010010
‘润发乳’:110010100
可以看出,‘香皂’、‘沐浴露’、‘洗发水’、‘润发乳’的前5个编码都相同,此外,‘香皂’、‘沐浴露’的前6个编码相同,‘洗发水’、‘润发乳’的前6个编码也相同。如果考虑前5个编码,则这4个项目名称就属于同一个类。如果考虑前6个编码,则‘香皂’、‘沐浴露’属于一个类,而‘洗发水’、‘润发乳’属于另一个类。可见,前缀的长度能够决定类的大小。
对于大量句子来说,可以利用布朗聚类进行聚类,得出每个词的哈夫曼编码,将编码前缀相同的词组成集合就得到了语义相似或相关的词的集合。
在本例中,基于项目名称序列,利用自然语言处理中的布朗聚类获取项目名称的哈夫曼编码,将哈夫曼编码的前缀相同的项目名称组成的集合确定为关联项目名称集。
下面,具体说明这一过程。
首先,将每个用户的项目名称序列看做是一个句子,通过将所有用户的项目名称序列作为语料,采用布朗聚类算法进行处理,从而得到每个项目名称的哈夫曼编码。
然后,将由哈夫曼编码的前缀相同的项目名称组成的集合确定为关联项目名称集。
这里,可以通过哈夫曼编码的前缀的长度来控制关联项目名称集的大小。例如,将由哈夫曼编码的规定长度(例如前3位、前5位等)的前缀相同的项目名称组成的集合确定为关联项目名称集。
同样地,为了得到足够多或者足够小的关联项目名称集,可以进行多次布朗聚类。
由此,通过利用自然语言处理中的布朗聚类,对所有用户的项目名称序列进行处理,得到每个项目名称的哈夫曼编码,然后将哈夫曼编码的前缀相同的项目名称组成关联项目名称集,从而利用自然语言处理的方法获取到了作为关联项目集的基础的关联项目名称集。由此,能够根据用户的行为序列(更具体是项目名称序列)的类自然语言特征(诸如语义特征等)发现相互关联的项目,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性。
以上具体说明了本公开的项目推荐方法的关联项目集获取操作S1。其中,利用自然语言处理中的词向量训练、主题模型训练、以及布朗聚类对项目名称序列进行处理。需要说明的是,词向量训练、主题模型训练、以及布朗聚类仅仅是例示,并不是对本公开的项目推荐方法给出限定,只要是自然语言处理中对语料(词、句子、文档等)进行处理的方法,就可以应用到本公开的项目推荐方法中。
下面,将具体说明推荐项目集选出操作S2以及推荐项目确定操作S3。
首先,具体说明推荐项目集选出操作S2。
在推荐项目集选出操作S2中,根据关联项目集的特征和给定用户相对关联项目集的特征,利用GBDT(Gradient Boosting Decision Tree:梯度提升决策树)算法相对关联项目集进行排序,根据该给定用户的给定行为,选出排序靠前的关联项目集作为针对给定用户的推荐项目集。
GBDT算法是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终结果。近些年,GBDT算法被广泛用于搜索排序的机器学习模型。这里,利用GBDT算法,根据关联项目集的特征和给定用户相对关联项目集的特征对所有关联项目集进行排序。
这里,基于一段时间(例如最近三个月或半年)内的用户数据统计得出每个关联项目集的特征和给定用户相对每个关联项目集的特征。其中,关联项目集的特征可以是从以下特征当中选出的一种或几种:点击占比、点击用户占比、浏览占比、浏览用户占比、关注占比、关注用户占比、加购占比、加购用户占比、订购占比、订购用户占比、以及平均复购周期等。给定用户相对关联项目集的特征可以是从以下特征当中选出的一种或几种:点击次数、浏览次数、关注次数、加购次数、订购次数、以及复购最短周期等。
下面,具体说明上述特征的含义。
首先,说明关联项目集的特征的含义。
关联项目集S的点击占比被定义为:给定时间段T内S中项目的点击总次数与该给定时间段T内的点击总次数之比。即:
关联项目集S的点击用户占比被定义为:给定时间段T内点击过S中项目的用户数目与该给定时间段T内点击过项目的用户数目之比。即:
关联项目集S的浏览占比被定义为:给定时间段T内S中项目的浏览总次数与该给定时间段T内的浏览总次数之比。即:
关联项目集S的浏览用户占比被定义为:给定时间段T内浏览过S中项目的用户数目与该给定时间段T内浏览过项目的用户数目之比。即:
关联项目集S的关注占比被定义为:给定时间段T内S中项目的关注总次数与该给定时间段T内的关注总次数之比。即:
关联项目集S的关注用户占比被定义为:给定时间段T内关注过S中项目的用户数目与该给定时间段T内关注过项目的用户数目之比。即:
关联项目集S的加购占比被定义为:给定时间段T内S中项目的加购总次数与该给定时间段T内的加购总次数之比。即:
关联项目集S的加购用户占比被定义为:给定时间段T内加购过S中项目的用户数目与该给定时间段T内加购过项目的用户数目之比。即:
关联项目集S的订购占比被定义为:给定时间段T内S中项目的订购总次数与该给定时间段T内订购总次数之比。即:
关联项目集S的订购用户占比被定义为:给定时间段T内订购过S中项目的用户数目与该给定时间段T内订购过项目的用户数目之比。即:
关联项目集S的平均复购周期被定义为:给定时间段T内S中项目的复购周期之和与该给定时间段T内S中项目的复购次数之比。其中,同一用户一前一后两次订购同一项目(中间不再订购该项目)的行为被定义为对该项目的一次复购,项目的复购周期指的是同一用户一前一后两次订购同一项目(中间不再订购该项目)的时间间隔。即:
接着,说明给定用户相对关联项目集的特征的含义。
给定用户U相对关联项目集S的点击次数被定义为:U在给定时间段T内点击S中项目的次数。
给定用户U相对关联项目集S的浏览次数被定义为:U在给定时间段T内浏览S中项目的次数。
给定用户U相对关联项目集S的关注次数被定义为:U在给定时间段T内关注S中项目的次数。
给定用户U相对关联项目集S的加购次数被定义为:U在给定时间段T内加购S中项目的次数。
给定用户U相对关联项目集S的订购次数被定义为:U在给定时间段T内订购S中项目的次数。
给定用户U相对关联项目集S的复购最短周期被定义为:U在给定时间段T内复购项目集S中项目的最短复购周期。
上述给定时间段T例如可以是最近三个月或半年,也可以更短,比如最近3天、1天、1小时、3分钟等。需要说明的是,关联项目集的特征和给定用户相对关联项目集的特征可以根据不同的给定时间段的用户数据来统计。比如,利用最近半年的用户数据统计得出关联项目集的特征,利用最近一天的用户数据统计得出给定用户相对关联项目集的特征。
此外,利用GBDT算法对关联项目集进行排序并不限定于使用上述特征,只要是能够体现关联项目集符合用户需求的准确程度,就可以是其他特征。
在利用GBDT算法根据关联项目集的特征和上述给定用户相对关联项目集的特征对所有关联项目集进行排序后,根据该给定用户的给定行为,选出排序靠前的关联项目集作为针对该给定用户的推荐项目集。具体来说,例如根据给定用户最近一天内的订购行为以及所订购的项目,从排序靠前的关联项目集中选出包含有该给定用户最近一天内所订购的(所有或部分)项目的关联项目集,作为针对该给定用户的推荐项目集。
这里,排序靠前的意思可以是前面M个以内,或者是从第一个关联项目集开始往后一直到选出推荐项目集为止。其中,M是正整数,可以根据需要来决定。
例如,如前所述,在用户最近订购了香皂、洗发水的情况下,如果由香皂、沐浴露、洗发水、润发乳构成的关联项目集“个人洗浴化学品”的排序靠前,则将该关联项目集“个人洗浴化学品”作为针对该用户的推荐项目集。
由此,通过根据如上所述的关联项目集的特征和给定用户相对关联项目集的特征,利用GBDT算法对关联项目集进行排序,在此基础上,根据给定用户的给定行为以及给定行为所涉及的项目,选出排序靠前的关联项目集作为针对给定用户的推荐项目集,从而能够综合考虑最近一段时间内的所有用户的某种或多种行为以及给定用户的某种或多种行为所分别反映出的规律性(例如,用户的偏好程度等),选出更加符合用户需求的项目。
下面,具体说明推荐项目确定操作S3。
在推荐项目确定操作S3中,根据推荐项目集中的项目的特征,利用GBDT算法对推荐项目集中上述给定用户的上述给定行为所涉及的项目以外的项目进行排序,将排序靠前的项目确定为针对该给定用户的推荐项目。
其中,推荐项目集中的项目的特征可以是从以下特征当中选出的一种或几种:点击占比、点击用户占比、浏览占比、浏览用户占比、关注占比、关注用户占比、加购占比、加购用户占比、订购占比、订购用户占比、复购占比、以及复购用户占比。
下面,具体说明上述特征的含义。
推荐项目集S中的项目I的点击占比被定义为:给定时间段T内I的点击总次数与该给定时间段T内S中项目的点击总次数之比。即:
推荐项目集S中的项目I的点击用户占比被定义为:给定时间段T内点击过I的用户数目与该给定时间段T内点击过S中项目的用户数目之比。即:
推荐项目集S中的项目I的浏览占比被定义为:给定时间段T内I的浏览总次数与该给定时间段T内S中项目的浏览总次数之比。即:
推荐项目集S中的项目I的浏览用户占比被定义为:给定时间段T内浏览过I的用户数目与该给定时间段T内浏览过S中项目的用户数目之比。即:
推荐项目集S中的项目I的关注占比被定义为:给定时间段T内I的关注总次数与该给定时间段T内S中项目的关注总次数之比。即:
推荐项目集S中的项目I的关注用户占比被定义为:给定时间段T内关注过I的用户数目与该给定时间段T内关注过S中项目的用户数目之比。即:
推荐项目集S中的项目I的加购占比被定义为:给定时间段T内I的加购总次数与该给定时间段T内S中项目的加购总次数之比。即:
推荐项目集S中的项目I的加购用户占比被定义为:给定时间段T内加购过I的用户数目与该给定时间段T内加购过S中项目的用户数目之比。即:
推荐项目集S中的项目I的订购占比被定义为:给定时间段T内I的订购总次数与该给定时间段T内S中项目的订购总次数之比。即:
推荐项目集S中的项目I的订购用户占比被定义为:给定时间段T内订购过I的用户数目与该给定时间段T内订购过S中项目的用户数目之比。即:
推荐项目集S中的项目I的复购占比被定义为:给定时间段T内I的复购次数与该给定时间段T内S中项目的复购次数之比。即:
推荐项目集S中的项目I的复购用户比被定义为:给定时间段T内复购过I的用户数目与该给定时间段T内复购过S中项目的用户数目之比。即:
同样地,上述给定时间段T例如可以是最近三个月或半年,也可以更短,比如最近3天、1天、1小时、3分钟等。
此外,利用GBDT算法对推荐项目集中的项目进行排序并不限定于使用上述特征,只要是能够体现推荐项目集中的项目符合用户需求的准确程度,就可以是其他特征。
在利用GBDT算法根据推荐项目集中的项目的特征对推荐项目集中上述给定用户的上述给定行为所涉及的项目以外的项目进行排序后,将排序靠前的项目确定为针对该给定用户的推荐项目。
同样地,排序靠前的意思可以是前面M个以内。其中,M是正整数,可以根据需要来决定。
例如,如前所述,在将由香皂、沐浴露、洗发水、润发乳构成的关联项目集“个人洗浴化学品”选出作为针对该给定用户的推荐项目集的情况下,如果在“个人洗浴化学品”中润发乳的排序靠前,则将润发乳确定为针对该用户的推荐项目。
由此,通过根据推荐项目集中的项目的特征,利用GBDT算法对推荐项目集中给定用户的给定行为所涉及的项目以外的项目进行排序,将排序靠前的项目确定为针对给定用户的推荐项目,从而能够利用项目本身在销售过程中反映出的规律性(例如,受偏好程度等),给用户提供更加符合其需求的项目。
以上的详细描述通过使用方框图、流程图和/或示例,已经阐述了本公开的项目推荐方法的实施例。在这种方框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种方框图、流程图或示例中的每一功能和/或操作可以通过各种硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实施例中,本公开的实施例所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。此外,本领域技术人员将认识到,本公开所述主题的机制能够作为多种形式的程序产品进行分发,并且无论实际用来执行分发的信号承载介质的具体类型如何,本公开所述主题的示例性实施例均适用。信号承载介质的示例包括但不限于:可记录型介质,如软盘、硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等;以及传输型介质,如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)。
下面,以图3为例,说明一种以硬件方式实现了上述项目推荐方法的项目推荐系统。
图3示意性示出了本公开另一个方面的与上述项目推荐方法对应的项目推荐系统的框图。
如图3所示,项目推荐系统300包括关联项目集获取模块310、推荐项目集选出模块320、和推荐项目确定模块330。
关联项目集获取模块310,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,如前所述,用户的行为序列是由用户的行为以及该行为所涉及的项目构成的序列,关联项目集中的项目相互关联。具体来说,例如根据最近三个月或半年内的用户数据得到每个用户的订购行为序列,基于所有用户的订购行为序列,利用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)获取关联项目集。其中,用户的订购行为序列是由用户的订购行为以及订购行为所涉及的项目即所订购的项目构成的序列。
需要说明的是,这里以订购行为为例来说明,但是基于用户的哪种或哪些行为的行为序列来获取关联项目集可以根据实际需要来决定。
由此,通过创新性地将自然语言理解的思想引入到项目推荐技术中,用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)对用户的行为序列进行处理来获取关联项目集,从而能够根据用户的行为序列的类自然语言特征(诸如语义特征等)发现相互关联的项目。因此,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性,并且能够跟踪用户的长期行为。
推荐项目集选出模块320,根据给定用户的给定行为以及该给定行为所涉及的项目,从关联项目集的集合中选出针对该给定用户的推荐项目集。具体来说,例如根据给定用户最近一天内的订购行为以及所订购的项目,从由所有获取到的关联项目集组成的集合中选出包含有该给定用户最近一天内所订购的(所有或部分)项目的关联项目集,作为针对该给定用户的推荐项目集。
同样需要说明的是,这里以订购行为作为用户的给定行为来说明,但是给定行为也可以是其他行为,可以根据实际需要来决定给定行为。
推荐项目确定模块330,根据上述给定用户的上述给定行为以及该给定行为所涉及的项目,在推荐项目集中确定针对该给定用户的推荐项目。具体来说,例如根据该给定用户最近一天内的订购行为以及所订购的项目,将选出的推荐项目集中用户最近一天内所订购的所有项目之外的(所有或部分)项目确定为针对该给定用户的推荐项目。
由此,通过在利用自然语言处理的方法获取到关联项目集的基础上,根据给定用户的给定行为选出针对该给定用户的推荐项目集并确定推荐项目,从而能够基于所发现的项目的多侧面的相关性推测出用户的真正需求,并且能够对特定用户个性化地进行相对准确的项目推荐。
此外,本公开的项目推荐方法不需要自底向上地构建频繁项集,也不需要给出关联规则,能够以相对简便的方法实现项目推荐。
下面,利用图4对上述关联项目集获取模块310进一步具体说明。
图4示意性示出了本公开另一个方面的与上述项目推荐方法对应的项目推荐系统的关联项目集获取模块的框图。
上述关联项目集获取模块310包括:行为序列预处理单元311、关联项目名称集获取单元312、以及关联项目集确定单元313。
行为序列预处理单元311,将用户的行为序列预处理成由用户的行为所涉及的项目的项目名称构成的序列即项目名称序列,其中,项目名称是自然语言当中用来表征项目的词。具体来说,例如将每个用户在最近三个月或半年内的订购行为序列预处理成项目名称序列,得到所有用户的项目名称序列。如何根据用户的行为序列得到项目名称序列如前所述,这里不再赘述。
由此,通过将用户的行为序列预处理成由自然语言当中用来表征项目的词即项目名称构成的序列即项目名称序列,将该序列看做是类自然语言的句子或文档,从而创新性地将自然语言理解的思想引入到项目推荐技术中。
关联项目名称集获取单元312,基于项目名称序列,利用自然语言处理的方法获取关联项目名称集。具体来说,例如将预处理成的每个用户的项目名称序列看做是类自然语言的一个句子或一篇文档,利用自然语言处理的方法(例如,词向量训练、主题模型训练、布朗聚类等)对所有用户的项目名称序列进行处理,由此获取关联项目名称集。
关联项目集确定单元313,将关联项目名称集中的项目名称对应成项目,得到与关联项目名称集对应的候选关联项目集,将可信度高的候选关联项目集确定为关联项目集。具体来说,例如将某个关联项目名称集中的所有项目名称对应成项目,由此将该关联项目名称集对应成一个项目集即候选关联项目集。这样,将所有关联项目名称集对应成候选关联项目集。
进而,将所得到的所有候选关联项目集中可信度高的候选关联项目集确定为所述关联项目集。
给定一个项目集S,该项目集S在给定时间段T内的可信度被定义为:在给定时间段T(例如最近三个月或半年)内对项目集S中所有项目有过给定行为的用户数目与该给定时间段T内有过该给定行为的用户数目之比。其中,这里的给定行为可以是浏览、点击、加购、订购、以及关注当中的一种或几种。
例如,如果用订购行为来定义可信度,则一个项目集S的可信度被定义为:给定时间段T内订购过项目集S中所有项目的用户数目与该给定时间段T内订购过项目的所有用户数目之比。即:
可以对可信度给出阈值,将可信度大于阈值的候选关联项目集确定为关联项目集。也可以按照可信度从高到低对候选关联项目集排序,将最靠前的M个候选关联项目集确定为关联项目集。其中,M是正整数。上述阈值和正整数M可以根据需要来决定。
需要说明的是,这里给出的可信度的定义仅仅是一个例子,只要能够反映出一个项目集作为关联项目集的可信程度,就可以有其它形式的定义。
另外,这里使用可信度来确定关联项目集是为了利用项目的历史销售数据等来保证关联项目集的可信程度,也可以不根据可信度来确定关联项目集,而直接通过将关联项目名称集中的项目名称对应成项目来得到关联项目集,即,直接将上述意义的候选关联项目集作为关联项目集。
由此,通过用自然语言处理的方法对用户的项目名称序列这样的类自然语言的句子或文档进行处理来得到关联项目名称集,进而将关联项目名称集对应成关联项目集,从而能够根据用户的行为序列(更具体是项目名称序列)的类自然语言特征(诸如语义特征等)发现相互关联的项目。因此,相比关联规则那样仅基于统计结果的相关性挖掘,能够发现项目多侧面的相关性。
下面,以图5为例,说明另一种以硬件方式实现了上述项目推荐方法的项目推荐系统。
图5示意性示出了本公开另一方面的项目推荐系统的方框图。
如图5所示,项目推荐系统500可以包括输入设备501(例如,键盘、鼠标、操作杆等)、输出设备502(例如,显示器等)、处理器503(例如,CPU等)、和存储器504(例如,硬盘HDD、只读存储器ROM等)。此外,还可以包括用虚线表示的记录介质505(例如,磁盘、光盘CD-ROM、USB等)。
此外,该图5仅是一个示例,并不限定本公开的技术方案。其中,项目推荐系统500中的各个部分均可以是一个或多个,例如,处理器503既可以是一个也可以是多个处理器。
这样,不言而喻,本公开实施例的上述项目推荐方法的上文参考流程图(图1~2)描述的过程可以被实现为计算机软件程序。在此,该计算机软件程序也可以为一个或多个。
于是,例如,上述计算机软件程序存储于上述项目推荐系统500的作为存储装置的存储器504中,通过执行该计算机软件程序,从而使上述项目推荐系统500的一个或多个处理器503执行本公开的图1~2流程图所示的上述项目推荐方法,以对给定用户推荐项目。
此外,作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的项目推荐系统500中所包含的(例如图5中的记录介质505);也可以是单独存在,而未装配入该项目推荐系统500中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该系统执行时,使得该系统执行上述图1~2所示的上述项目推荐方法。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上以购物网站为例对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。本公开并不限于电子商务,当然也可以应用到其他类型的各类社会化站点中。此外,尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (20)
1.一种项目推荐方法,对给定用户推荐项目,所述项目推荐方法包括:
关联项目集获取操作,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,所述行为序列是由用户的行为以及该行为所涉及的项目构成的序列,所述关联项目集中的项目相互关联;
推荐项目集选出操作,根据所述给定用户的给定行为以及所述给定行为所涉及的项目,从所述关联项目集的集合中选出针对所述给定用户的推荐项目集;以及
推荐项目确定操作,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,在所述推荐项目集中确定针对所述给定用户的推荐项目。
2.根据权利要求1所述的项目推荐方法,其中,
所述关联项目集获取操作包括:
行为序列预处理操作,将用户的所述行为序列预处理成由用户的行为所涉及的项目的项目名称构成的序列即项目名称序列,其中,项目名称是自然语言当中用来表征项目的词;
关联项目名称集获取操作,基于所述项目名称序列,利用自然语言处理的方法获取关联项目名称集;以及
关联项目集确定操作,将所述关联项目名称集中的项目名称对应成项目,得到与所述关联项目名称集对应的候选关联项目集,将可信度高的所述候选关联项目集确定为所述关联项目集。
3.根据权利要求2所述的项目推荐方法,其中,
给定一个项目集,该项目集的可信度被定义为:
在给定时间段内对该项目集中所有项目有过给定行为的用户数目与该给定时间段内有过该给定行为的用户数目之比。
4.根据权利要求2所述的项目推荐方法,其中,
在所述关联项目名称集获取操作中,
基于所述项目名称序列,利用自然语言处理中的词向量训练获取项目名称的词向量即项目名称向量,根据项目名称向量之间的相似度确定所述关联项目名称集。
5.根据权利要求4所述的项目推荐方法,其中,
基于项目名称向量之间的相似度对项目名称进行聚类,由此得到所述关联项目名称集。
6.根据权利要求5所述的项目推荐方法,其中,
将聚类的结果中具有规定数目的项目名称的类作为所述关联项目名称集。
7.根据权利要求2所述的项目推荐方法,其中,
在所述关联项目名称集获取操作中,
基于所述项目名称序列,利用自然语言处理中的主题模型训练获取项目主题,将项目主题下的项目名称组成的集合确定为所述关联项目名称集,其中,项目主题包括项目名称和项目名称的概率分布。
8.根据权利要求7所述的项目推荐方法,其中,
将项目主题下的概率高的项目名称组成的集合确定为所述关联项目名称集。
9.根据权利要求2所述的项目推荐方法,其中,
在所述关联项目名称集获取操作中,
基于所述项目名称序列,利用自然语言处理中的布朗聚类获取项目名称的哈夫曼编码,将哈夫曼编码的前缀相同的项目名称组成的集合确定为所述关联项目名称集。
10.根据权利要求9所述的项目推荐方法,其中,
将哈夫曼编码的规定长度的前缀相同的项目名称组成的集合确定为所述关联项目名称集。
11.根据权利要求1所述的项目推荐方法,其中,
在所述推荐项目集选出操作中,
根据所述关联项目集的特征和所述给定用户相对所述关联项目集的特征,利用梯度提升决策树算法对所述关联项目集进行排序,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,选出排序靠前的所述关联项目集作为针对所述给定用户的所述推荐项目集。
12.根据权利要求11所述的项目推荐方法,其中,
所述关联项目集的特征是从以下特征当中选出的一种或几种:
点击占比、点击用户占比、浏览占比、浏览用户占比、关注占比、关注用户占比、加购占比、加购用户占比、订购占比、订购用户占比、以及平均复购周期,
所述给定用户相对所述关联项目集的特征是从以下特征当中选出的一种或几种:
点击次数、浏览次数、关注次数、加购次数、订购次数、以及复购最短周期。
13.根据权利要求1所述的项目推荐方法,其中,
在所述推荐项目确定操作中,
根据所述推荐项目集中的项目的特征,利用梯度提升决策树算法对所述推荐项目集中所述给定用户的所述给定行为所涉及的项目以外的项目进行排序,将排序靠前的项目确定为针对所述给定用户的所述推荐项目。
14.根据权利要求13所述的项目推荐方法,其中,
所述推荐项目集中的项目的特征是从以下特征当中选出的一种或几种:
点击占比、点击用户占比、浏览占比、浏览用户占比、关注占比、关注用户占比、加购占比、加购用户占比、订购占比、订购用户占比、复购占比、以及复购用户占比。
15.根据权利要求1~14所述的项目推荐方法,其中,
所述项目是商品,
用户的所述行为是从以下行为当中选出的一种或几种:
点击、浏览、关注、加购、以及订购。
16.一种项目推荐系统,对给定用户推荐项目,所述项目推荐系统包括:
关联项目集获取模块,基于用户的行为序列,利用自然语言处理的方法获取关联项目集,其中,所述行为序列是由用户的行为以及该行为所涉及的项目构成的序列,所述关联项目集中的项目相互关联;
推荐项目集选出模块,根据所述给定用户的给定行为以及所述给定行为所涉及的项目,从所述关联项目集的集合中选出针对所述给定用户的推荐项目集;以及
推荐项目确定模块,根据所述给定用户的所述给定行为以及所述给定行为所涉及的项目,在所述推荐项目集中确定针对所述给定用户的推荐项目。
17.根据权利要求16所述的项目推荐系统,其中,
所述关联项目集获取模块包括:
行为序列预处理单元,将用户的所述行为序列预处理成由用户的行为所涉及的项目的项目名称构成的序列即项目名称序列,其中,项目名称是自然语言当中用来表征项目的词;
关联项目名称集获取单元,基于所述项目名称序列,利用自然语言处理的方法获取关联项目名称集;以及
关联项目集确定单元,将所述关联项目名称集中的项目名称对应成项目,得到与所述关联项目名称集对应的候选关联项目集,将可信度高的所述候选关联项目集确定为所述关联项目集。
18.根据权利要求17所述的项目推荐系统,其中,
给定一个项目集,该项目集的可信度被定义为:
在给定时间段内对该项目集中所有项目有过给定行为的用户数目与该给定时间段内有过该给定行为的用户数目之比。
19.一种项目推荐系统,对给定用户推荐项目,所述项目推荐系统包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1-15中任一项所述的项目推荐方法。
20.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行权利要求1-15中任一项所述的项目推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711325615.1A CN109919699B (zh) | 2017-12-12 | 2017-12-12 | 项目推荐方法、项目推荐系统以及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711325615.1A CN109919699B (zh) | 2017-12-12 | 2017-12-12 | 项目推荐方法、项目推荐系统以及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109919699A true CN109919699A (zh) | 2019-06-21 |
CN109919699B CN109919699B (zh) | 2022-03-04 |
Family
ID=66958258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711325615.1A Active CN109919699B (zh) | 2017-12-12 | 2017-12-12 | 项目推荐方法、项目推荐系统以及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109919699B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111461841A (zh) * | 2020-04-07 | 2020-07-28 | 腾讯云计算(北京)有限责任公司 | 物品推荐方法、装置、服务器及存储介质 |
CN112100370A (zh) * | 2020-08-10 | 2020-12-18 | 淮阴工学院 | 一种基于文本卷积和相似度算法的图审专家组合推荐方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226557A (zh) * | 2008-02-22 | 2008-07-23 | 中国科学院软件研究所 | 一种高效的关联主题模型数据处理方法及其系统 |
CN101431485A (zh) * | 2008-12-31 | 2009-05-13 | 深圳市迅雷网络技术有限公司 | 一种自动推荐互联网上信息的方法及系统 |
JP2016076109A (ja) * | 2014-10-07 | 2016-05-12 | 国立大学法人九州工業大学 | 顧客購買意思予測装置及び顧客購買意思予測方法 |
CN105654307A (zh) * | 2014-11-13 | 2016-06-08 | 苏宁云商集团股份有限公司 | 基于用户反馈的商品推荐方法和系统 |
CN106021562A (zh) * | 2016-05-31 | 2016-10-12 | 北京京拍档科技有限公司 | 用于电商平台的基于主题相关的推荐方法 |
CN106959966A (zh) * | 2016-01-12 | 2017-07-18 | 腾讯科技(深圳)有限公司 | 一种信息推荐方法及系统 |
-
2017
- 2017-12-12 CN CN201711325615.1A patent/CN109919699B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226557A (zh) * | 2008-02-22 | 2008-07-23 | 中国科学院软件研究所 | 一种高效的关联主题模型数据处理方法及其系统 |
CN101431485A (zh) * | 2008-12-31 | 2009-05-13 | 深圳市迅雷网络技术有限公司 | 一种自动推荐互联网上信息的方法及系统 |
JP2016076109A (ja) * | 2014-10-07 | 2016-05-12 | 国立大学法人九州工業大学 | 顧客購買意思予測装置及び顧客購買意思予測方法 |
CN105654307A (zh) * | 2014-11-13 | 2016-06-08 | 苏宁云商集团股份有限公司 | 基于用户反馈的商品推荐方法和系统 |
CN106959966A (zh) * | 2016-01-12 | 2017-07-18 | 腾讯科技(深圳)有限公司 | 一种信息推荐方法及系统 |
CN106021562A (zh) * | 2016-05-31 | 2016-10-12 | 北京京拍档科技有限公司 | 用于电商平台的基于主题相关的推荐方法 |
Non-Patent Citations (1)
Title |
---|
付瑞吉: "开放域命名实体识别及其层次化类别获取", 《中国优秀博士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111461841A (zh) * | 2020-04-07 | 2020-07-28 | 腾讯云计算(北京)有限责任公司 | 物品推荐方法、装置、服务器及存储介质 |
CN111461841B (zh) * | 2020-04-07 | 2023-04-07 | 腾讯云计算(北京)有限责任公司 | 物品推荐方法、装置、服务器及存储介质 |
CN112100370A (zh) * | 2020-08-10 | 2020-12-18 | 淮阴工学院 | 一种基于文本卷积和相似度算法的图审专家组合推荐方法 |
CN112100370B (zh) * | 2020-08-10 | 2023-07-25 | 淮阴工学院 | 一种基于文本卷积和相似度算法的图审专家组合推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109919699B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Foreman | Data smart: Using data science to transform information into insight | |
US7734641B2 (en) | Recommendation systems and methods using interest correlation | |
Blair-Goldensohn et al. | Building a sentiment summarizer for local service reviews | |
Chuang et al. | “Without the clutter of unimportant words” Descriptive keyphrases for text visualization | |
CN109299994B (zh) | 推荐方法、装置、设备及可读存储介质 | |
CN104106087B (zh) | 用于网上购物的关联提取的系统和方法 | |
Kangale et al. | Mining consumer reviews to generate ratings of different product attributes while producing feature-based review-summary | |
CN109783539A (zh) | 用户挖掘及其模型构建方法、装置及计算机设备 | |
US20080294622A1 (en) | Ontology based recommendation systems and methods | |
US20080294624A1 (en) | Recommendation systems and methods using interest correlation | |
EP2838064A1 (en) | Recomendation systems and methods | |
CN111400507B (zh) | 实体匹配方法及其装置 | |
CN102236646A (zh) | 对象级垂直搜索引擎个性化排序算法iRank | |
TW201135478A (en) | Methods and systems for automatically constructing domain phrases, and computer program products thereof | |
CN109389447A (zh) | 项目推荐方法、项目推荐系统以及计算机可读介质 | |
Adnan et al. | Sentiment analysis of restaurant review with classification approach in the decision tree-j48 algorithm | |
Guo et al. | Mining multi-brand characteristics from online reviews for competitive analysis: A brand joint model using latent Dirichlet allocation | |
CN113570413A (zh) | 广告关键词的生成方法、装置、存储介质及电子设备 | |
Xiao et al. | Coupled matrix factorization and topic modeling for aspect mining | |
CN110826321A (zh) | 合同文件风险校验方法、装置、计算机设备以及存储介质 | |
Li et al. | Multi-classes feature engineering with sliding window for purchase prediction in mobile commerce | |
CN109919699A (zh) | 项目推荐方法、项目推荐系统以及计算机可读介质 | |
CN103577473A (zh) | 分类消岐方法、分类消岐装置及其系统 | |
Zhan et al. | User-inspired posterior network for recommendation reason generation | |
CN110309274A (zh) | 引导语推荐方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |