CN106570008B - 推荐方法及装置 - Google Patents
推荐方法及装置 Download PDFInfo
- Publication number
- CN106570008B CN106570008B CN201510648588.6A CN201510648588A CN106570008B CN 106570008 B CN106570008 B CN 106570008B CN 201510648588 A CN201510648588 A CN 201510648588A CN 106570008 B CN106570008 B CN 106570008B
- Authority
- CN
- China
- Prior art keywords
- network
- user
- users
- network object
- objects
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006399 behavior Effects 0.000 claims abstract description 185
- 239000013598 vector Substances 0.000 claims description 321
- 238000012545 processing Methods 0.000 claims description 36
- 230000006798 recombination Effects 0.000 claims description 6
- 238000005215 recombination Methods 0.000 claims description 6
- 238000012552 review Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 7
- 230000002596 correlated effect Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 20
- 230000000875 corresponding effect Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000035622 drinking Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种推荐方法及装置。推荐方法包括:对网络系统中的用户行为进行实时采集,以获得实时用户行为数据;根据实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据;根据当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度;根据用户之间、网络对象之间和/或用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐。本申请可以提高推荐精度,提高推荐效果。
Description
【技术领域】
本申请涉及互联网技术领域,尤其涉及一种推荐方法及装置。
【背景技术】
随着互联网技术的发展,用户可以从网站上获取的内容(简称为网络对象)越来越多。在用户浏览网站选择网络对象的过程中,网站推荐系统起着十分重要的作用,特别是对于不具有明确需求的用户,很可能会直接选择网站推荐系统所推荐的网络对象。一个高效的推荐系统,不仅可以方便用户使用,提升网站自身价值,而且更重要的是能够减少用户漫无目的的浏览、点击等行为,有利于减轻网站服务器的负担,节约网络带宽资源。
目前,越来越多的网站开始有自己的推荐系统。大多网站都采用基于Hadoop Map/Reduce的离线推荐算法。Map/Reduce主要以批处理的方式进行数据处理,通常是从磁盘读取数据,所以基于Hadoop Map/Reduce的离线推荐算法的核心思想是针对前一天或较长一段时间的用户的历史行为数据进行协同计算,根据计算结果进行推荐。这种算法的推荐精准度不高、效果较差,无法满足一些需要实时协同、快速响应的应用场景的需求。
【发明内容】
本申请的多个方面提供一种推荐方法及装置,用以提高推荐精度,提高推荐效果。
本申请的一方面,提供一种推荐方法,包括:
对网络系统中的用户行为进行实时采集,以获得实时用户行为数据;
根据所述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据;
根据当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度;
根据所述用户之间、网络对象之间和/或用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐。
在本申请的一可选实施方式中,所述根据所述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据,包括执行以下至少一种操作:
若所述实时用户行为数据包括新用户对新网络对象的实时行为数据,则根据所述新用户对新网络对象的实时行为数据,生成所述新用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对新增网络对象的评分数据;
若所述实时用户行为数据包括新用户对已有网络对象的实时行为数据,则根据所述新用户对已有网络对象的实时行为数据,生成所述新用户对已有网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对已有网络对象的评分数据;
若所述实时用户行为数据包括已有用户对新网络对象的实时行为数据,则根据所述已有用户对新网络对象的实时行为数据,生成所述已有用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述已有用户对新网络对象的评分数据;
若所述实时用户行为数据包括已有用户对已有网络对象的实时行为数据,则根据所述已有用户对已有网络对象的实时行为数据,生成所述已有用户对已有网络对象的评分数据增量,根据所述评分数据增量更新当前之前网络系统中所述已有用户对已有网络对象的评分数据。
在本申请的一可选实施方式中,所述根据当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度,包括:
从用户和/或网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和/或网络对象的评分向量;
根据所述用户的评分向量和/或网络对象的评分向量,计算所述用户之间、网络对象之间和/或用户与网络对象之间的相似度。
在本申请的一可选实施方式中,所述从用户和网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和网络对象的评分向量,包括:
对当前网络系统中用户对网络对象的评分数据进行数据结构重组,以形成多个第一键值对,每个第一键值对中的键为用户的标识,值为网络对象的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第一键值对进行关联,以形成所述键所标识的用户的评分向量;
对所述第一键值对进行反转处理,形成多个第二键值对,每个第二键值对的键为网络对象的标识,值为用户的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第二键值对进行关联,以形成所述键所标识的网络对象的评分向量。
在本申请的一可选实施方式中,所述根据所述用户的评分向量和/或网络对象的评分向量,计算所述用户之间、网络对象之间和/或用户与网络对象之间的相似度,包括以下至少一种操作:
根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度;
根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度;
根据所述用户的评分向量和所述网络对象的评分向量,计算所述用户中的任一用户与所述网络对象中任一网络对象之间的相似度。
在本申请的一可选实施方式中,所述根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度,包括:
获取同一用户评分过的网络对象以形成网络对象子集;
将所述网络对象子集中的每两个网络对象的评分向量进行关联,并根据所述网络对象子集中每两个网络对象之间的关联,将所述网络对象中尚未关联的每两个网络对象之间的评分向量进行关联,以形成所述网络对象中每两个网络对象之间的关联特征向量;
根据所述网络对象中每两个网络对象之间的关联特征向量,获取所述网络对象中每两个网络对象之间的相似度;
所述根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度,包括:
获取对同一网络对象评分过的用户以形成用户子集;
将所述用户子集中的每两个用户的评分向量进行关联,并根据所述用户子集中的每两个用户之间的关联,将所述用户中尚未关联的每两个用户之间的评分向量进行关联,以形成所述用户中每两个用户之间的关联特征向量;
根据所述用户中每两个用户之间的关联特征向量,获取所述用户中每两个用户之间的相似度;
所述根据所述用户的评分向量和所述网络对象的评分向量,计算所述用户中的任一用户与所述网络对象中任一网络对象之间的相似度,包括:
对于所述用户中的任一用户,将所述用户的评分向量与所述网络对象中任一网络对象的评分向量进行关联,以形成所述用户与所述网络对象中任一网络对象之间的关联特征向量,根据所述用户与所述网络对象中任一网络对象之间的关联特征向量,获取所述用户与所述网络对象中任一网络对象之间的相似度。
在本申请的一可选实施方式中,所述根据所述用户之间、网络对象之间和/或用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐,包括以下至少一种推荐操作:
根据所述网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户当前操作的网络对象之间的相似度满足预设第一条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐;
根据所述用户之间的相似度,从当前网络系统中的用户中,获取与所述网络对象需求用户之间的相似度满足预设第二条件的用户作为候选用户;从所述候选用户评分过的网络对象中向所述网络对象需求用户进行推荐;
根据所述用户与网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户之间的相似度满足预设第三条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐。
在本申请的一可选实施方式中,所述网络对象为商品对象以及服务对象中的至少一种;
所述用户行为包括:浏览、收藏、加购物车、购买支付以及评论中的至少一种。
本申请的另一方面,提供一种推荐装置,包括:
采集模块,用于对网络系统中的用户行为进行实时采集,以获得实时用户行为数据;
更新模块,用于根据所述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据;
相似处理模块,用于根据当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度;
推荐模块,用于根据所述用户之间、网络对象之间和/或用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐。
在本申请的一可选实施方式中,所述更新模块具体用于执行以下至少一种操作:
若所述实时用户行为数据包括新用户对新网络对象的实时行为数据,则根据所述新用户对新网络对象的实时行为数据,生成所述新用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对新增网络对象的评分数据;
若所述实时用户行为数据包括新用户对已有网络对象的实时行为数据,则根据所述新用户对已有网络对象的实时行为数据,生成所述新用户对已有网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对已有网络对象的评分数据;
若所述实时用户行为数据包括已有用户对新网络对象的实时行为数据,则根据所述已有用户对新网络对象的实时行为数据,生成所述已有用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述已有用户对新网络对象的评分数据;
若所述实时用户行为数据包括已有用户对已有网络对象的实时行为数据,则根据所述已有用户对已有网络对象的实时行为数据,生成所述已有用户对已有网络对象的评分数据增量,根据所述评分数据增量更新当前之前网络系统中所述已有用户对已有网络对象的评分数据。
在本申请的一可选实施方式中,所述相似处理模块具体用于:
从用户和/或网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和/或网络对象的评分向量;
根据所述用户的评分向量和/或网络对象的评分向量,计算所述用户之间、网络对象之间和/或用户与网络对象之间的相似度。
在本申请的一可选实施方式中,所述相似处理模块具体用于:
对当前网络系统中用户对网络对象的评分数据进行数据结构重组,以形成多个第一键值对,每个第一键值对中的键为用户的标识,值为网络对象的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第一键值对进行关联,以形成所述键所标识的用户的评分向量;
对所述第一键值对进行反转处理,形成多个第二键值对,每个第二键值对的键为网络对象的标识,值为用户的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第二键值对进行关联,以形成所述键所标识的网络对象的评分向量。
在本申请的一可选实施方式中,所述相似处理模块具体用于执行以下至少一种操作:
根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度;
根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度;
根据所述用户的评分向量和所述网络对象的评分向量,计算所述用户中的任一用户与所述网络对象中任一网络对象之间的相似度。
在本申请的一可选实施方式中,所述相似处理模块具体用于:
获取同一用户评分过的网络对象以形成网络对象子集;
将所述网络对象子集中的每两个网络对象的评分向量进行关联,并根据所述网络对象子集中每两个网络对象之间的关联,将所述网络对象中尚未关联的每两个网络对象之间的评分向量进行关联,以形成所述网络对象中每两个网络对象之间的关联特征向量;
根据所述网络对象中每两个网络对象之间的关联特征向量,获取所述网络对象中每两个网络对象之间的相似度;
所述相似处理模块具体用于:
获取对同一网络对象评分过的用户以形成用户子集;
将所述用户子集中的每两个用户的评分向量进行关联,并根据所述用户子集中的每两个用户之间的关联,将所述用户中尚未关联的每两个用户之间的评分向量进行关联,以形成所述用户中每两个用户之间的关联特征向量;
根据所述用户中每两个用户之间的关联特征向量,获取所述用户中每两个用户之间的相似度;
所述相似处理模块具体用于:
对于所述用户中的任一用户,将所述用户的评分向量与所述网络对象中任一网络对象的评分向量进行关联,以形成所述用户与所述网络对象中任一网络对象之间的关联特征向量,根据所述用户与所述网络对象中任一网络对象之间的关联特征向量,获取所述用户与所述网络对象中任一网络对象之间的相似度。
在本申请的一可选实施方式中,所述推荐模块具体用于执行以下至少一种操作:
根据所述网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户当前操作的网络对象之间的相似度满足预设第一条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐;
根据所述用户之间的相似度,从当前网络系统中的用户中,获取与所述网络对象需求用户之间的相似度满足预设第二条件的用户作为候选用户;从所述候选用户评分过的网络对象中向所述网络对象需求用户进行推荐;
根据所述用户与网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户之间的相似度满足预设第三条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐。
在本申请的一可选实施方式中,所述网络对象为商品对象以及服务对象中的至少一种;
所述用户行为包括:浏览、收藏、加购物车、购买支付以及评论中的至少一种。
在本申请中,对网络系统中的用户行为进行实时采集,以获得实时用户行为数据;根据实时用户行为数据对当前之前网络系统中用户对网络对象的评分数据进行更新,从而获得当前网络系统中用户对网络对象的评分数据;基于当前网络系统中用户对网络对象的评分数据,计算用户之间、网络对象之间以及用户与网络对象之间的相似度;根据用户之间、网络对象之间以及用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐,达到推荐的目的。同时,由于本申请将实时用户行为数据和离线数据进行结合,利用实时用户行为数据对离线数据进行补充,因此可以提高推荐的精准度,提高推荐效果,可以满足需要实时协同、快速响应的应用场景的需求。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的推荐方法的流程示意图;
图2为本申请另一实施例提供的推荐方法的系统架构示意图;
图3为本申请又一实施例提供的推荐装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请一实施例提供的推荐方法的流程示意图。如图1所示,该方法包括:
101、对网络系统中的用户行为进行实时采集,以获得实时用户行为数据。
102、根据上述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据。
103、根据当前网络系统中用户对网络对象的评分数据,计算用户之间、网络对象之间以及用户与网络对象之间的相似度。
104、根据用户之间、网络对象之间以及用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐。
本实施例提供一种推荐方法,其流程可由推荐装置来执行。本实施例提供的方法可用于任何基于互联网进行信息推荐的应用场景。举例说明,当用户在电商网站上购物时,电商网站采用本实施例提供的方法可以向用户推荐商品。又例如,用户在资源下载网站下载视频资源时,资源下载网站可以向用户推荐相关的视频资源。又例如,用户通过外卖客户端叫外卖时,外卖客户端可以向用户推荐相关外卖商品等。
根据应用场景的不同,本实施例的网络系统、网络系统中的用户行为及网络对象均会有所不同。本实施例不对网络系统、网络系统中的用户行为及网络对象的实现形式进行限定。例如,网络系统可以是以各电商网站为核心的网络系统,相应的,网络系统中的网络对象可以为商品对象,网络系统中的用户行为可以包括浏览、收藏、加购物车、购买、支付以及评论中的至少一种。又例如,网络系统可以是以资源下载网站为核心的网络系统,相应的,网络系统中的网络对象可以为下载资源,例如音视频资源、文本资源等,网络系统中的用户行为可以包括预览、下载、播放等中的至少一种。另外,本实施例的网络对象还可以是基于互联网的服务对象,所述服务对象可以是洗车服务、养护服务、按摩服务、清洁服务、厨师上门服务、家政服务、家教服务、娱乐服务、吃喝服务、旅行服务、酒店服务、租车服务等等。
在本实施例中,网络系统主要包括用户、用户行为、网络对象、用户对网络对象的评分数据等一系列数据。其中,每个用户在网络系统中的操作行为称为网络系统中的用户行为。
值得说明的是,用于执行本实施例方法流程的推荐装置,可以作为各网站或客户端中的功能模块实现,或者也可以独立于各网站或客户端但能够与各网站或客户端进行通信,以配合各网站或客户端完成推荐。
在本实施例中,推荐装置为了更加精准、及时的向用户推荐网络对象,推荐装置对网络系统中的用户行为进行实时采集,以获得实时用户行为数据,将实时用户行为数据与一些历史数据进行结合,进行网络对象推荐。在具体实现上,推荐装置可以在前端部署一消息流式基础通信组件,例如MetaQ(Metamorphosis)、Notify、Kafka等,对网络系统中的用户行为进行实时流式的采集并输出的实时用户行为数据。
其中,推荐装置可以对网络系统中的部分用户行为进行实时采集,也可以对网络系统中的全部用户行为进行实时采集。不同用户的用户行为可以相同,也可以不同。例如在用户A浏览网络系统中某一网络对象时,用户B可能正在执行该网络对象的加购物车操作,而用户C可能也正在浏览该网络对象。同一用户在不同时间的用户行为可以相同,也可以不同。例如,用户A在1分钟之前浏览网络系统中的某网络对象,1分钟之后该用户A正在执行该网络对象的支付操作;或者,用户A在1分钟之前浏览网络系统中的某网络对象,在2分钟之后,用户A仍在浏览该网络对象。
推荐装置采集到的实时用户行为数据主要包括用户对网络对象的浏览、收藏、加购物车、购买、下载、播放等各种操作所产生的日志数据。
可选的,在采集到实时用户行为数据之后,推荐装置可以对实时用户行为数据进行清洗等预处理。
在本实施例中,与实时用户行为数据结合使用的历史数据主要是指之前网络系统中用户对网络对象的评分数据。本实施例中用户对网络对象的评分数据主要是指根据用户对网络对象的用户行为,对网络对象进行评分获得的评分结果。例如,可以预先设定每种用户行为对应的权重函数,则可以对用户对网络对象的各种用户行为对应的权重函数求和,从而获得该用户对该网络对象的评分数据。例如,用户k对网络对象l的评分数据可以表示为:其中x表示用户k对网络对象l的用户行为,f(x)表示用户行为x对应的权重函数,t表示用户k对网络对象l的用户行为的总数。
为便于描述,本申请中,可以将用户k称为对网络对象l评分过的用户,将网络对象l称为被用户k评分过的网络对象。
上述各个用户行为对应的权值函数可以预先根据经验给定,或者可通过机器学习得到。对于没有用户行为的网络对象,可以将用户对该网络对象的评分数据初始化为0,但不限于0。
值得说明的是,对于某一网络对象来说,在该网络对象没有用户行为(即该网络对象没有被用户评分过)时,用户对其评分数据初始化为0;随着用户行为的产生,推荐装置可以获取用户对网络对象产生的用户行为,然后获取该用户行为对应的权重函数,在已有评分数据的基础上累加当前用户行为对应的权重函数,从而获得用户对该网络对象的新的评分数据。
由于本实施例中用户对网络对象的评分数据体现了用户对网络对象的操作行为,因此可以通过用户对网络对象的评分数据来挖掘或发现网络对象之间、用户之间或用户与网络对象之间的相似度,进而基于这些相似度进行网络对象的推荐。
具体的,推荐装置在获得实时用户行为数据之后,可以根据该实时用户行为数据对当前之前网络系统中用户对网络对象的评分数据进行更新,从而获得当前网络系统中用户对网络对象的评分数据;之后,根据当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度;根据用户之间、网络对象之间和/或用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐。
在网络系统中,存在一些冷启动场景,例如涉及新网络对象、新用户等的场景。在本实施例中,考虑到不同冷启动场景下,实时用户行为数据会有所不同,所以根据实时用户行为数据,对之前网络系统中用户对网络对象的评分数据进行更新的方式也会有所不同。于是,根据用户行为是否涉及冷启动场景,将用户行为分为以下四种:已有用户对已有网络对象产生的行为,新用户对已有网络对象产生的行为,已有用户对新网络对象产生的行为,新用户对新网络对象产生的行为。这意味着,实时采集的用户行为可能包括上述四种行为中的一种或多种。
基于上述,根据实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据,包括执行以下至少一种操作:
若实时用户行为数据包括新用户对新网络对象的实时行为数据,则根据新用户对新网络对象的实时行为数据,生成该新用户对该新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加该新用户对新增网络对象的评分数据;
若实时用户行为数据包括新用户对已有网络对象的实时行为数据,则根据该新用户对已有网络对象的实时行为数据,生成该新用户对该已有网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加该新用户对该已有网络对象的评分数据;
若实时用户行为数据包括已有用户对新网络对象的实时行为数据,则根据该已有用户对新网络对象的行为数据,生成该已有用户对该新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加该已有用户对该新网络对象的评分数据;
若实时用户行为数据包括已有用户对已有网络对象的实时行为数据,则根据该已有用户对已有网络对象的实时行为数据,生成该已有用户对该已有网络对象的评分数据增量,根据该评分数据增量更新之前网络系统中该已有用户对该已有网络对象的评分数据。
可选的,推荐装置可以采用任意方式,对网络系统中用户对网络对象的评分数据进行维护管理。例如,较为简单的实现形式是零散存储用户对网络对象的评分数据。但是,考虑到网络系统中用户的数量以及网络对象的数据较多,所以用户对网络对象的评分数据的数据量会很大,为了便于维护、管理和使用,推荐装置也可以按照一定规律,有组织的存储用户对网络对象的评分数据。例如,可以从用户或网络对象的维护,来存储和管理用户对网络对象的评分数据。
在获得当前网络系统中用户对网络对象的评分数据之后,为便于简化计算流程,提高计算效率,推荐装置可以从用户和/或网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和/或网络对象的评分向量,这里具体是指形成当前网络系统中每个用户的评分向量,和/或,当前网络系统中每个网络对象的评分向量。值得说明的是,对于不需要更新的用户或网络对象的评分向量,可以直接将当前之前网络系统中相应用户或网络对象的评分向量作为当前网络系统中相应用户或网络对象的评分向量。然后,推荐装置根据用户的评分向量和/或网络对象的评分向量,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度。具体的,根据用户的评分向量,计算用户之间的相似度;根据网络对象的评分向量,计算网络对象之间的相似度;根据用户的评分向量与网络对象的评分向量,计算用户与网络对象之间的相似度。
值得说明的是,上述形成用户的评分向量和/或网络对象的评分向量的过程,可以是在获得当前网络系统中用户对网络对象的评分数据的过程中实现,也可以是在获得当前网络系统中用户对网络对象的评分数据之后实现。
可选的,若在后续网络对象推荐过程中,只采用网络对象之间的相似度,则在上述形成评分向量的过程中,可以只生成网络对象的评分向量,从而简化计算量,提高效率;若在后续网络对象推荐过程中,只采用用户之间的相似度,则在上述形成评分向量的过程中,可以只生成用户的评分向量,从而简化计算量,提高效率。
较为优选的是,在上述形成评分向量的过程中,一并生成用户的评分向量和网络对象的评分向量,这样可以灵活、方便的计算各种相似度(例如,用户之间、网络对象之间和/或用户与网络对象之间的相似度),兼容性较强,应用场景更加灵活。
则,上述从用户和网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和网络对象的评分向量的过程包括:
对当前网络系统中用户对网络对象的评分数据进行数据结构重组,以形成多个第一键值对,每个第一键值对中的键为用户的标识,值为网络对象的标识以及由该用户的标识所标识的用户对该网络对象的标识所标识的网络对象的评分数据;其中,每个用户对每个网络对象的评分数据构成一个第一键值对;
将键相同的第一键值对进行关联,以形成该键所标识的用户的评分向量;
对第一键值对进行反转处理,形成多个第二键值对,每个第二键值对的键为网络对象的标识,值为用户的标识以及由该用户的标识所标识的用户对该网络对象的标识所标识的网络对象的评分数据;其中,每个用户对每个网络对象的评分数据构成一个第二键值对;
将键相同的第二键值对进行关联,以形成该键所标识的网络对象的评分向量。
可选的,上述根据用户的评分向量和/或网络对象的评分向量,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度,包括以下至少一种操作:
根据网络对象的评分向量,计算网络对象中每两个网络对象之间的相似度;
根据用户的评分向量,计算用户中每两个用户之间的相似度;
根据用户的评分向量和网络对象的评分向量,计算用户中的任一用户与网络对象中任一网络对象之间的相似度。
具体的,一种根据网络对象的评分向量,计算网络对象中每两个网络对象之间的相似度的实施方式包括:获取同一用户评分过的网络对象以形成网络对象子集;将网络对象子集中的每两个网络对象的评分向量进行关联,并根据网络对象子集中每两个网络对象之间的关联,将网络对象中尚未关联的每两个网络对象之间的评分向量进行关联,以形成网络对象中每两个网络对象之间的关联特征向量,根据网络对象中每两个网络对象之间的关联特征向量,计算每两个网络对象之间的相似度。
举例说明,假设用户甲对网络对象A、B、C进行过评分,用户乙对网络对象B、C、D进行过评分,则网络对象A、B、C形成一个网络对象子集,相应的,网络对象B、C、D形成一个网络对象子集。对于每个网络对象子集,将网络对象子集中的每两个网络对象的评分向量进行关联,以形成每两个网络对象之间的关联特征向量。例如,对于包括网络对象A、B、C的网络对象子集,可以将网络对象A与网络对象B的评分向量进行关联,形成网络对象A与网络对象B之间的关联特征向量,将网络对象A与网络对象C的评分向量进行关联,形成网络对象A与网络对象C之间的关联特征向量,以及将网络对象B与网络对象C的评分向量进行关联,形成网络对象B与网络对象C之间的关联特征向量。对于包括网络对象B、C、D的网络对象子集,可以将网络对象B与网络对象C的评分向量进行关联,形成网络对象B与网络对象C之间的关联特征向量,将网络对象B与网络对象D的评分向量进行关联,形成网络对象B与网络对象D之间的关联特征向量,以及将网络对象C与网络对象D的评分向量进行关联,形成网络对象C与网络对象D之间的关联特征向量。另外,根据两个网络对象子集中每两个网络对象之间的关联,确定网络对象中尚未关联的网络对象,例如网络对象A和网络对象D,则根据两个网络对象子集中每两个网络对象之间的关联,将网络对象中尚未关联的网络对象之间的评分向量进行关联,即将网络对象A和网络对象D的评分向量进行关联,形成网络对象A与网络对象D之间的关联特征向量。至此,获得网络对象中每两个网络对象之间的关联特征向量,之后根据网络对象中每两个网络对象之间的关联特征向量,获取网络对象中每两个网络对象之间的相似度。
具体的,一种根据用户的评分向量,计算用户中每两个用户之间的相似度的实施方式包括:获取对同一网络对象评分过的用户以形成用户子集;将用户子集中的每两个用户的评分向量进行关联,并根据用户子集中的每两个用户之间的关联,将用户中尚未关联的每两个用户之间的评分向量进行关联,以形成用户中每两个用户之间的关联特征向量,根据用户中每两个用户之间的关联特征向量,计算用户中每两个用户之间的相似度。
举例说明,假设用户甲、乙、丙分别对网络对象A进行过评分,用户甲、丙、丁分别对网络对象B进行过评分,则可以将用户甲、乙、丙形成一个用户子集,将用户甲、丙、丁形成一个用户子集。对于每个用户子集,将该用户子集中的每两个用户的评分向量进行关联,以形成该用户子集中每两个用户之间的关联特征向量。具体的,对于包括用户甲、乙、丙的用户子集,将用户甲与用户乙的评分向量进行关联,形成用户甲与用户乙之间的关联特征向量,将用户甲与用户丙的评分向量进行关联,形成用户甲与用户丙之间的关联特征向量,以及将用户乙与用户丙的评分向量进行关联,形成用户乙与用户丙之间的关联特征向量。对于包括用户甲、丙、丁的用户子集,将用户甲与用户丙的评分向量进行关联,形成用户甲与用户丙之间的关联特征向量,将用户甲与用户丁的评分向量进行关联,形成用户甲与用户丁之间的关联特征向量,以及将用户丙与用户丁的评分向量进行关联,形成用户丙与用户丁之间的关联特征向量。另外,根据两个用户子集中每两个用户之间的关联,确定用户中尚未关联的用户,例如用户乙和用户丁,则根据两个用户子集中每两个用户之间的关联,将用户中尚未关联的用户之间的评分向量进行关联,即将用户乙与用户丁的评分向量进行关联,形成用户乙与用户丁之间的关联特征向量。至此,获得用户中每两个用户之间的关联特征向量,之后根据用户中每两个用户之间的关联特征向量,获取用户中每两个用户之间的相似度。
具体的,一种根据用户的评分向量和网络对象的评分向量,计算用户中的任一用户与网络对象中任一网络对象之间的相似度的实施方式包括:对于用户中的任一用户来说,将该用户的评分向量与网络对象中任一网络对象的评分向量进行关联,以形成该用户与网络对象中任一网络对象之间的关联特征向量,根据该用户与网络对象中任一网络对象之间的关联特征向量,计算该用户与网络对象中任一网络对象之间的相似度。举例说明,假设网络系统一共包括网络对象A、B、C,则可以将用户甲的评分向量分别与网络对象A、B、C的评分向量进行关联,以形成用户甲与网络对象A、B、C之间的关联特征向量。具体的,将用户甲的评分向量与网络对象A的评分向量进行关联,形成用户甲与网络对象A之间的关联特征向量,将用户甲的评分向量与网络对象B的评分向量进行关联,形成用户甲与网络对象B之间的关联特征向量,以及将用户甲的评分向量与网络对象C的评分向量进行关联,形成用户甲与网络对象C之间的关联特征向量。
可选的,在形成任一用户与网络对象中任一网络对象之间的关联特征向量的过程中,可以根据上述每两个用户之间的关联特征向量,和/或上述每两个网络对象之间的关联特征向量,来形成任一用户与任一网络对象之间的关联特征向量。或者说是,在上述将任一用户与网络对象中任一网络对象进行关联时,可以通过上述每两个用户之间的关联来建立任一用户与任一网络对象之间的关联,和/或通过上述每两个网络对象之间的关联来建立任一用户与任一网络对象之间的关联。
另外,需要强调的是,上述任一网络对象都是指被用户评论过的网络对象,不包括绝对新的网络对象;相应的,上述任一用户是指对网络对象进行过评分(例如发表过评论)的用户,不包括绝对新的用户。
值得说明的是,若上述两个网络对象的评分向量未发生变化,或上述两个用户的评分向量未发生变化,或某用户与该用户评分过的某网络对象的评分向量未发生变化,则可以不用重新计算两者之间的相似度,但不限于此,也可以重新计算相似度。
在具体实现上,推荐装置可以采用JStorm Job流式框架、Flink流式框架或Spark流式框架,实现采集到实时用户行为数据之后的方法流程。下面以采用JStorm Job流式框架为例,详细说明本申请方法在实际应用中的实现。
图2为本申请另一实施例提供的推荐方法的系统架构示意图。如图2所示,该系统架构主要包括:采用MetaQ实现的实时采集部分、基于HBase实现的在线缓存部分以及采用JStorm实现的算法处理部分。
HBase是一个基于Nosql的基于列的高性能、可伸缩的分布式存储系统,是目前业界最为广泛使用的分布式实时在线存储架构。HBase以数据表进行存储,一张HBase表即HTable,每个HTable包含多行,每行包括一个行键(Row key)和存储对应值(value)的一个或多个列(Column)。每个HBase列存在于一个列族(Column Family)里,且由一个列标识(Column qualifier)进行标识,每个Column Family由一系列的列和相应的值组成,时间戳(TimeStamp)存储了每条记录的写入时间。HBase表的形式如下表1所示:
表1
Row key | Column qualifier | TimeStamp | value |
234251 | 43203245 | 132435326 | 1.0 |
2342513 | 12452342 | 110032426 | 3.0 |
435250 | 4478824 | 129934626 | 4.0 |
5260 | 59931161 | 130936677 | 2.0 |
… | … | … | … |
考虑到HBase的列式数据存储结构非常适合大规模实时稀疏数据的读写和在线存储,本实施例优选基于HBase实现在线缓存,但不限于此。
本实施例中,基于HBase的在线缓存部分包括用于存储用户的评分向量的缓存部分、用于存储网络对象的评分向量的缓存部分、用于存储关联特征向量的缓存部分以及用于存储相似度的缓存部分。
实时采集部分主要用于对网络系统中的用户行为进行实时采集并向JStorm Job提供实时用户行为数据。
JStorm Job正常启动后,JStorm的第一级Spout从MetaQ读取实时用户行为数据,根据读取的实时用户行为数据对之前网络系统中用户对网络对象的评分数据进行更新,并构建用户的评分向量。具体原理如下:
在本实施例中,用r表示用户对网络对象的评分数据,则用户k对第一个网络对象的评分数据表示为rk1,则假设在采集实时用户行为数据之前,由用户k评分过的网络对象的个数为n个,则该用户k对这n个网络对象的评分数据形成用户k的评分向量,记为Uk,Uk=<rk1,rk2,...,rkn>。这里是从用户角度,对评分数据进行组织。
考虑到,MetaQ实时采集的用户行为数据可能包括已有用户对已有网络对象产生的行为,新用户对已有网络对象产生的行为,已有用户对新网络对象产生的行为,新用户对新网络对象产生的行为中的一种或多种。其中,新用户对已有网络对象产生的行为,已有用户对新网络对象产生的行为,新用户对新网络对象产生的行为这三种行为的结果都是产生新的评分数据,于是这里将这三种情况合并为第一种情况进行简单描述,将已有用户对已有网络对象产生的行为作为第二种情况进行描述。
则对于上述第一种情况,第一级Spout根据读取的实时用户行为数据,对之前网络系统中用户对网络对象的评分数据进行更新,并构建用户的评分向量过程具体为:
第一级Spout根据实时用户行为数据,生成新的评分数据,记为r′kl,该r′kl表示用户k对网络对象l的评分数据,是新的评分数据;第一级Spout在之前网络系统中用户k的评分向量中,添加新的评分数据rk'l,以形成当前网络系统中用户k的评分向量,记为U′k=<rk1,rk2,...,r′kl,...,rkn>。
对于上述第二种情况,第一级Spout根据读取的实时用户行为数据,对之前网络系统中用户对网络对象的评分数据进行更新,并构建用户的评分向量过程具体为:
第一级Spout根据实时用户行为数据,生成中用户k对网络对象l的评分数据增量,记为Δrkl;第一级Spout根据Δrkl更新之前网络系统中用户k对网络对象l的评分数据rkl,更新后的评分数据为r′kl=rkl+Δrkl,以形成当前网络系统中用户k的评分向量,记为U′k=<rk1,rk2,...,r′kl,...,rkn>。
按照上述处理原理,第一级Spout会逐渐获得网络系统中各用户的评分向量,可以将其存储在预先创建的用于存储用户的评分向量的缓存部分,例如HTable中。一种HTable的形式如表2所示:
表2
在上述表2中,Row key是用户的标识(user_id),value是该用户对网络对象的评分数据、网络对象的标识(item_id)以及用户对网络对象产生用户行为的时间等信息。其中,为了保证高效的读写用户的评分向量,所有列存储在一个Column Family中。
第一级Spout构建以用户的标识作为键,主要以用户对网络对象的评分数据为值的键值对,为便于区分,将这里的键值对称为第一键值对,例如以用户k对新网络对象l的评分数据为例,形成的键值对为(uk,il,r′kl,tkl),其中,tkl表示用户k对网络对象l产生用户行为的时间,并以此作为JStorm的第一级Spout向第二级Bolt并行分发的数组(tuple)数据结构,且第一级Spout向第二级Bolt分发过程以用户的标识进行聚合,即对应于同一用户的标识的数据结构一起发送。
JStorm的第二级Bolt从第一级Spout分发的tuple数据结构中解析得到以用户k的标识为key的键值对(uk,il,r′kl,tkl),对其进行反转,构建以网络对象l的表示为key的第二键值对(il,uk,r′lk,tlk),这里的r′kl=r′lk,tkl=tlk。然后,第二级Bolt将key为同一网络对象的标识的第二键值对关联起来,形成网络对象的评分向量,以网络对象l为例,其评分向量为I′l=<rl1,rl2,…,r′lk,…,rlm>。
按照上述处理原理,第二级Bolt会逐渐获得网络系统中各网络对象的评分向量,可以将其存储在预先创建的用于存储网络对象的评分向量的缓存部分,例如HTable中。一种HTable的形式如表3所示:
表3
在上述表3中,Row key是网络对象的标识(item_id),value主要是用户的标识、该用户对网络对象的评分数据、以及用户对网络对象产生用户行为的时间等信息。其中,为了保证高效的读写网络对象的评分向量,所有列存储在一个Column Family中。
第二级Bolt在创建网络对象的评分向量的同时,将构建或更新出的以网络对象的标识为键的第二键值对,例如(il,uk,r′lk,tlk)作为JStorm的第二级Bolt向第三级的Bolt同时并行分发的tuple数据结构,且分发过程以网络对象的标识进行聚合(grouping)。
JStorm的第三级Bolt从第二级Bolt分发的tuple数据结构中解析得到以网络对象的标识为键的第二键值对,例如(il,uk,r′lk,tlk),将同一用户评分过的网络对象形成网络对象子集,将网络对象子集中的每两个网络对象的评分向量进行关联,并根据各网络对象子集中的网络对象之间的关联,将网络对象中尚未在网络对象子集中被关联的网络对象的评分向量进行关联,以形成网络对象中每两个网络对象之间的关联特征向量。在关联网络对象子集中的每两个网络对象的评分向量的过程中,优选的只需以发生变化的评分数据(例如新增的或被更新的)为基准,获取对该评分数据对应的网络对象评分过的用户所评分过的其它网络对象,计算所获取的网络对象与该评分数据对应的网络对象之间的关联特征向量即可。假设网络对象p与网络对象l被同一用户评分过,且网络对象l的评分数据是新的,则将网络对象p的评分向量与网络对象l的评分向量进行关联,以获得关联特征向量,记为<Ip,I′l>=<...,(ip,il,uk,r′lk,tlk),...>,p=1,...,n,n表示与网络对象l被同一用户评分过的网络对象的总数,其中,网络对象p的评分向量记为Ip=<rp1,rp2,...,rpm>,m表示对网络对象p评分过的用户总数。
按照上述处理原理,第三级Bolt会逐渐获得网络系统中任意两个网络对象之间的关联特征向量,可以将其存储在预先创建的用于存储关联特征向量的缓存部分,例如HTable中。一种HTable的形式如表4所示:
表4
在上述表4中,Row key是关联的两个网络对象的标识的组合(item_idp-item_idl),value是对这两个网络对象评分过的用户的标识、用户对这两个网络对象的评分数据以及用户对这两个网络对象产生用户行为的时间等信息。其中,为了保证高效的读写网络对象的评分向量,所有列存储在一个Column Family中。
第三级Bolt在创建网络对象之间的关联特征向量的同时,将构建出的网络对象之间的关联特征向量,例如<Ip,I′l>=<...,(ip,il,uk,r′lk,tlk),...>,作为JStorm的第三级Bolt向第四级Bolt同时并行分发的tuple数据结构,且分发过程以关联的两个网络对象的标识的组合进行grouping。
JStorm的第四级Bolt从第三级Bolt分发的tuple数据结构中解析得到以关联的两个网络对象的标识的组合为key的关联特征向量<Ip,I′l>=<...,(ip,il,uk,r′lk,tlk),...>,根据该关联特征向量,并发计算各组形成关联关系的两个网络对象之间的相似度。优选的,只有在形成关联关系的两个网络对象中至少有一个网络对象的评分数据发生变化的情况下,计算两者之间的相似度,若两个网络对象的评分数据均未发生过变化,则可以直接将之前的相似度作为当前相似度。假设网络对象p与网络对象l相关联,且网络对象l的评分数据是新的,则计算网络对象p与网络对象l之间的相似度。
例如,可以采用杰卡德(Jarcard)相似系数,计算网络对象p与网络对象l之间的相似度。首先,计算网络对象p的评分向量与网络对象l的评分向量之间的交集与并集。交集表示为:Inter(Ip,I′l)=Σu∈U(rup∩r′ul);并集表示为:Union(Ip,I′l)=Σu∈U(rup∪r′ul),U表示对这两个网络对象都评分过的用户集合,u表示用户集合中的用户。之后,根据交集与并集,获得Jacard相似度,表示为:
又例如,也可以采用余弦相似度,计算网络对象p与网络对象l之间的相似度,具体为:
按照上述处理原理,第四级Bolt会逐渐获得网络系统中任意两个网络对象之间的相似度,可以将其存储在预先创建的用于存储网络对象之间的相似度的缓存部分,例如HTable中。一种HTable的形式如表5所示:
表5
当需要对用户进行网络对象推荐时,第四级Bolt两个网络对象之间的相似度进行推荐。
具体的,根据人类的艾宾浩斯遗忘曲线规律可知,用户行为数据也只有在一定的时间段内的协同才是有效的,而且在不同的应用场景条件下,这个时间段不同,通常在电商购物情况下,时间段通常可以设为几天或者一个星期就能覆盖用户主要行为需求。在这段时间内,用户通常操作上百个网络对象,但其中只有最相似的k(top-k)个是需要考虑推荐的网络对象。
于是,可以设定网络对象之间需要满足的相似度条件,记为第一条件。当根据网络对象之间的相似度,向网络对象需求用户进行推荐时:可以根据网络对象之间的相似度,从当前网络系统中的网络对象中,获取与网络对象需求用户当前操作的网络对象之间的相似度满足第一条件的网络对象作为候选对象,从候选对象中向网络对象需求用户进行推荐。例如,可以将候选对象进行排序,选择排序最靠前的一个或多个网络对象向用户推荐。
例如,上述第一条件可以是近期一段时间内前top-k个网络对象之间的相似度的最小值,记为y,则给定的一阀值δ,对于n个网络对象,需要保证以下等式成立,即需要保证网络对象m和网络对象n之间的相似度小于y的概率为δ:
p(sim(im,in)<=y)=δ
也即对于不同的网络对象之间的相似度,通过给定的概率阀值,可以过滤掉不在top-k个最相似的网络对象,进而保证从top-k个最相似的网络对象中进行推荐,保证推荐结果精准度和有效性。
另外,考虑到网络对象的相似度是对称的,所以通过上述等式可以对相似的两个网络对象进行相互双向过滤。
如果δ足够小,则上述等式可变形为:sim(im,in)>y,意味着网络对象m和网络对象n之间的相似度应该大于y。
值得说明的是,上述给定的阀值δ,可以通过常用的概率分布,例如泊松分布、高斯分布来模拟,也可以借鉴实时流数据挖掘领域,依据Hoeffding边界作为实时消息流的过滤机制。例如,将sim(im,in)记为x,x是范围为0-R的随机变量(在本实施例中,R=1),x有w个相互独立的观测值,X为其均值,Hoeffding边界以1-δ的概率保证随机变量的真实观测值至多为X+ε,从而保证以下概率等式成立:
p(x<=y)=δ
同理,可以设定用户之间需要满足的相似度条件,记为第二条件。当根据用户之间的相似度,向网络对象需求用户进行推荐时:可以根据用户之间的相似度,从当前网络系统中的用户中,获取与网络对象需求用户之间的相似度满足第二条件的用户作为候选用户,从候选用户评分过的网络对象中向网络对象需求用户进行推荐。
同理,可以设定用户与网络对象之间需要满足的相似度条件,记为第三条件。当根据用户与网络对象之间的相似度,向网络对象需求用户进行推荐时:可以根据用户与网络对象之间的相似度,从当前网络系统中的网络对象中,获取与网络对象需求用户之间的相似度满足第三条件的网络对象作为候选对象,从候选对象中向网络对象需求用户进行推荐。例如,可以将候选对象进行排序,选择排序最靠前的一个或多个网络对象向用户推荐。
进一步,考虑到随着时间的推移,需要存储的数据量会很多,例如上述用户的评分向量、网络对象的评分向量、关联特征向量、相似度及推荐结果等。为了在满足推荐需求的同时,节约存储空间,便于存储管理,本实施例采用滑动窗口机制对推荐过程中需要存储的数据进行管理。为了适应滑动窗口机制,将用户的每一次行为数据的产生当做一个时间片段(session),一个session对应一个滑动窗口,产生的数据存储在一个滑动窗口对应的缓存空间内。滑动窗口阈值的大小需要根据最优时间段或session数内整体用户及网络对象数量、算法模型的数据计算时间和空间复杂度等多个因素进行优化。具体在工程实现时,可以采用如下一种退避覆盖的设计来实现滑动窗口机制:
假设,每条记录能够实时存储的最大session数为wmax,为每次实时存取达到最大值wmax时,需要回溯退避的阀值为wmin,回溯淘汰的session以供为wmax-wmin个,该淘汰标准可以是时间衰减相关的函数或者行为序列模型等,具体根据应用场景的推荐效果来决定。采用该机制,一方面可以保证数据的动态增长在可控的范围内,另一方面保证流式推荐的精准性。
综上可见,本申请将实时用户行为数据和离线数据进行结合,利用实时用户行为数据对离线数据进行补充,因此可以提高推荐的精准度,提高推荐效果,可以满足需要实时协同、快速响应的应用场景的需求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本申请又一实施例提供的推荐装置的结构示意图。如图3所示,该装置包括:采集模块31、更新模块32、相似处理模块33和推荐模块34。
采集模块31,用于对网络系统中的用户行为进行实时采集,以获得实时用户行为数据。
更新模块32,用于根据采集模块31获得的实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据。
相似处理模块33,用于根据更新模块32获得的当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度。
推荐模块34,用于根据相似处理模块33获得的用户之间、网络对象之间和/或用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐。
在一可选实施方式中,更新模块32在根据采集模块31获得的实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据时,具体用于执行以下至少一种操作:
若所述实时用户行为数据包括新用户对新网络对象的实时行为数据,则根据所述新用户对新网络对象的实时行为数据,生成所述新用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对新增网络对象的评分数据;
若所述实时用户行为数据包括新用户对已有网络对象的实时行为数据,则根据所述新用户对已有网络对象的实时行为数据,生成所述新用户对已有网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对已有网络对象的评分数据;
若所述实时用户行为数据包括已有用户对新网络对象的实时行为数据,则根据所述已有用户对新网络对象的实时行为数据,生成所述已有用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述已有用户对新网络对象的评分数据;
若所述实时用户行为数据包括已有用户对已有网络对象的实时行为数据,则根据所述已有用户对已有网络对象的实时行为数据,生成所述已有用户对已有网络对象的评分数据增量,根据所述评分数据增量更新当前之前网络系统中所述已有用户对已有网络对象的评分数据。
在一可选实施方式中,相似处理模块33在根据更新模块32获得的当前网络系统中用户对网络对象的评分数据,获取用户之间、网络对象之间和/或用户与网络对象之间的相似度时,具体用于:
从用户和/或网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和/或网络对象的评分向量;
根据所述用户的评分向量和/或网络对象的评分向量,计算所述用户之间、网络对象之间和/或用户与网络对象之间的相似度。
进一步,相似处理模块33在从用户和网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和网络对象的评分向量时,具体用于:
对当前网络系统中用户对网络对象的评分数据进行数据结构重组,以形成多个第一键值对,每个第一键值对中的键为用户的标识,值为网络对象的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第一键值对进行关联,以形成所述键所标识的用户的评分向量;
对所述第一键值对进行反转处理,形成多个第二键值对,每个第二键值对的键为网络对象的标识,值为用户的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第二键值对进行关联,以形成所述键所标识的网络对象的评分向量。
进一步,相似处理模块33在根据所述用户的评分向量和/或网络对象的评分向量,计算所述用户之间、网络对象之间和/或用户与网络对象之间的相似度时,具体用于执行以下至少一种操作:
根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度;
根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度;
根据所述用户的评分向量和所述网络对象的评分向量,计算用户中的任一用户与网络对象中任一网络对象之间的相似度。
进一步,相似处理模块33在根据网络对象的评分向量,计算网络对象中每两个网络对象之间的相似度时,具体用于:
获取同一用户评分过的网络对象以形成网络对象子集;将网络对象子集中的每两个网络对象的评分向量进行关联,并根据网络对象子集中每两个网络对象之间的关联,将网络对象中尚未关联的每两个网络对象之间的评分向量进行关联,以形成网络对象中每两个网络对象之间的关联特征向量,根据网络对象中每两个网络对象之间的关联特征向量,计算每两个网络对象之间的相似度。
举例说明,假设用户甲对网络对象A、B、C进行过评分,用户乙对网络对象B、C、D进行过评分,则网络对象A、B、C形成一个网络对象子集,相应的,网络对象B、C、D形成一个网络对象子集。对于每个网络对象子集,将网络对象子集中的每两个网络对象的评分向量进行关联,以形成每两个网络对象之间的关联特征向量。例如,对于包括网络对象A、B、C的网络对象子集,可以将网络对象A与网络对象B的评分向量进行关联,形成网络对象A与网络对象B之间的关联特征向量,将网络对象A与网络对象C的评分向量进行关联,形成网络对象A与网络对象C之间的关联特征向量,以及将网络对象B与网络对象C的评分向量进行关联,形成网络对象B与网络对象C之间的关联特征向量。对于包括网络对象B、C、D的网络对象子集,可以将网络对象B与网络对象C的评分向量进行关联,形成网络对象B与网络对象C之间的关联特征向量,将网络对象B与网络对象D的评分向量进行关联,形成网络对象B与网络对象D之间的关联特征向量,以及将网络对象C与网络对象D的评分向量进行关联,形成网络对象C与网络对象D之间的关联特征向量。另外,根据两个网络对象子集中每两个网络对象之间的关联,确定网络对象中尚未关联的网络对象,例如网络对象A和网络对象D,则根据两个网络对象子集中每两个网络对象之间的关联,将网络对象中尚未关联的网络对象之间的评分向量进行关联,即将网络对象A和网络对象D的评分向量进行关联,形成网络对象A与网络对象D之间的关联特征向量。至此,获得网络对象中每两个网络对象之间的关联特征向量,之后根据网络对象中每两个网络对象之间的关联特征向量,获取网络对象中每两个网络对象之间的相似度。
进一步,相似处理模块33在根据用户的评分向量,计算用户中每两个用户之间的相似度时,具体用于:
获取对同一网络对象评分过的用户以形成用户子集;将用户子集中的每两个用户的评分向量进行关联,并根据用户子集中的每两个用户之间的关联,将用户中尚未关联的每两个用户之间的评分向量进行关联,以形成用户中每两个用户之间的关联特征向量,根据用户中每两个用户之间的关联特征向量,计算用户中每两个用户之间的相似度。
举例说明,假设用户甲、乙、丙分别对网络对象A进行过评分,用户甲、丙、丁分别对网络对象B进行过评分,则可以将用户甲、乙、丙形成一个用户子集,将用户甲、丙、丁形成一个用户子集。对于每个用户子集,将该用户子集中的每两个用户的评分向量进行关联,以形成该用户子集中每两个用户之间的关联特征向量。具体的,对于包括用户甲、乙、丙的用户子集,将用户甲与用户乙的评分向量进行关联,形成用户甲与用户乙之间的关联特征向量,将用户甲与用户丙的评分向量进行关联,形成用户甲与用户丙之间的关联特征向量,以及将用户乙与用户丙的评分向量进行关联,形成用户乙与用户丙之间的关联特征向量。对于包括用户甲、丙、丁的用户子集,将用户甲与用户丙的评分向量进行关联,形成用户甲与用户丙之间的关联特征向量,将用户甲与用户丁的评分向量进行关联,形成用户甲与用户丁之间的关联特征向量,以及将用户丙与用户丁的评分向量进行关联,形成用户丙与用户丁之间的关联特征向量。另外,根据两个用户子集中每两个用户之间的关联,确定用户中尚未关联的用户,例如用户乙和用户丁,则根据两个用户子集中每两个用户之间的关联,将用户中尚未关联的用户之间的评分向量进行关联,即将用户乙与用户丁的评分向量进行关联,形成用户乙与用户丁之间的关联特征向量。至此,获得用户中每两个用户之间的关联特征向量,之后根据用户中每两个用户之间的关联特征向量,获取用户中每两个用户之间的相似度。
进一步,相似处理模块33在根据用户的评分向量和网络对象的评分向量,计算用户中的任一用户与网络对象中任一网络对象之间的相似度时,具体用于:
对于用户中的任一用户,将该用户的评分向量与网络对象中任一网络对象的评分向量进行关联,以形成该用户与网络对象中任一网络对象之间的关联特征向量,根据该用户与网络对象中任一网络对象之间的关联特征向量,获取该用户与网络对象中任一网络对象之间的相似度。举例说明,假设网络系统一共包括网络对象A、B、C,则可以将用户甲的评分向量分别与网络对象A、B、C的评分向量进行关联,以形成用户甲与网络对象A、B、C之间的关联特征向量。具体的,将用户甲的评分向量与网络对象A的评分向量进行关联,形成用户甲与网络对象A之间的关联特征向量,将用户甲的评分向量与网络对象B的评分向量进行关联,形成用户甲与网络对象B之间的关联特征向量,以及将用户甲的评分向量与网络对象C的评分向量进行关联,形成用户甲与网络对象C之间的关联特征向量。
在一可选实施方式中,推荐模块34具体用于执行以下至少一种操作:
根据所述网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户当前操作的网络对象之间的相似度满足预设第一条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐;
根据所述用户之间的相似度,从当前网络系统中的用户中,获取与所述网络对象需求用户之间的相似度满足预设第二条件的用户作为候选用户;从所述候选用户评分过的网络对象中向所述网络对象需求用户进行推荐;
根据所述用户与网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户之间的相似度满足预设第三条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐。
可选的,上述网络对象可以是商品对象以及服务对象中的至少一种,但不限于此。所述服务对象可以是洗车服务、养护服务、按摩服务、清洁服务、厨师上门服务、家政服务、家教服务、娱乐服务、吃喝服务、旅行服务、酒店服务、租车服务等等。相应的,用户行为包括:浏览、收藏、加购物车、购买支付以及评论中的至少一种。
在具体部署实现上,本实施例的推荐装置中各模块可以分布式部署,一种经典的部署实现方案如图2所示。其中,Metaq可作为采集模块31实现,JStorm Job拓扑可实现更新模块32、相似处理模块33和推荐模块34的功能。本实施例提供的推荐装置,可以将实时用户行为数据和离线数据进行结合,利用实时用户行为数据对离线数据进行补充,因此可以提高推荐的精准度,提高推荐效果,可以满足需要实时协同、快速响应的应用场景的需求。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种推荐方法,其特征在于,包括:
对网络系统中的用户行为进行实时采集,以获得实时用户行为数据;
根据所述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据;
从用户和网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和网络对象的评分向量;
根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度;
根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度;
根据所述用户的评分向量和所述网络对象的评分向量,计算所述用户中的任一用户与所述网络对象中任一网络对象之间的相似度;
根据所述用户之间、网络对象之间和用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐;
其中,所述根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度,包括:
获取同一用户评分过的网络对象以形成网络对象子集;
将所述网络对象子集中的每两个网络对象的评分向量进行关联,并根据所述网络对象子集中每两个网络对象之间的关联,将所述网络对象中尚未关联的每两个网络对象之间的评分向量进行关联,以形成所述网络对象中每两个网络对象之间的关联特征向量;
根据所述网络对象中每两个网络对象之间的关联特征向量,获取所述网络对象中每两个网络对象之间的相似度。
2.根据权利要求1所述的方法,其特征在于,所述根据所述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据,包括执行以下至少一种操作:
若所述实时用户行为数据包括新用户对新网络对象的实时行为数据,则根据所述新用户对新网络对象的实时行为数据,生成所述新用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对新增网络对象的评分数据;
若所述实时用户行为数据包括新用户对已有网络对象的实时行为数据,则根据所述新用户对已有网络对象的实时行为数据,生成所述新用户对已有网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对已有网络对象的评分数据;
若所述实时用户行为数据包括已有用户对新网络对象的实时行为数据,则根据所述已有用户对新网络对象的实时行为数据,生成所述已有用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述已有用户对新网络对象的评分数据;
若所述实时用户行为数据包括已有用户对已有网络对象的实时行为数据,则根据所述已有用户对已有网络对象的实时行为数据,生成所述已有用户对已有网络对象的评分数据增量,根据所述评分数据增量更新当前之前网络系统中所述已有用户对已有网络对象的评分数据。
3.根据权利要求1所述的方法,其特征在于,所述从用户和网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和网络对象的评分向量,包括:
对当前网络系统中用户对网络对象的评分数据进行数据结构重组,以形成多个第一键值对,每个第一键值对中的键为用户的标识,值为网络对象的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第一键值对进行关联,以形成所述键所标识的用户的评分向量;
对所述第一键值对进行反转处理,形成多个第二键值对,每个第二键值对的键为网络对象的标识,值为用户的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第二键值对进行关联,以形成所述键所标识的网络对象的评分向量。
4.根据权利要求1所述的方法,其特征在于,所述根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度,包括:
获取对同一网络对象评分过的用户以形成用户子集;
将所述用户子集中的每两个用户的评分向量进行关联,并根据所述用户子集中的每两个用户之间的关联,将所述用户中尚未关联的每两个用户之间的评分向量进行关联,以形成所述用户中每两个用户之间的关联特征向量;
根据所述用户中每两个用户之间的关联特征向量,获取所述用户中每两个用户之间的相似度;
所述根据所述用户的评分向量和所述网络对象的评分向量,计算所述用户中的任一用户与所述网络对象中任一网络对象之间的相似度,包括:
对于所述用户中的任一用户,将所述用户的评分向量与所述网络对象中任一网络对象的评分向量进行关联,以形成所述用户与所述网络对象中任一网络对象之间的关联特征向量,根据所述用户与所述网络对象中任一网络对象之间的关联特征向量,获取所述用户与所述网络对象中任一网络对象之间的相似度。
5.根据权利要求1所述的方法,其特征在于,所述根据所述用户之间、网络对象之间和用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐,包括:
根据所述网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户当前操作的网络对象之间的相似度满足预设第一条件的网络对象作为候选对象;
根据所述用户之间的相似度,从当前网络系统中的用户中,获取与所述网络对象需求用户之间的相似度满足预设第二条件的用户作为候选用户;
根据所述用户与网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户之间的相似度满足预设第三条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述网络对象为商品对象以及服务对象中的至少一种;
所述用户行为包括:浏览、收藏、加购物车、购买支付以及评论中的至少一种。
7.一种推荐装置,其特征在于,包括:
采集模块,用于对网络系统中的用户行为进行实时采集,以获得实时用户行为数据;
更新模块,用于根据所述实时用户行为数据,对当前之前网络系统中用户对网络对象的评分数据进行更新,以获得当前网络系统中用户对网络对象的评分数据;
相似处理模块,用于从用户和网络对象的维度,对当前网络系统中用户对网络对象的评分数据进行组织,以形成用户的评分向量和网络对象的评分向量;根据所述网络对象的评分向量,计算所述网络对象中每两个网络对象之间的相似度;根据所述用户的评分向量,计算所述用户中每两个用户之间的相似度;根据所述用户的评分向量和所述网络对象的评分向量,计算所述用户中的任一用户与所述网络对象中任一网络对象之间的相似度;
推荐模块,用于根据所述用户之间、网络对象之间和用户与网络对象之间的相似度,向网络对象需求用户进行网络对象的推荐;
所述相似处理模块具体用于:获取同一用户评分过的网络对象以形成网络对象子集;将所述网络对象子集中的每两个网络对象的评分向量进行关联,并根据所述网络对象子集中每两个网络对象之间的关联,将所述网络对象中尚未关联的每两个网络对象之间的评分向量进行关联,以形成所述网络对象中每两个网络对象之间的关联特征向量;根据所述网络对象中每两个网络对象之间的关联特征向量,获取所述网络对象中每两个网络对象之间的相似度。
8.根据权利要求7所述的装置,其特征在于,所述更新模块具体用于执行以下至少一种操作:
若所述实时用户行为数据包括新用户对新网络对象的实时行为数据,则根据所述新用户对新网络对象的实时行为数据,生成所述新用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对新增网络对象的评分数据;
若所述实时用户行为数据包括新用户对已有网络对象的实时行为数据,则根据所述新用户对已有网络对象的实时行为数据,生成所述新用户对已有网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述新用户对已有网络对象的评分数据;
若所述实时用户行为数据包括已有用户对新网络对象的实时行为数据,则根据所述已有用户对新网络对象的实时行为数据,生成所述已有用户对新网络对象的评分数据,并在当前之前网络系统中用户对网络对象的评分数据中,添加所述已有用户对新网络对象的评分数据;
若所述实时用户行为数据包括已有用户对已有网络对象的实时行为数据,则根据所述已有用户对已有网络对象的实时行为数据,生成所述已有用户对已有网络对象的评分数据增量,根据所述评分数据增量更新当前之前网络系统中所述已有用户对已有网络对象的评分数据。
9.根据权利要求7所述的装置,其特征在于,所述相似处理模块具体用于:
对当前网络系统中用户对网络对象的评分数据进行数据结构重组,以形成多个第一键值对,每个第一键值对中的键为用户的标识,值为网络对象的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第一键值对进行关联,以形成所述键所标识的用户的评分向量;
对所述第一键值对进行反转处理,形成多个第二键值对,每个第二键值对的键为网络对象的标识,值为用户的标识以及所述用户的标识所标识的用户对所述网络对象的标识所标识的网络对象的评分数据;
将键相同的所述第二键值对进行关联,以形成所述键所标识的网络对象的评分向量。
10.根据权利要求7所述的装置,其特征在于,
所述相似处理模块具体用于:
获取对同一网络对象评分过的用户以形成用户子集;
将所述用户子集中的每两个用户的评分向量进行关联,并根据所述用户子集中的每两个用户之间的关联,将所述用户中尚未关联的每两个用户之间的评分向量进行关联,以形成所述用户中每两个用户之间的关联特征向量;
根据所述用户中每两个用户之间的关联特征向量,获取所述用户中每两个用户之间的相似度;
所述相似处理模块具体用于:
对于所述用户中的任一用户,将所述用户的评分向量与所述网络对象中任一网络对象的评分向量进行关联,以形成所述用户与所述网络对象中任一网络对象之间的关联特征向量,根据所述用户与所述网络对象中任一网络对象之间的关联特征向量,获取所述用户与所述网络对象中任一网络对象之间的相似度。
11.根据权利要求7所述的装置,其特征在于,所述推荐模块具体用于执行:
根据所述网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户当前操作的网络对象之间的相似度满足预设第一条件的网络对象作为候选对象;
根据所述用户之间的相似度,从当前网络系统中的用户中,获取与所述网络对象需求用户之间的相似度满足预设第二条件的用户作为候选用户;
根据所述用户与网络对象之间的相似度,从当前网络系统中的网络对象中,获取与所述网络对象需求用户之间的相似度满足预设第三条件的网络对象作为候选对象;从所述候选对象中向所述网络对象需求用户进行推荐。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述网络对象为商品对象以及服务对象中的至少一种;
所述用户行为包括:浏览、收藏、加购物车、购买支付以及评论中的至少一种。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510648588.6A CN106570008B (zh) | 2015-10-09 | 2015-10-09 | 推荐方法及装置 |
TW105118401A TW201717071A (zh) | 2015-10-09 | 2016-06-13 | 推薦方法及裝置 |
US15/272,365 US10489471B2 (en) | 2015-10-09 | 2016-09-21 | Recommendation method and device |
PCT/US2016/052985 WO2017062179A1 (en) | 2015-10-09 | 2016-09-22 | Recommendation method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510648588.6A CN106570008B (zh) | 2015-10-09 | 2015-10-09 | 推荐方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106570008A CN106570008A (zh) | 2017-04-19 |
CN106570008B true CN106570008B (zh) | 2020-03-27 |
Family
ID=58499536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510648588.6A Active CN106570008B (zh) | 2015-10-09 | 2015-10-09 | 推荐方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10489471B2 (zh) |
CN (1) | CN106570008B (zh) |
TW (1) | TW201717071A (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9646003B2 (en) * | 2013-11-20 | 2017-05-09 | Wolfram Research, Inc. | Cloud storage methods and systems |
CN108090093B (zh) * | 2016-11-22 | 2021-02-09 | 华为技术有限公司 | 生成推荐结果的方法和装置 |
CN107329998A (zh) * | 2017-06-09 | 2017-11-07 | 广州虎牙信息科技有限公司 | 用户增量类数据获取方法、装置及设备 |
US10601847B2 (en) * | 2017-06-22 | 2020-03-24 | Cisco Technology, Inc. | Detecting user behavior activities of interest in a network |
CN109202921B (zh) * | 2017-07-03 | 2020-10-20 | 北京光年无限科技有限公司 | 用于机器人的基于遗忘机制的人机交互方法及装置 |
CN109565452A (zh) | 2017-07-25 | 2019-04-02 | 北京嘀嘀无限科技发展有限公司 | 用于确定最优策略的系统和方法 |
CN109302301A (zh) * | 2017-07-25 | 2019-02-01 | 北京嘀嘀无限科技发展有限公司 | 一种业务策略的评估方法及装置 |
US10867128B2 (en) * | 2017-09-12 | 2020-12-15 | Microsoft Technology Licensing, Llc | Intelligently updating a collaboration site or template |
US10742500B2 (en) | 2017-09-20 | 2020-08-11 | Microsoft Technology Licensing, Llc | Iteratively updating a collaboration site or template |
CN107818334A (zh) * | 2017-09-29 | 2018-03-20 | 北京邮电大学 | 一种移动互联网用户访问模式表征和聚类方法 |
CN107705190A (zh) * | 2017-10-25 | 2018-02-16 | 深圳市国电科技通信有限公司 | 一种车辆租赁信息推荐方法 |
US11593346B2 (en) * | 2017-11-10 | 2023-02-28 | Pravado Llc | Crowdsourced validation of electronic content |
CN108810089B (zh) * | 2018-05-04 | 2021-07-30 | 微梦创科网络科技(中国)有限公司 | 一种信息推送方法、装置及存储介质 |
CN110580303B (zh) * | 2018-05-21 | 2023-09-12 | 谷林娜 | 一种穴位按摩视频的生成方法及装置 |
CN108711075A (zh) * | 2018-05-22 | 2018-10-26 | 阿里巴巴集团控股有限公司 | 一种产品推荐方法和装置 |
US11361349B1 (en) * | 2018-05-29 | 2022-06-14 | State Farm Mutual Automobile Insurance Company | Systems and methods for generating efficient iterative recommendation structures |
CN109034941B (zh) * | 2018-06-13 | 2023-03-31 | 平安科技(深圳)有限公司 | 产品推荐方法、装置、计算机设备和存储介质 |
CN109191240B (zh) * | 2018-08-14 | 2021-06-08 | 北京九狐时代智能科技有限公司 | 一种进行商品推荐的方法和装置 |
CN109241410B (zh) * | 2018-08-15 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种文章推荐方法和装置 |
CN110839167B (zh) * | 2018-08-16 | 2021-05-28 | Tcl科技集团股份有限公司 | 一种视频推荐方法、装置及终端设备 |
US10958553B2 (en) * | 2018-10-31 | 2021-03-23 | Citrix Systems, Inc. | Network configuration system |
CN109325146B (zh) * | 2018-11-12 | 2024-05-07 | 平安科技(深圳)有限公司 | 一种视频推荐方法、装置、存储介质和服务器 |
CN111262895B (zh) * | 2018-11-30 | 2022-11-29 | 阿里巴巴华北技术有限公司 | 信息处理方法、系统及设备 |
US10996944B2 (en) | 2019-05-06 | 2021-05-04 | Red Hat, Inc. | Automated software selection using matrix factorization |
CN110807051B (zh) * | 2019-10-31 | 2021-03-26 | 太原科技大学 | 一种基于云平台的上下文感知实时推荐服务的方法 |
CN110956530A (zh) * | 2019-11-26 | 2020-04-03 | 上海风秩科技有限公司 | 推荐方法、装置、电子设备及计算机可读存储介质 |
CN111292164B (zh) * | 2020-01-21 | 2023-08-25 | 上海风秩科技有限公司 | 一种商品推荐方法、装置、电子设备及可读存储介质 |
CN113268653A (zh) * | 2020-02-17 | 2021-08-17 | 斑马智行网络(香港)有限公司 | 信息处理方法、装置、计算设备及车机设备 |
CN112000636A (zh) * | 2020-08-31 | 2020-11-27 | 民生科技有限责任公司 | 基于Flink流式处理的用户行为统计分析方法 |
CN112114968B (zh) * | 2020-09-18 | 2024-07-12 | 北京达佳互联信息技术有限公司 | 推荐方法、装置、电子设备及存储介质 |
CN112770181A (zh) * | 2021-01-12 | 2021-05-07 | 贵州省广播电视信息网络股份有限公司 | 一种针对家庭组的推荐内容快速验证系统及其方法 |
CN112712218B (zh) * | 2021-02-18 | 2022-03-11 | 南昌航空大学 | 一种基于艾宾浩斯遗忘曲线的线上线下教学系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793465A (zh) * | 2013-12-20 | 2014-05-14 | 武汉理工大学 | 基于云计算的海量用户行为实时分析方法及系统 |
CN104063481A (zh) * | 2014-07-02 | 2014-09-24 | 山东大学 | 一种基于用户实时兴趣向量的电影个性化推荐方法 |
CN104281956A (zh) * | 2014-10-27 | 2015-01-14 | 南京信息工程大学 | 基于时间信息的适应用户兴趣变化的动态推荐方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317722B1 (en) | 1998-09-18 | 2001-11-13 | Amazon.Com, Inc. | Use of electronic shopping carts to generate personal recommendations |
US6266649B1 (en) | 1998-09-18 | 2001-07-24 | Amazon.Com, Inc. | Collaborative recommendations using item-to-item similarity mappings |
WO2009021198A1 (en) | 2007-08-08 | 2009-02-12 | Baynote, Inc. | Method and apparatus for context-based content recommendation |
US8060463B1 (en) | 2005-03-30 | 2011-11-15 | Amazon Technologies, Inc. | Mining of user event data to identify users with common interests |
US8019777B2 (en) | 2006-03-16 | 2011-09-13 | Nexify, Inc. | Digital content personalization method and system |
US8442973B2 (en) | 2006-05-02 | 2013-05-14 | Surf Canyon, Inc. | Real time implicit user modeling for personalized search |
US7711735B2 (en) | 2007-05-15 | 2010-05-04 | Microsoft Corporation | User segment suggestion for online advertising |
US7921071B2 (en) | 2007-11-16 | 2011-04-05 | Amazon Technologies, Inc. | Processes for improving the utility of personalized recommendations generated by a recommendation engine |
US9195752B2 (en) | 2007-12-20 | 2015-11-24 | Yahoo! Inc. | Recommendation system using social behavior analysis and vocabulary taxonomies |
US8073794B2 (en) | 2007-12-20 | 2011-12-06 | Yahoo! Inc. | Social behavior analysis and inferring social networks for a recommendation system |
US8832753B2 (en) | 2008-01-16 | 2014-09-09 | Apple Inc. | Filtering and tailoring multimedia content based on observed user behavior |
US9183281B2 (en) | 2008-04-18 | 2015-11-10 | International Business Machines Corporation | Context-based document unit recommendation for sensemaking tasks |
CA2634020A1 (en) * | 2008-05-30 | 2009-11-30 | Biao Wang | System and method for multi-level online learning |
WO2010076780A1 (en) | 2009-01-01 | 2010-07-08 | Orca Interactive Ltd. | Adaptive blending of recommendation engines |
US8301624B2 (en) | 2009-03-31 | 2012-10-30 | Yahoo! Inc. | Determining user preference of items based on user ratings and user features |
US8301692B1 (en) | 2009-06-16 | 2012-10-30 | Amazon Technologies, Inc. | Person to person similarities based on media experiences |
US20110087679A1 (en) | 2009-10-13 | 2011-04-14 | Albert Rosato | System and method for cohort based content filtering and display |
US8756224B2 (en) | 2010-06-16 | 2014-06-17 | Rallyverse, Inc. | Methods, systems, and media for content ranking using real-time data |
CN102956009B (zh) | 2011-08-16 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种基于用户行为的电子商务信息推荐方法与装置 |
US20130054433A1 (en) | 2011-08-25 | 2013-02-28 | T-Mobile Usa, Inc. | Multi-Factor Identity Fingerprinting with User Behavior |
US8478768B1 (en) | 2011-12-08 | 2013-07-02 | Palo Alto Research Center Incorporated | Privacy-preserving collaborative filtering |
US20130179252A1 (en) | 2012-01-11 | 2013-07-11 | Yahoo! Inc. | Method or system for content recommendations |
US9710480B2 (en) * | 2012-03-09 | 2017-07-18 | Nokia Corporation | Method and apparatus for performing an incremental update of a recommendation model |
TWI475412B (zh) | 2012-04-02 | 2015-03-01 | Ind Tech Res Inst | 數位內容次序調整方法和數位內容匯流器 |
US20130317910A1 (en) | 2012-05-23 | 2013-11-28 | Vufind, Inc. | Systems and Methods for Contextual Recommendations and Predicting User Intent |
US20140143012A1 (en) | 2012-11-21 | 2014-05-22 | Insightera Ltd. | Method and system for predictive marketing campigns based on users online behavior and profile |
CN103425791B (zh) * | 2013-08-28 | 2016-08-31 | 中国科学院深圳先进技术研究院 | 一种基于蚁群协同过滤算法的物品推荐方法和装置 |
-
2015
- 2015-10-09 CN CN201510648588.6A patent/CN106570008B/zh active Active
-
2016
- 2016-06-13 TW TW105118401A patent/TW201717071A/zh unknown
- 2016-09-21 US US15/272,365 patent/US10489471B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793465A (zh) * | 2013-12-20 | 2014-05-14 | 武汉理工大学 | 基于云计算的海量用户行为实时分析方法及系统 |
CN104063481A (zh) * | 2014-07-02 | 2014-09-24 | 山东大学 | 一种基于用户实时兴趣向量的电影个性化推荐方法 |
CN104281956A (zh) * | 2014-10-27 | 2015-01-14 | 南京信息工程大学 | 基于时间信息的适应用户兴趣变化的动态推荐方法 |
Non-Patent Citations (1)
Title |
---|
基于用户实时反馈的协同过滤算法;傅鹤岗等;《计算机应用》;20110731;第31卷(第7期);第1744-1747页 * |
Also Published As
Publication number | Publication date |
---|---|
US20170103133A1 (en) | 2017-04-13 |
TW201717071A (zh) | 2017-05-16 |
US10489471B2 (en) | 2019-11-26 |
CN106570008A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106570008B (zh) | 推荐方法及装置 | |
US10817531B2 (en) | Targeted multi-dimension data extraction for real-time analysis | |
CN109299994B (zh) | 推荐方法、装置、设备及可读存储介质 | |
US10298705B2 (en) | Recommendation method and device | |
CN105320706B (zh) | 搜索结果的处理方法和装置 | |
KR102233805B1 (ko) | 미인지된 및 새로운 유저들에 대한 향상된 유저 경험 | |
US10685065B2 (en) | Method and system for recommending content to a user | |
CN105095267B (zh) | 一种用于用户参与项目的推荐方法及装置 | |
US20170098165A1 (en) | Method and Apparatus for Establishing and Using User Recommendation Model in Social Network | |
CN108805598B (zh) | 相似度信息确定方法、服务器及计算机可读存储介质 | |
CN110162693A (zh) | 一种信息推荐的方法以及服务器 | |
KR20160057475A (ko) | 소셜 데이터를 능동적으로 획득하기 위한 시스템 및 방법 | |
CN103279515B (zh) | 基于微群的推荐方法及微群推荐装置 | |
CN105654341A (zh) | 一种基于云服务的航空产品推荐系统及方法 | |
CA2619076A1 (en) | Scalable user clustering based on set similarity | |
CN102789462A (zh) | 一种项目推荐方法及系统 | |
US20150310529A1 (en) | Web-behavior-augmented recommendations | |
CN112100221A (zh) | 一种资讯推荐方法、装置、推荐服务器及存储介质 | |
Au Yeung et al. | Capturing implicit user influence in online social sharing | |
US8683521B1 (en) | Feature-based video suggestions | |
Shin et al. | Recommending Tumblr Blogs to Follow with Inductive Matrix Completion. | |
Selsaas et al. | AFFM: Auto feature engineering in field-aware factorization machines for predictive analytics | |
US20140101064A1 (en) | Systems and Methods for Automated Reprogramming of Displayed Content | |
Lee et al. | Discovering hidden topical hubs and authorities in online social networks | |
Sansonetti et al. | Dynamic social recommendation |
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 |