CN112818195A - 数据获取方法、装置、系统及计算机存储介质 - Google Patents
数据获取方法、装置、系统及计算机存储介质 Download PDFInfo
- Publication number
- CN112818195A CN112818195A CN201911126036.3A CN201911126036A CN112818195A CN 112818195 A CN112818195 A CN 112818195A CN 201911126036 A CN201911126036 A CN 201911126036A CN 112818195 A CN112818195 A CN 112818195A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- index
- data acquisition
- identifier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 129
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims abstract description 68
- 238000001914 filtration Methods 0.000 claims description 121
- 238000004891 communication Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 52
- 230000006870 function Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 20
- 238000011161 development Methods 0.000 description 18
- 238000012423 maintenance Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012163 sequencing technique Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000004936 Bromus mango Nutrition 0.000 description 1
- 101800004637 Communis Proteins 0.000 description 1
- 240000007228 Mangifera indica Species 0.000 description 1
- 235000014826 Mangifera indica Nutrition 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 235000009184 Spondias indica Nutrition 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 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/951—Indexing; Web crawling techniques
-
- 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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据获取方法及装置。该装置包括至少一个数据获取模块;不同数据获取模块对应不同的数据获取算法。该装置还包括:确定模块,用于确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取模块;目标数据获取模块对应至少一个目标用户特征标识和至少一个目标索引标识;用户特征管理模块,用于获取至少一个目标用户特征标识各自对应的目标第一用户特征;索引管理模块,用于根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集。本发明实施例解耦了传统数据获取架构中的多个处理逻辑,设计符合开闭原则,代码复用率高,且易于扩展。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据获取方法、装置、系统及计算机存储介质。
背景技术
随着信息技术的发展,人们逐渐走入了信息过载的时代。为了解决用户想从大量的信息中找到自己感兴趣的信息,信息生产者想让自己生产的信息得到关注的问题,推荐系统应运而生。推荐系统需发掘用户的行为,找到用户的个性化需求,从而将用户需要的信息准确地推荐给用户。
推荐系统涉及到两个关键问题,即召回和排序。其中,召回是指从原始数据(一般理解为全量信息集合)中触发尽可能多的正确结果(即召回数据),并将正确结果(即召回数据)返回给用于排序的工作线程。排序则是对召回得到的所有召回数据进行打分排序,从而选出得分最高的多个结果推荐给用户。业界的大部分推荐系统类似,召回层处于底层,它的功能是从千万级内容池中召回几千个数据结果,然后将数据结果返回其他排序层进行挑选,相当于粗排序。
传统的数据获取架构中,每个数据获取模块需完成用户特征处理、数据获取算法的确定、构建和访问索引、过滤规则的构建和过滤的实现、打分排序等多个处理逻辑。每个数据获取模块的逻辑复杂且异构,无法统一维护。同时,数据获取模块的实现依赖于具体的用户特征、索引和过滤规则等输入数据。输入数据改变,需对应修改数据获取模块的处理逻辑或新增数据获取模块。设计违反开闭原则、修改易导致涟漪效应,代码复用率低,新增数据获取模块开发周期长,效率低,不可灵活扩展。
发明内容
本发明实施例公开了一种数据获取方法、装置、系统及计算机存储介质,解耦了传统数据获取过程中实现的多个处理逻辑,设计符合开闭原则,代码复用率高。同时实现了数据获取过程中用户特征、索引和过滤规则的个性化配置,产品需求灵活可变,易于扩展。
第一方面,本发明实施例提供了一种数据获取装置,包括确定模块、至少一个数据获取模块、用户特征管理模块和索引管理模块;不同数据获取模块对应不同的数据获取算法,数据获取模块对应至少一个用户特征标识和至少一个索引标识,用户特征标识和索引标识为根据数据获取模块对应的数据获取算法确定的标识。其中:
确定模块,用于确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取模块;其中,至少两个业务类型中每个业务类型对应至少一个数据获取模块,目标数据获取模块对应至少一个目标用户特征标识和至少一个目标索引标识。
用户特征管理模块,用于获取至少一个目标用户特征标识各自对应的目标第一用户特征;其中,用户特征管理模块包括至少一个第一用户特征,第一用户特征包括根据至少一个用户特征处理得到的用于访问索引的特征,每个第一用户特征有唯一对应的用户特征标识,至少一个第一用户特征包括目标第一用户特征。
索引管理模块,用于根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集;其中,每个索引标识对应至少一个索引,第一数据集包括多个第一数据。
在本发明实施例中,可以根据数据获取算法构建数据获取模块的处理逻辑,并根据数据获取算法确定该数据获取模块对应的用户特征标识和索引标识。新增数据获取模块时无需再根据输入数据设计一系列处理逻辑,只需明确实现的数据获取算法。新增数据获取模块时开发周期短,效率高,迭代速度块,易于灵活扩展。并且,需改变输入数据时,无需修改数据获取模块的处理逻辑,仅修改数据获取模块对应的用户特征标识和索引标识即可。减少数据获取模块的维护成本和时间。本发明实施例解耦了传统数据获取模块实现的多个处理逻辑,功能划分更为清楚。由用户特征管理模块统一完成用户特征的处理,处理后的第一用户特征可通过用户特征标识唯一确定。需使用用户特征时可通过用户特征标识获取对应的第一用户特征,无需重复计算。由索引管理模块统一完成构建和访问索引的过程,并通过索引标识标记索引。需访问索引时可通过索引标识访问对应的索引,无需重复构建索引。修改任意一个模块时,均无需修改其他模块,设计符合开闭原则,不易造成涟漪效应,代码复用率高。
在第一方面的一种可选方案中,数据获取模块还对应至少一个过滤器标识,至少一个过滤器标识为根据数据获取模块对应的数据获取算法确定的标识,目标数据获取模块还对应至少一个目标过滤器标识。
该装置还包括:过滤器管理模块,用于确定至少一个目标过滤器标识各自对应的目标过滤单元,通过目标过滤单元对第一数据集进行过滤,得到第二数据集;其中,第二数据集包括多个第二数据,过滤器管理模块包括至少一个过滤单元,每个过滤单元用于实现至少一种过滤规则,每个过滤单元有唯一对应的过滤器标识。
本发明实施例解耦了传统数据获取模块中构建过滤规则和实现过滤的处理逻辑与其他处理逻辑,功能划分更为清楚。由过滤器管理模块统一管理过滤规则,将至少一种过滤规则的实现抽象成一个过滤单元,每个过滤单元有唯一对应的过滤器标识。可以通过过滤器标识调用过滤单元完成过滤操作,无需重复构建过滤规则。在获取数据过程中,若需修改所使用的过滤规则,只需修改目标数据获取模块对应的目标过滤器标识,并通过过滤器管理模块调用修改后的目标过滤器标识对应的过滤单元完成过滤操作。设计符合开闭原则,代码复用率高,易于灵活扩展。
在第一方面的又一种可选方案中,该装置还包括:打分排序模块,用于通过至少一种排序算法,对多个第二数据进行打分,并根据打分结果进行排序。
本发明实施例将批量打分和排序的具体实现集成到打分排序模块,解耦了传统数据获取模块中的打分排序的处理逻辑和其他处理逻辑,功能划分更为清晰,便于灵活扩展。
在第一方面的又一种可选方案中,该装置还包括:配置管理模块,用于根据目标业务类型调整以下至少一项:至少一个目标数据获取模块各自对应的至少一个目标用户特征标识、至少一个目标索引标识或至少一个目标过滤器标识。
本发明实施例中,不同的数据获取模块应用于不同的业务类型场景。若目标业务类型有所变化,需修改或新增输入数据时,可以根据目标业务类型调整目标数据获取模块对应的目标用户特征标识、目标索引标识和目标过滤器标识,而无需重新构建数据获取模块或修改数据获取模块的处理逻辑。从而实现数据获取过程中用户特征、索引和过滤规则的个性化配置,减少数据获取模块的维护成本和开发量,产品需求灵活可变,易于扩展。
在第一方面的又一种可选方案中,配置管理模块,具体用于在获取的第二数据集的数据量小于目标数据获取模块的目标数据量的情况下,增加至少一个目标索引标识。
上述索引管理模块,还用于根据目标第一用户特征访问增加的目标索引标识对应的索引,获取第三数据集。
本发明实施例中,在获取的第二数据集小于目标数据量的情况下,可以通过配置管理模块新增目标索引标识,并通过索引管理模块访问新增的目标索引标识对应的索引,从而获取等于或大于目标数据量的数据集。新增输入数据(如需访问的索引)时,只需新增目标索引标识,无需对应修改其他模块,产品需求灵活可变,便于灵活扩展。
在第一方面的又一种可选方案中,上述索引管理模块包括至少一个数据索引单元,每个数据索引单元有唯一对应的索引标识,每个数据索引单元对应至少一个索引。
上述索引管理模块,具体用于确定至少一个目标索引标识各自对应的目标数据索引单元,通过目标数据索引单元根据目标第一用户特征访问目标数据索引单元对应的至少一个索引,获取第一数据集。
本发明实施例引入能用索引标识唯一确定的类型或格式统一的数据索引单元,由不同的数据索引单元完成访问不同类型的索引,获取数据的过程。便于统一维护和管理,易于灵活扩展。
在第一方面的又一种可选方案中,目标数据索引单元,用于以目标第一用户特征为目标关键词,访问目标数据索引单元对应的至少一个索引,获取目标关键词对应的至少一个第一数据。
第二方面,本发明实施例提供了一种数据获取方法,该方法包括:确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取算法;其中,至少两个业务类型中每个业务类型对应至少一个数据获取算法,数据获取算法对应至少一个用户特征标识和至少一个索引标识,目标数据获取算法对应至少一个目标用户特征标识和至少一个目标索引标识。
获取至少一个目标用户特征标识各自对应的目标第一用户特征;其中,上述装置包括至少一个第一用户特征,第一用户特征包括根据至少一个用户特征处理得到的用于访问索引的特征,每个第一用户特征有唯一对应的用户特征标识,至少一个第一用户特征包括目标第一用户特征。
根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集;其中,每个索引标识对应至少一个索引,第一数据集包括多个第一数据。
本发明实施例可以根据数据获取算法构建数据获取过程的处理逻辑,并根据数据获取算法确定该数据获取过程对应的用户特征标识和索引标识。新增数据获取过程时无需再根据输入数据设计一系列处理逻辑,只需明确实现的数据获取算法。从而减少开发周期的时间和成本,效率高,迭代速度块,易于灵活扩展。并且,需改变输入数据时,无需修改数据获取过程的处理逻辑,仅修改对应的用户特征标识和索引标识即可,减少维护成本和时间。在上述方法中,应用该方法的数据获取装置包括用户特征管理模块和索引管理模块。本发明实施例解耦了传统数据获取架构中实现的多个处理逻辑,功能划分更为清楚。由用户特征管理模块统一完成用户特征的处理,处理后的第一用户特征可通过用户特征标识唯一确定。需使用用户特征时可通过用户特征标识获取对应的第一用户特征,无需重复计算。由索引管理模块统一完成构建和访问索引的过程,并通过索引标识标记索引。需访问索引时可通过索引标识访问对应的索引,无需重复构建索引。修改任意一个模块时,均无需修改其他模块,设计符合开闭原则,不易造成涟漪效应,代码复用率高。
在第二方面的一种可选方案中,数据获取算法还对应至少一个过滤器标识,每个过滤器标识对应至少一种过滤规则,目标数据获取算法还对应至少一个目标过滤器标识。
上述根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集之后,该方法还包括:通过至少一个目标过滤器标识各自对应的过滤规则,对第一数据集进行过滤,得到第二数据集;第二数据集包括多个第二数据。
在上述方法中,应用该方法的数据获取装置还包括过滤器管理模块,过滤器管理模块包括至少一个过滤单元。本发明实施例解耦了传统数据获取架构中构建过滤规则和实现过滤的处理逻辑与其他处理逻辑,功能划分更为清楚。由过滤器管理模块统一管理过滤规则,将至少一种过滤规则的实现抽象成一个过滤单元,每个过滤单元有唯一对应的过滤器标识。在获取数据的过程中,只需通过过滤器标识对应的过滤规则完成过滤操作即可,无需重复构建过滤规则。并且,若需修改所使用的过滤规则时,也只需修改目标数据获取算法对应的目标过滤器标识即可。设计符合开闭原则,代码复用率高,易于灵活扩展。
在第二方面的又一种可选方案中,上述通过至少一个目标过滤器标识各自对应的过滤规则,对第一数据集进行过滤,得到第二数据集之后,该方法还包括:通过至少一种排序算法,对多个第二数据进行打分,并根据打分结果进行排序。
本发明实施例解耦了传统数据获取架构中的打分排序的处理逻辑和其他处理逻辑,功能划分更为清晰,便于灵活扩展。
在第二方面的又一种可选方案中,上述确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取算法之前,该方法还包括:根据目标业务类型调整以下至少一项:至少一个目标数据获取算法各自对应的至少一个目标用户特征标识、至少一个目标索引标识或至少一个目标过滤器标识。
本发明实施例中,不同的数据获取算法应用于不同的业务类型场景。若目标业务类型有所变化,需修改或新增输入数据时,可以根据目标业务类型调整目标数据获取算法对应的目标用户特征标识、目标索引标识和目标过滤器标识,而无需重新构建或修改数据获取过程的处理逻辑。从而实现数据获取过程中用户特征、索引和过滤规则的个性化配置,减少维护成本和开发量,产品需求灵活可变,易于扩展。
在第二方面的又一种可选方案中,上述通过至少一个目标过滤器标识各自对应的过滤规则,对第一数据集进行过滤,得到第二数据集之后,该方法还包括:在获取的第二数据集的数据量小于目标数据获取算法对应的目标数据量的情况下,增加至少一个目标索引标识。
根据目标第一用户特征访问增加的目标索引标识对应的索引,获取第三数据集。
本发明实施例中,在获取的第二数据集的数据量小于目标数据量的情况下,可以新增目标索引标识,并访问新增的目标索引标识对应的索引,从而获取等于或大于目标数据量的数据集。新增输入数据(如需访问的索引)时,只需新增目标索引标识,无需对应修改其他处理逻辑,产品需求灵活可变,便于灵活扩展。
在第二方面的又一种可选方案中,上述根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集,包括:以目标第一用户特征为目标关键词,访问至少一个目标索引标识各自对应的索引,获取目标关键词对应的至少一个第一数据。
第三方面,本发明实施例提供了一种数据获取装置,包括处理器、存储器以及通信接口;存储器用于存储程序代码,处理器用于调用上述程序代码,以执行本发明实施例第二方面或第二方面的任意一种实现方式提供的数据获取方法。
第四方面,本发明实施例提供了一种数据获取系统,该数据获取系统包括至少一个终端、网络和服务器;其中,终端或服务器包括本发明实施例第一方面或第一方面的任意一种实现方式提供的数据获取装置,终端为包含需获取数据的系统(如推荐系统和搜索系统)的手机、平板电脑、笔记本电脑等设备,上述网络是为服务器和终端提供通信链路的任意一种或多种介质。
第五方面,本发明实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,可实现本发明实施例第二方面或第二方面的任意一种实现方式提供的数据获取方法。
第六方面,本发明实施例提供了一种计算机程序产品,当该计算机程序产品在数据获取装置上运行时,使得该数据获取装置执行本发明实施例第二方面或第二方面的任意一种实现方式提供的数据获取方法。
可以理解地,上述提供的第三方面提供的数据获取装置、第五方面提供的计算机存储介质,以及第六方面提供的计算机程序产品均用于执行第二方面所提供的数据获取方法,因此,其所能达到的有益效果可参考第二方面所提供的数据获取方法中的有益效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种数据获取系统的架构示意图;
图2是示例的一种传统的数据获取架构示意图;
图3是本发明实施例提供的一种数据获取装置的结构示意图;
图4是本发明实施例提供的一种数据获取架构示意图;
图5是本发明实施例提供的又一种数据获取架构示意图;
图6是本发明实施例提供的又一种数据获取架构示意图;
图7是本发明实施例提供的又一种数据获取架构示意图;
图8是本发明实施例提供的一种数据获取方法的流程示意图;
图9是本发明实施例提供的又一种数据获取装置的结构示意图。
具体实施方式
本发明实施例提供了一种数据获取方法,可以应用于包含数据获取过程的推荐系统、搜索系统等系统。
首先,介绍本发明实施例中涉及的相关名词。
索引,是数据库术语。在关系数据库中,索引是一种对数据库表中一列或多列的值进行排序的一种存储结构。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引通常分为正向索引和反向索引。在实际应用中,反向索引更多地被称为倒排索引。
倒排索引,倒排索引源于实际应用中需要根据属性的值来查找记录。倒排索引表中的每一项都包括一个属性值和具有该属性值的各记录。和传统的正向索引由记录来确定属性值不同,倒排索引是通过属性值来确定记录的位置。该属性值一般被称为关键词,具有该属性值的各记录一般为包含关键词的文件的文件标识、关键词在文件中的出现次数、出现位置等记录。例如但不限于,每个文件对应一个文件标识,文件的内容被表示为一系列关键词的集合。文件标识为1111的文档1包含关键词A和关键词B,文件标识为2222的文档2包含关键词A和关键词C。对应关键词A的倒排索引可以是关键词A:文件标识1111,关键词A在文件1出现次数为5;文件标识2222,关键词A在文件2出现次数为3。
中间件,是一种独立的系统软件或服务程序。例如,中间件可以连接两个独立应用程序或独立系统,其中,相连接的系统即使具有不同的接口,也能通过中间件交互信息。中间件能够屏蔽底层操作流程的复杂性,从而使程序开发人员能够能面对一个简单而统一的开发环境,减少程序设计的复杂性,提高代码复用率,减少开发周期和系统维护的成本。常用的中间件有数据库、Apache的Tomcat、IBM公司的WebSphere、东方通公司的Tong系列中间件和BEA公司的WebLogic应用服务器等。
算子,广义的讲,对任何函数进行某一项操作都可以认为是一个算子,算子可以理解为映射、关系或变换。例如但不限于,求幂次和开方都可以被认为是一个算子。常见的算子有微分算子,梯度算子,散度算子,拉普拉斯算子,哈密顿算子等。
外部召回,访问外部服务的索引,并获取数据的过程。其中,外部服务是数据获取装置内部已有的服务以外的服务。例如但不限于,对于微信看一看而言,非微信软件内部的服务即为外部服务。如今日头条、爱奇艺视频、百度文库等对于微信来说都属于外部服务。可以通过外部召回,直接获取外部服务已经构建好的索引,从而减少构建索引的次数,提高处理效率。
在实际应用中,一般是需要根据关键词确定包含关键词的文件,因此通常使用的索引是倒排索引。
为了方便理解,本发明实施例中采用的索引以倒排索引,倒排索引的每一项包括一个关键词和包含关键词的文件为例进行说明。
本发明实施例中的数据获取模块、数据获取算法可以但不限于用于实现数据召回的过程,即从原始数据(一般理解为全量信息集合)中触发尽可能多的正确结果(即召回数据),并将正确结果(即召回数据)返回给用于排序的工作线程。本发明实施例中的第一数据集、第二数据集和第三数据集包含的数据可以被称为召回数据。
下面将结合附图对本发明实施例中的技术方案进行描述。
请参见图1,图1是本发明实施例提供的一种数据获取系统的架构示意图。
如图1所示,该数据获取系统可以包括终端集群、网络20和服务器30。终端集群可以包括多个终端,具体包括终端10a、终端10b、…、终端10n,终端集群中任意一个终端均可以建立与网络20之间的数据连接关系,并通过网络20和服务器30建立数据连接关系。其中,终端集群中任意一个终端可以但不限于是手机、平板电脑、笔记本电脑等设备。
网络20可以是在终端集群中任意一个终端和服务器30之间提供通信链路的介质,也可以是包含网络设备和传输介质的互联网,不限于此。传输介质可以是有线链路(例如但不限于,同轴电缆、光纤和数字用户线路(digital subscriber line,DSL)等)或无线链路(例如但不限于,无线上网(wireless fidelity,WIFI)、蓝牙和移动设备网络等)。
服务器30可以是能提供多种服务的服务器,可以接收网络20或终端集群中的任意一个终端发送的数据,或给网络20或终端集群中的任意一个终端发送数据。服务器30可以但不限于是硬件服务器、虚拟服务器、云服务器等。
可以理解地,图1所示的数据获取系统中的终端、网络20和服务器30的数目仅作为示例,在具体实现中,该数据获取系统可以包含任意数目的终端、网络和服务器。本发明实施例对此不作限定。例如但不限于,服务器30可以是多个服务器组成的服务器集群。
作为一种可选的实施方式,终端10a可以安装包含推荐系统的软件。包含推荐系统的软件可以但不限于是QQ、微信、腾讯新闻、今日头条、UC头条等。终端10a打开包含推荐系统的软件的推荐列表时(如打开微信看一看的朋友在看),会发送一条数据获取请求给服务器30。服务器30接收该数据获取请求,并为该数据获取请求分配一个工作线程,可以称为一个worker。该工作线程可以包括用于执行数据召回等数据获取过程的工作线程和用于执行排序的工作线程。其中,用于执行数据召回等数据获取过程的工作线程可以称为RetrieveWorker。
执行数据召回等数据获取过程后得到的数据可以称为数据集。获取的数据集会返回给用于执行排序的工作线程,由用于执行排序的工作线程进行多次打分排序,筛选出和使用终端10a的目标用户相关性较强的数据。最后,服务器30将处理好的数据返回给终端10a,以完成推荐列表(如朋友在看列表)的上下文初始化,从而将目标用户感兴趣的信息推荐给该用户。
不限于上述列举的情况,在具体实现中,也可以是终端为数据获取请求分配工作线程,完成对应的数据获取过程,本发明实施例对此不作限定。
为便于理解,本发明实施例基于上述列举的用于执行数据召回等数据获取过程的工作线程、数据集和相关描述进行说明。
基于上述图1所示的数据获取系统和相关说明,图2示例性示出一种现有技术中的传统的数据获取架构示意图。
如图2所示,数据获取过程可以包括准备过程和执行过程。准备过程可以包括但不限于如下步骤:
S201:用户特征处理。
具体地,为每个用户刻画对应的用户画像。用户画像可以分为静态的用户画像和动态的用户画像。其中,静态的用户画像也可以称为用户的基础属性,包括但不限于年龄、性别、居住地等。动态的用户画像也可以称为用户的行为特征,包括但不限于用户对文章、视频、图片等文件的点击、阅读、点赞、评论、转发等动作。
例如但不限于,用户特征处理的方法包括但不限于特征标准化、实时特征计算、特征获取和特征映射等等。
具体地,传统的数据获取架构中首先会对要使用的用户特征进行处理,若后续需新增用户特征或修改用户特征的处理方式,则需在下述步骤S203中重新实现用户特征处理过程,并且各个数据获取模块可能出现重复计算的情况。
S202:初始化过滤器。
具体地,可以但不限于从去重、低质量、年龄倾向和敏感人群等角度去构建过滤器中的多个过滤规则。
具体地,类似上述步骤S201,传统数据获取架构中首先会对要使用的过滤规则进行构建,若后续需新增过滤规则或修改过滤规则,则需在下述步骤S203中重新实现过滤规则的构建过程,并且各个数据获取模块可能出现重复构建和处理的情况。
执行过程可以包括但不限于如下步骤:
S203:多路并发获取数据集。
具体地,多路并发获取数据集是指由多个数据获取模块并发执行一系列的用户特征处理(如特征计算、特征映射)、建立倒排索引、访问倒排索引(如访问倒排、访问词典、外部召回)、过滤和打分排序等多个处理逻辑。
具体地,每个数据获取模块在获取数据集的过程中,可以通过不同的方法,根据各种各样的数据源建立本数据获取模块需要使用的倒排索引,不同的数据获取模块建立的倒排索引不完全一致。
倒排索引可以是根据已有的视频、图文、新闻等数据源或该数据源的正排构建的本地倒排,也可以是根据视频词典、图文词典等自定义的词典数据源构建的词典倒排。
不限于上述列举的情况,在具体实现中,数据获取模块访问的倒排索引还可以是通过远程过程调用(Remote Procedure Call,RPC)获取的外部服务的倒排索引。本发明实施例对建立倒排索引的方式和数据源不做限定。例如但不限于,外部召回可以获取除本终端10a安装的包含推荐系统的软件(如包含微信看一看的微信)以外的第三方网站、第三方软件(如今日头条、爱奇艺视频、百度文库等)的外部倒排数据。
在传统的数据获取架构中,数据获取模块的实现依赖于具体的用户特征、需访问的索引和过滤规则等输入数据的类型。若输入数据改变,则需修改数据获取模块的处理逻辑或新增与改变后的输入数据对应的数据获取模块,设计违反开闭原则,代码复用性低,修改易造成涟漪效应,新增数据获取模块开发周期长,维护成本高。
例如但不限于,需要构建针对目标用户小红的数据获取模块,目标用户小红当前可以包含性别为女、学历为研究生两个用户特征。数据获取模块需对目标用户小红的两个用户特征进行处理,并基于这两个用户特征确定本数据获取模块需使用的数据获取算法(如这两个用户特征可以用于实现获取相似人群的数据的目标,并结合实际需求,该数据获取算法可以是协同过滤算法中基于用户的推荐算法)、需构建和访问的索引(如高校类文章、视频等对应的索引)、需构建和使用的过滤规则(如过滤规则为去除标题党、低质量文章等数据)。
若目标用户小红现在多了一个点击乒乓球比赛文章的行为特征,在获取数据的目标仍为获取相似人群的数据的情况下,可能需要对应修改第一算法的具体实现,如第一算法可以改成协同过滤算法中基于用户和内容的推荐算法,这样需要对应修改或新增构建的索引和过滤规则,设计违反开闭原则,修改易造成涟漪效应。
S204:合并数据集。
具体地,合并所有数据获取模块根据不同的策略算法得到的数据集。
S205:粗排。
具体地,对合并后的数据集进行粗略的排序筛选,最后将筛选的结果输出给其他排序层。
可以理解地,随着互联网的发展,激增的用户和文件带来的海量数据及各种各样的推荐场景给数据获取过程带来了很大的压力。如图2所示的传统数据获取架构中,每个数据获取模块包含多个处理逻辑,功能划分不清楚。同时,每个数据获取模块都依赖于具体的用户特征类型和用于访问倒排的接口类型。每个数据获取模块都根据对应的数据获取算法独立开发,从而导致传统的数据获取架构存在代码臃肿、复用率低、新增数据获取模块的开发周期长、效率低、开发模式不统一、迭代速度慢和不能灵活扩展等多个问题。
鉴于传统数据获取架构存在的多种问题,以及推荐业务的未来发展趋势也需要支持更多的策略算法、更多的异构数据接入和更多的推荐场景。本发明实施例提供了一种容易维护、扩展性强、高度灵活和高度稳定的数据获取架构、数据获取方法及装置,以此支持业务的快速发展。下面将对其进行详细说明。
请参见图3,图3是本发明实施例提供的一种数据获取装置的结构示意图。该数据获取装置可以是图1所示的数据获取系统中的任意一个终端或服务器30,也可以是图1所示的数据获取系统中的任意一个终端或服务器30的一部分。该数据获取装置可以包括确定模块31、至少一个数据获取模块32、用户特征管理模块33和索引管理模块34。其中,各个模块的详细描述如下:
数据获取模块32,用于实现对应的数据获取算法。不同数据获取模块对应不同的数据获取算法。
具体地,数据获取模块32对应至少一个用户特征标识和至少一个索引标识。可以根据对应的数据获取算法构建数据获取模块32的处理逻辑和确定数据获取模块32对应的用户特征标识和索引标识,从而构建完整的数据获取模块32。
具体地,数据获取算法可以但不限于是协同过滤算法、矩阵分解算法、聚类算法、深度学习算法等,也可以是多种算法的组合模型,例如但不限于是深度树匹配模型等。其中,协同过滤方法是通过在用户历史行为里面找相似的物品和用户,保证了基础的相关性。协同过滤主要可以分为基于用户的协同过滤、基于物品的协同过滤、基于模型的协同过滤等。向量化召回主要通过模型学习用户和物品的兴趣向量,并通过内积来计算用户和物品之间的相似性,从而得到最终的数据集合。
例如但不限于,为了获取相似人群的数据,第一数据获取模块对应的数据获取算法可以是协同过滤算法中基于用户的推荐算法。用户特征标识对应的用户特征可以为上述年龄、性别、居住地等用户的基础属性。索引标识对应的倒排索引可以是关键词为上述用户的基础属性的倒排索引。为了获取相似阅读历史的数据,第二数据获取模块对应的数据获取算法可以是协同过滤算法中基于内容的推荐算法。用户特征标识对应的用户特征可以为阅读乒乓球赛事的文章、转发篮球赛事的文章等。索引标识对应的倒排索引可以是关键词为乒乓球、篮球等球类运动的倒排索引。
确定模块31,用于确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取模块。
具体地,上述至少两个业务类型,即多个业务类型中每个业务类型对应至少一个数据获取模块。
可能地,确定模块31内部存储有业务类型和数据获取模块的对应关系表。确定模块31可以根据目标业务类型,查询对应关系表,确定对应关系表中与该目标业务类型对应的数据获取模块为目标数据获取模块。
具体地,多个业务类型可以但不限于是推荐系统中的多个推荐菜单或搜索系统中的多个搜索菜单等。推荐系统中不同的推荐菜单的推荐内容可以但不限于属于不同的类型。例如但不限于,QQ看点的小说菜单的推荐内容属于小说类型,视频菜单的推荐内容属于视频类型。搜索系统中不同的搜索菜单可以但不限于对应不同的搜索范围,或用于搜索不同类型的数据。例如但不限于,百度搜索的知道菜单的搜索范围为百度知道内的问题和答案,图片菜单用于搜索图片类型的数据。
接下来以多个业务类型为微信看一看中的朋友在看和精选为例进行说明,其中,朋友在看用于推荐微信好友在看、点赞、分享或转发的文章等内容,精选用于推荐大多数人关注的社会热点等内容。上述列举的第一数据获取模块和第二数据获取模块可以应用于大多数业务类型,例如但不限于微信看一看的精选。除此以外,还可以有专用于特定业务类型场景的数据获取模块。例如,第三数据获取模块为针对微信看一看的朋友在看场景设计的数据获取模块。
不限于上述列举的朋友在看,特定业务类型场景还可以是QQ看点的关注、腾讯视频看点、芒果视频看点等,本发明实施例对此不作限定。
若目标业务类型为微信看一看的朋友在看时,确定模块31可以查询内部存储的对应关系表,确定对应朋友在看的第三数据获取模块为目标数据获取模块。若目标业务类型为微信看一看的精选时,确定模块31可以根据内部存储的对应关系表,确定对应精选的第一数据获取模块和第二数据获取模块均为目标数据获取模块。
不限于上述列举的情况,在具体实现中,确定模块31还可以根据相关算法或模型计算数据获取模块和目标业务类型的匹配度,选择与目标业务类型匹配度最高的数据获取模块为目标数据获取模块。本发明实施例对此不作限定。
具体地,目标数据获取模块对应至少一个目标用户特征标识和至少一个目标索引标识。目标用户特征标识和目标索引标识可以根据目标数据获取模块对应的数据获取算法确定得到。目标用户特征标识和目标索引标识可用于后续的数据获取过程。
用户特征管理模块33,用于获取至少一个目标用户特征标识各自对应的目标第一用户特征。
具体地,用户特征管理模块33包括至少一个第一用户特征,第一用户特征包括根据至少一个用户特征处理得到的用于访问索引的特征,每个第一用户特征有唯一对应的用户特征标识。至少一个第一用户特征包括目标第一用户特征。
具体地,用户特征管理模块33可以将类型或格式各不相同的至少一个原始用户特征(如上述图2的步骤S201所示的用户的基础属性和行为特征)转换为类型和格式均统一,且能用用户特征标识唯一确定的第一用户特征。第一用户特征可用于后续访问倒排索引的过程。
例如但不限于,用户特征管理模块33可以将点击学习乒乓球的文章,点击乒乓球比赛的文章等原始用户特征可以转换为一个用户特征标识为A的第一用户特征,该第一用户特征表征喜欢乒乓球。并存储用户特征标识A和该第一用户特征的对应关系。后续若需获取目标用户特征标识A对应的用户特征,用户特征管理模块33则可以根据存储的对应关系,查询并获取与A对应的表征喜欢乒乓球的目标第一用户特征。
索引管理模块34,用于根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集。
具体地,索引为上述解释过的名词,在本发明实施例中索引以倒排索引为例进行说明。每个索引标识对应至少一个索引。例如但不限于,索引标识为BB对应关键词为乒乓球、篮球等球类运动的类型的至少一个索引。
作为一种可选的实施方式,索引管理模块34可以根据不同的数据源建立各个类型的倒排索引来用于后续访问,并通过索引标识来确定建立的倒排索引。倒排索引的建立可以参照上述图2的步骤S203所示的描述,此处不予赘述。
具体地,索引管理模块34可以通过内部存储的索引标识和索引的对应关系,确定与目标索引标识对应的索引,通过上述的目标第一用户特征访问索引,获取包括多个第一数据的第一数据集。
作为一种可选的实施方式,索引管理模块可以以目标第一用户特征为目标关键词,访问索引标识对应的至少一个索引,获取目标关键词对应的多个第一数据。
不限于上述列举的情况,在具体实现中,还可以通过索引管理模块内置的确定目标关键词的算法,或根据数据获取模块对应的数据获取算法,根据目标第一用户特征确定目标关键词。例如但不限于,目标第一用户特征为喜欢乒乓球。第二数据获取模块为目标数据获取模块,用于获取相似阅读历史的数据,第二数据获取模块的数据获取算法为协同过滤算法中基于内容的推荐算法。结合该算法,目标关键词可以为乒乓球赛事、运动会赛事等。本发明实施例对此不作限定。
作为一种可选的实施方式,数据获取模块还对应至少一个过滤器标识,至少一个过滤器标识为根据数据获取模块对应的数据获取算法确定的标识,目标数据获取模块还对应至少一个目标过滤器标识。
该数据获取装置还可以包括:过滤器管理模块35,用于确定至少一个目标过滤器标识各自对应的目标过滤单元,通过目标过滤单元对第一数据集进行过滤,得到第二数据集。
具体地,过滤器管理模块35包括至少一个过滤单元,每个过滤单元用于实现至少一种过滤规则,每个过滤单元有唯一对应的过滤器标识。
过滤器管理模块35可以从上述图2的步骤S202所示的角度构建过滤规则,并将至少一种过滤规则(如相同类型的过滤规则)抽象为一个过滤单元。同时用过滤器标识唯一确定过滤单元,存储过滤器标识和过滤单元(过滤规则)的对应关系。每个过滤规则只构建一次,后续需要过滤时,无需重复计算,只需根据数据获取模块对应的数据获取算法确定过滤器标识。由过滤器管理模块查询内部存储的对应关系,确定与过滤器标识对应的过滤单元,通过过滤单元完成过滤操作。
例如但不限于,过滤器管理模块35可以将去除色情、违法这类对社会公众有负面影响的内容的过滤规则抽象为一个过滤器标识为AAA的过滤单元。在目标数据获取模块的过滤器标识为AAA时,过滤器管理模块35调用对应的过滤单元,对第一数据集进行过滤,得到包括多个第二数据的第二数据集。
作为一种可选的实施方式,该数据获取装置还可以包括:
打分排序模块,用于通过至少一种排序算法,对多个第二数据进行打分,并根据打分结果进行排序。
具体地,本发明实施例将批量打分和排序的具体实现集成到打分排序模块,解耦了传统数据获取模块中的打分排序的处理逻辑和其他处理逻辑,功能划分更为清晰,便于灵活扩展。排序算法可以为根据需排序的目标(第二数据集)、或数据获取算法、或业务类型确定的排序算法,不限于此。打分排序的描述可参见下述图4和图5的说明,此处暂不详述。
作为一种可选的实施方式,该数据获取装置还可以包括:
配置管理模块36,用于根据目标业务类型调整以下至少一项:至少一个目标数据获取模块各自对应的至少一个目标用户特征标识、至少一个目标索引标识或至少一个目标过滤器标识。
具体地,不同的数据获取模块32应用于不同的业务类型场景。若目标业务类型有所变化,需修改或新增输入数据时,无需重新构建数据获取模块32或修改数据获取模块32的详细处理逻辑。配置管理模块36可以根据目标业务类型调整目标数据获取模块对应的目标用户特征标识、目标索引标识和目标过滤器标识。从而实现数据获取过程中用户特征、索引和过滤规则的个性化配置,减少数据获取模块的维护成本和开发量,产品需求灵活可变,易于扩展。
例如但不限于,第一数据获取模块对应的目标业务类型的目的是通过用户的基础属性实现获取相似人群的数据,并且需要过滤对社会公众有负面影响的数据,第一数据获取模块配置了过滤器标识AAA。现第一数据获取模块对应的目标业务类型还需过滤标题党、营销号文章等低质量的数据。则可以通过配置管理模块36配置第一数据获取模块的过滤器标识为AAA和CCC。其中,标识CCC对应的过滤器单元用于过滤标题党、营销号文章等低质量的数据。而无需像传统数据架构中,根据新增的过滤规则,调整第一数据获取模块的数据获取算法,甚至其他输入数据等。
上述列举的第一数据获取模块新增过滤器标识CCC的情况。若需要新增的过滤规则(过滤标题党、营销号文章等低质量的数据)在过滤器管理模块35包含的过滤器单元中没有对应的过滤规则,即该过滤规则第一次出现。过滤器管理模块35可以构建该过滤规则,并抽象成能用过滤器标识CCC唯一确定的过滤器单元。同时,通过配置管理模块为第一数据获取模块对应的过滤器标识添加CCC。在目标数据获取模块为第一数据获取模块时,由过滤器管理模块35确定与标识CCC对应的过滤器单元,通过该过滤器单元完成过滤操作。若其他数据获取模块后续也需添加该过滤规则,无需重复构建过滤规则,直接通过配置管理模块添加过滤器标识CCC即可。
作为一种可选的实施方式,配置管理模块36,具体用于在获取的第二数据集的数据量小于目标数据获取模块的目标数据量的情况下,增加至少一个目标索引标识。
索引管理模块34,还用于根据目标第一用户特征访问增加的目标索引标识对应的索引,获取第三数据集。
具体地,在获取的第二数据集小于目标数据量的情况下,可以通过配置管理模块36新增目标索引标识,并通过索引管理模块34访问新增的目标索引标识对应的索引,从而获取等于或大于目标数据量的数据集。新增输入数据(如需访问的索引)时,只需新增目标索引标识,无需对应修改其他模块,产品需求灵活可变,便于灵活扩展。
不限于上述列举的情况,在具体实现中,还可以新增目标用户特征标识,由用户特征管理模块33获取新增的目标用户特征对应的目标第一用户特征,由索引管理模块34根据新增的目标第一用户特征访问新增的目标索引标识对应的索引,获取第四数据集。也可以新增过滤器标识,由过滤器管理模块35对获取的第三数据集和第四数据集进行过滤。本发明实施例对此不作限定。
作为一种可选的实施方式,索引管理模块34包括至少一个数据索引单元,每个数据索引单元有唯一对应的索引标识,每个数据索引单元对应至少一个索引。
索引管理模块34,具体用于确定至少一个目标索引标识各自对应的目标数据索引单元,通过目标数据索引单元根据目标第一用户特征访问目标数据索引单元对应的至少一个索引,获取第一数据集。
具体地,上述每个索引标识对应至少一个索引,具体为每个数据索引单元由索引标识唯一确定,每个数据索引单元用于访问该数据索引单元对应的至少一个索引。例如但不限于,索引标识为BB对应关键词为乒乓球、篮球等球类运动的类型的至少一个索引,具体为一个数据索引单元的索引标识为BB,该数据索引单元用于访问关键词为乒乓球、篮球等球类运动的类型的至少一个索引。
作为一种可选的实施方式,倒排索引中的每一项都包括一个关键词和包含关键词的文件列表。目标数据索引单元可以以目标第一用户特征为用于查表的目标关键词,查询该数据索引单元对应的至少一个索引,获取倒排索引中对应该目标关键词的文件,如获取包含该目标关键词的一个文章为一个第一数据,从而获取目标关键词对应的至少一个第一数据。
不限于上述列举的情况,在具体实现中,还可以根据数据索引单元内置的确定目标关键词的算法,或根据数据获取模块的数据获取算法确定目标关键词。本发明实施例对此不作限定。
可能地,数据索引单元可以是中间件。不同数据源构建的倒排索引可以对应不同的中间件,通过不同的中间件访问不同的倒排索引。中间件可以屏蔽不同类型倒排索引的格式差异和访问倒排索引的复杂流程。让程序开发人员能够面对一个简单而统一的开发环境,减少程序设计的复杂性,提高代码复用性,便于统一维护和管理,易于灵活扩展。
不限于上述列举的情况,在具体实现中,可以由数据获取模块32完成调整对应的用户特征标识、索引标识或过滤器标识的操作。还可以由配置管理模块36完成确定模块31实现的操作,本发明实施例对此不作限定。
为了方便理解,本发明实施例以数据索引单元为中间件为例进行说明。
结合上述的说明,举例说明一种获取第二数据集的场景。例如但不限于,目标业务类型为微信看一看中的朋友在看。确定模块31可以根据内部存储的对应关系表(朋友在看对应第三数据获取模块。其中,第三数据获取模块的数据获取算法为应用于朋友在看这个特定场景的,并用于获取微信好友看过的文章的算法)确定第三数据获取模块为目标数据获取模块。第三数据获取模块对应的目标用户特征标识为A,目标索引标识为AA,目标过滤器标识为CCC。第三数据获取模块可以将携带目标用户特征标识A的请求发送给用户特征管理模块33。由用户特征管理模块33获取A对应的目标第一用户特征,并返回给第三数据获取模块。第三数据获取模块发送携带目标索引标识AA和目标第一用户特征给索引管理模块34。由索引管理模块34确定与AA对应的目标数据索引单元,由目标数据索引单元以目标第一用户特征为目标关键词,获取多个目标关键词对应的第一数据,即第一数据集,并返回给第三数据获取模块。第三数据获取模块发送携带目标过滤器标识CCC的请求给过滤器管理模块35,过滤器管理模块35通过CCC对应的过滤器单元对第一数据集进行过滤,得到第二数据集,最后将第二数据集返回给第三数据获取模块。
可以理解地,数据获取架构可以应用于本发明实施例中的数据获取装置和数据获取系统。基于上述图1所示的数据获取系统和图3所示的数据获取装置,接下来结合图4介绍本发明实施例提供的总体数据获取架构的示意图。
请参见图4,图4是本发明实施例提供的一种数据获取架构示意图,该数据获取架构可以应用于图1所示的数据获取系统中的任意一个终端或服务器30,也可以应用于图3所示的数据获取装置。
可以理解地,当收到一个数据获取请求时,用于执行数据召回等数据获取过程的工作线程执行如图4所示的用户特征处理、初始化过滤器、多路并发获取数据集、合并数据集、粗排和输出的流程。其中,合并数据集、粗排和输出均和图2所示的传统数据获取架构一致,此处不再赘述。
用户特征处理和初始化过滤器的处理方法和图2所示的基本一致,但本发明实施例将用户特征处理的逻辑集成到用户特征管理模块33,构建过滤规则的逻辑集成到过滤器管理模块35,构建倒排索引的逻辑集成到索引管理模块34。功能划分更为清晰,代码复用率高。用户特征的描述和过滤规则的描述可参见上述图2的说明,此处不再赘述。
在图3的确定模块31确定应用于目标业务类型场景的至少一个目标数据获取模块后,会执行多路并发获取数据集。多路并发获取数据集是多个数据获取模块32并发执行数据获取流程的过程,每个数据获取模块32执行的数据获取流程可以包括但不限于如下步骤:
S41:预配置。
具体地,数据获取模块32对应配置有至少一个用户特征标识、至少一个索引标识和至少一个过滤器标识。用户特征标识、索引标识和过滤器标识可以根据数据获取模块32对应的数据获取算法确定得到。
可能地,配置管理模块36可以但不限于根据数据获取模块32对应的数据获取算法、数据获取模块32应用的业务类型场景调整数据获取模块32对应配置的用户特征标识、索引标识或过滤器标识。
S42:获取数据集。
具体地,数据获取模块32可以包括多个顺序执行的多个子单元。不同子单元所用的用户特征标识、索引标识和过滤器标识可以不一样。但为了方便说明,本发明实施例仅以每个子单元所用的索引标识不一样进行说明。
作为一种可选的实施方式,所有子单元可以均使用一样的数据获取方法,也可以使用不同的数据获取方法。数据获取方法可以但不限于为根据数据获取模块32对应的数据获取算法或对应的业务类型确定的方法。数据获取方法可以由数据获取模块32自行确定,也可以为了便于后续修改和扩展,通过配置管理模块36配置每个子单元对应的数据获取方法。本发明实施例对此不作限定。
作为一种可选的实施方式,数据获取模块32可自行配置每个子单元对应的用户特征标识、索引标识和过滤器标识,也可以为了便于后续修改和扩展,通过配置管理模块36配置每个子数据获取模块对应的用户特征标识、索引标识和过滤器标识。本发明实施例对此不作限定。
作为一种可选的实施方式,每个数据获取模块可以但不限于根据对应的业务类型或对应的数据获取算法确定每个数据获取模块的目标数据量,每个数据获取模块需获取数据量等于或大于目标数据量的数据集。
接下来结合上述描述,举例说明数据获取模块32中各个子单元的执行流程。
例如但不限于,子单元1对应的索引标识为AA,AA对应的中间件是标签倒排中间件,子单元2对应的索引标识为BB,BB对应的中间件是词典倒排1中间件。每个子单元所用的数据获取方法相同。
首先,子单元1可以但不限于根据用户特征标识调用用户特征管理模块33,由用户特征管理模块33获取用户特征标识对应的第一用户特征。然后调用索引管理模块34中对应索引标识AA的标签倒排中间件,由标签倒排中间件根据第一用户特征访问该数据索引单元对应的至少一个索引,获取第一数据集。最后调用过滤器管理模块35中对应过滤器标识对应的过滤单元,由过滤单元对第一数据集进行过滤,得到子单元1对应的第二数据集。
数据获取模块32判断子单元1对应的第二数据集的数据量是否等于或大于目标数据量。若子单元1对应的第二数据集的数据量小于目标数据量,则执行子单元2。子单元2的执行步骤和子单元1基本一致,只是索引标识不一样,子单元2对应的索引标识为BB,调用索引管理模块32中BB对应的词典倒排1中间件获取第一数据集。如此顺序执行子单元,直到所有子单元对应的第二数据集的数据量之和等于或大于目标数据量,则将获取的多个第二数据集输出到下一步S43中。
可能地,在数据获取模块32对应配置的所有索引标识均被访问后,多个第二数据集的数据量之和仍小于目标数据量时,可以新增数据获取模块32对应的索引标识,并由子单元继续获取第二数据集。从而获取等于或大于目标数据量的数据集。新增输入数据时,只需新增数据获取模块对应的标识,无需对应修改其他模块,产品需求灵活可变,便于灵活扩展。
不限于上述列举的情况,在具体实现中,还可以新增用户特征标识或过滤器器标识,本发明实施例对此不作限定。
不限于上述列举的情况,还可以在获取完所有子单元对应的第一数据集后,由数据获取模块32调用过滤器管理模块35中与过滤器标识对应的过滤器单元,由过滤器单元统一对获取的多个第一数据集进行过滤。本发明实施例对此不作限定。
不限于上述列举的情况,子单元或数据获取模块32还可以通过配置管理模块36调用其他模块完成对应的处理逻辑。或者,子单元或数据获取模块32还可以发送携带标识的请求给其他模块,由其他模块根据接收的标识完成对应的处理逻辑,并返回获取的数据集给子单元或数据获取模块32。本发明实施例对此不作限定。
本发明实施例解耦了不同处理逻辑之间的耦合关系,功能划分更为清晰。
S43:预处理。
具体地,预处理是批量打分的基础,可以但不限于对步骤42得到的多个第二数据进行统计、分类、赋予权值等操作。
S44:批量打分。
具体地,批量打分可以但不限于结合用户画像、内容画像等特征数据,利用不同的算法指标对预处理后的多个数据集进行打分,以便于进行后续的排序操作。
其中,用户画像可参照上述图2的步骤S201的描述,此处不予赘述。内容画像用于表示文本的特征。内容画像可以是一组多维向量,包含多个标签,如文本的基础属性(如文本作者和字数)、关键词、实体词、主题和分类等等,不限于此,还可以是通过机器学习算法提取的文本聚类、嵌入向量等标签,本发明实施例对此不作限定。
内容画像和图2的步骤S201的用户画像(即本发明实施例涉及的用户特征)是互相影响的循环关系。内容画像可以决定用户画像,如用户画像的构建是需要有用户浏览了大量文本的前提。当一个用户对某一领域的文章进行过多次浏览、评论、收藏动作,则该用户为喜欢该领域的人,从而可以确认该用户的一个用户画像。用户画像可以影响内容画像,如可以通过用户的播放行为来确认文章所属分类。不限于上述列举情况,在具体实现中,由于文章内容和用户特征的复杂多样性,用户画像和内容画像远不止预设的标签集合,具体实现方法也各种各样,本发明实施例对此不作限定。
S45:排序。
具体地,排序可以结合多个数据集的打分数据,使用至少一种排序算法、排序算法的组合或排序模型进行排序筛选,得到数据获取模块32对应的数据集。
常用的排序算法包括但不限于Pointwise方法、Pairwise方法等监督学习算法、Tri-training等半监督学习算法。不限于上述列举的情况,在具体实现中,还可以根据上述排序算法建立排序模型实现打分排序,本发明实施例对此不作限定。
为了便于统一管理和更细致地监控数据获取模块32的执行流程,本发明实施例提供的数据获取架构将异构的数据获取模块统一化。每个子单元用于完成访问倒排的主要逻辑,方便子单元的任务管理。接下来结合图5介绍上述图3和图4所示的数据获取模块32的架构示意图。
需要说明的是,图5所示的数据获取模块32包括子单元和打分排序单元,其中,打分排序单元可以是上述的打分排序模块。
为了方便描述和实际考虑,数据获取模块32可以包括打分排序模块。在所有子单元完成步骤S42获取数据集后,由打分排序单元对所有子单元返回的多个第二数据集进行排序。
不限于上述列举的情况,在具体实现中,打分排序模块也可以和数据获取模块32分离,打分排序模块对所有数据获取模块返回的多个数据集进行排序。本发明实施例对此不作限定。
请参见图5,图5是本发明实施例提供的又一种数据获取架构示意图,该数据获取架构可以应用于图1所示的数据获取系统中的任意一个终端或服务器30,也可以应用于图3所示的数据获取装置。
如图5所示,该数据获取架构可以包括数据获取模块32和外部组件51。其中,执行步骤S42的多个子单元和执行步骤S43、S44和S45的打分排序单元组成数据获取模块32的基类部分321。可用于步骤S43、S44和S45使用的自定义的预处理子策略、打分逻辑子策略和排序逻辑子策略组成数据获取模块32的子策略部分322。
具体地,外部组件51可以包括上述图3所示的用户特征管理模块33、索引管理模块34、过滤器管理模块35和配置管理模块36。
具体地,子单元可以通过外部组件51中的用户特征管理模块33获取与目标用户特征标识对应的第一用户特征,可以通过外部组件51中的索引管理模块34访问与目标索引标识对应的索引,从而完成获取第一数据集的过程。子单元还需通过外部组件51中的过滤器管理模块35,使用与目标过滤器标识对应的过滤单元对第一数据集进行过滤,从而完成获取第二数据集的过程。
外部组件51中的配置管理模块36可以配合子单元完成步骤S42,例如但不限于,子单元可以通过配置管理模块36调用其他模块实现处理逻辑,或通过配置管理模块36调整子单元对应的用户特征标识、索引标识和过滤器描述。步骤S42:获取数据集的详细描述可参见上述图4的步骤S42的说明,此处不予赘述。
具体地,步骤S42获取数据集后需要对获取的数据集合进行打分排序。打分排序可以包括步骤S43预处理、步骤S44批量打分和步骤S45排序,这三个步骤的详细描述可参见上述图4的S43、S44和S45的说明,此处不予赘述。
作为一种可选的实施方式,执行步骤S43预处理时可以调用子策略部分322内自定义的预处理子策略。执行步骤S44批量打分时可以调用子策略部分322内自定义的打分逻辑子策略。执行步骤S45排序时可以调用子策略部分322内自定义的排序逻辑子策略。
作为一种可选的实施方式,在具体实现中,可以通过将上述数据获取模块32执行的流程集成在函数接口DoRetrieve中,该函数接口DoRetrieve可以包括执行步骤S42获取数据集操作的函数接口DoRecall和执行步骤S43,S44和S45的打分排序操作的函数接口DoRank。
可以理解地,数据获取模块32可以仅包含基类部分321,也可以继承上述基类部分321实现的获取数据集和打分排序的基本流程,并在此基础上自由扩展和插件化。例如但不限于,可以继承上述函数接口DoRetrieve,在此基础上自定义或引入外部插件来设置子策略部分322中的预处理子策略函数、打分逻辑子策略函数和排序逻辑子策略函数,并调用对应的子策略函数执行函数接口DoRank。
作为一种可选的实施方式,该数据获取架构还可以包括监控模块52。监控模块52用于对每个数据获取模块32的执行流程进行统一监控和记录流水日志,便于后续的维护。
可以理解地,结合上述图4和图5的数据获取架构示意图,子单元为本发明实施例中最小的执行单元,该单元可以被抽象成一个独立的函数对象,方便管理,后续扩展和并行化。
在上述图5中,每个子单元用于执行数据获取模块32的主要逻辑(即上述步骤S42获取数据集中的子步骤获取第一数据集),接下来结合图6介绍该子步骤:获取第一数据集的架构示意图。
请参见图6,图6是本发明实施例提供的又一种数据获取架构示意图,该数据获取架构可以应用于图1所示的数据获取系统中的任意一个终端或服务器30,也可以应用于图3所示的数据获取装置。基于该数据获取架构,可以实现上述图5所示的步骤S42中的子步骤:获取第一数据集。
如图6所示,该数据获取架构可以包括子单元60、上述图3所示的用户特征管理模块33、索引管理模块34和配置管理模块36。
具体地,为了便于扩展数据获取模块,解决用户特征异构和倒排索引异构的问题。本发明实施例将用户处理逻辑和其他处理逻辑解耦,将处理用户特征的相关操作都收敛到用户特征管理模块33。以及将构建和访问倒排索引的处理逻辑和其他处理逻辑解耦,将对倒排索引的相关操作都收敛到索引管理模块34。以此实现了统一的用户特征管理和倒排索引管理。
具体地,用户特征管理模块33可以将多个具体类型的用户特征331转换成多个统一类型的第一用户特征332,只需通过用户特征标识(如图6所示的ID)即可获取到对应的用户特征。子单元60无需关注用户特征细节和上述转换的具体过程。例如但不限于,对子单元60屏蔽用户特征管理模块33的内部流程。
作为一种可选的实施方式,子单元60可以将带有用户特征标识(例如,用户特征标识ID=1)的注册请求发给用户特征管理模块33,由用户特征管理模块33统一获取与用户特征标识对应的第一用户特征(例如,用户特征标识ID=1对应标签特征),并返回给子单元60。
作为一种可选的实施方式,在子单元60和用户特征管理模块33交互过程中可以持续持有返回的第一用户特征,避免多次获取。
需要说明的是,图6所示的多个第一用户特征332中的每个第一用户特征表征一类用户特征,在具体实现中,也可以是一个用户特征为第一用户特征。例如但不限于,用户特征标识ID=5对应的第一用户特征表征性别为女。本发明实施例对此不作限定。
具体地,索引管理模块34可以构建多个倒排索引341,并构建用于访问多个倒排索引341对应的多个数据索引单元(下面以中间件进行说明)342。每个倒排索引中间件都有对应的索引标识,只需通过索引标识调用对应的倒排索引中间件,并由倒排索引中间件访问与该中间件对应的至少一个倒排索引,获取第一数据集。
其中,不同数据源的倒排索引的建立可以参照上述图2的步骤S203中建立倒排索引的说明,此处不予赘述。
作为一种可选的实施方式,子单元60可以将带有索引标识和第一用户特征的请求发给索引管理模块34。索引管理模块34调用与索引标识对应的倒排索引中间件,该倒排索引中间件根据第一用户特征访问该倒排索引中间件对应的至少一个倒排索引,获取第一数据集,并返回给子单元60。
可能地,倒排索引中间件根据第一用户特征访问该倒排索引中间件对应的至少一个倒排索引,获取第一数据集,包括:倒排索引中间件根据第一用户特征确定用于访问索引的目标关键词,通过目标关键词访问该倒排索引中间件对应的至少一个倒排索引,获取多个目标关键词对应的第一数据(如包含目标关键词的文章数据)。
可能地,子单元60发送给索引管理模块34的请求还可以包含如何确定目标关键词的方法。索引管理模块34的倒排索引中间件通过该方法,根据第一用户特征确定目标关键词。其中,该方法可以但不限于根据数据获取模块32对应的数据获取算法或对应的业务场景确定的。
不限于上述列举的情况,在具体实现中,子单元60发送给索引管理模块34的第一用户特征为可以直接作为目标关键词的用户特征。本发明实施例对此不作限定。
具体地,子单元60无需关注创建倒排索引和中间件,以及访问倒排和获取数据的具体过程。例如但不限于,对子单元60屏蔽索引管理模块34的内部流程。
需要说明的是,图6所示的每个中间件只用于访问与之对应的唯一一个倒排索引。例如但不限于,图6中的标签倒排中间件仅仅用于访问标签倒排。在具体实现中,中间件可以用于访问多个倒排索引,本发明实施例对此不作限定。
作为一种可选的实施方式,索引管理模块34可以根据不同的数据获取算法或其他用于访问索引的算法,完成解析用户特征,调用索引标识对应的中间件,由中间件根据解析的用户特征访问对应的倒排索引,获取多个第一数据的过程。数据获取算法的说明可参照上述图3的说明,此处不予赘述。
结合上述描述,举例说明一种子单元60获取第一数据集的过程。例如但不限于,子单元60所属的数据获取模块32为第一数据获取模块,第一数据获取模块用于获取相似人群的数据。子单元60对应的用户特征标识为A,索引标识为AA。子单元60可以将携带A的请求发给用户特征管理模块33,用户特征管理模块33查询内部的对应关系表,获取与A对应的第一用户特征(如表征喜欢乒乓球),并返回给子单元60。子单元60可以将携带AA、表征喜欢乒乓球的第一用户特征和如何确定目标关键词的方法的请求发给索引管理模块34。索引管理模块34确定AA对应的倒排索引中间件(对应的索引为球类运动倒排索引),该倒排索引中间件通过子单元60发送的如何确定目标关键词的方法(如喜欢的目标),根据表征喜欢乒乓球的第一用户特征得到目标关键词为乒乓球,查询球类运动倒排索引,获取乒乓球对应的多个第一数据(如包含乒乓球的文章、视频等)。
不限于上述列举的情况,在具体实现中,还可以是子单元60发送携带第一数据获取模块对应的业务类型,索引标识AA和第一用户特征给索引管理模块34。索引管理模块34调用对应的倒排索引中间件,该中间件通过内置的算法和规则,根据业务类型和第一用户特征确定目标关键词。本发明实施例对此不作限定。
不限于上述列举的情况,图6中的子单元60也可以是对应的数据获取模块32,由数据获取模块32直接和用户特征管理模块33和索引管理模块34交互。本发明实施例对此不作限定。
可以理解地,本发明实施例对子单元或数据获取模块对应的用户特征标识和索引标识的数量不作限定。可以根据对应的目标业务类型或数据获取算法,为不同数据获取模块32配置多个不同的用户特征标识和索引标识,以此实现数据获取过程中用户特征和索引的自定义,产品需求灵活可变。
子单元执行完获取第一数据集的过程后,需要通过过滤器管理模块35完成获取第二数据集的过程,接下来结合图7介绍过滤器管理模块35的架构示意图。
请参见图7,图7是本发明实施例提供的又一种数据获取架构示意图,该数据获取架构可以应用于图1所示的数据获取系统中的任意一个终端或服务器30,也可以应用于图3所示的数据获取装置。基于该数据获取架构,可以实现上述图5所示的步骤S42中的子步骤:获取第二数据集。
如图7所示,该数据获取架构可以包括主流程模块70、过滤算子集合模块71、数据模块72和过滤监控模块73、上述图3的数据获取模块32和配置管理模块36。
其中,上述图3的过滤器管理模块35可以包括以下至少一个模块:主流程模块70、过滤算子集合模块71、数据模块72和过滤监控模块73。
需要说明的是,过滤算子为上述过滤器管理模块35包含的过滤单元,在具体实现中,过滤单元常被称为过滤算子。
为了方便理解,本发明实施例以过滤单元为过滤算子为例进行说明。
具体地,为了统一管理所有的过滤规则,修改方便,本发明实施例将过滤规则抽象为过滤算子,并将其组件化,每个过滤算子为至少一种过滤规则的实现。同时,将过滤处理逻辑和其他处理逻辑解耦,过滤的相关操作都收敛到过滤器管理模块35,使其功能内聚,灵活扩展。
可以理解地,在具体实现中还可以按照分类等方式融合过滤规则,一个过滤算子可以为至少一类过滤规则的实现,以此减少过滤算子的使用次数,避免重复处理。具体地,过滤算子集合模块71包含多个过滤算子,每个过滤算子都有与之对应的过滤算子标识,通过该过滤算子标识即可调用对应的过滤算子。
具体地,数据模块72可以用于为过滤算子的初始化和执行过滤操作提供反馈数据,过滤算子集合模块71可以结合上述反馈数据构建不同过滤规则的过滤算子,也可以根据反馈数据判断如何进行过滤。
作为一种可选的实施方式,数据模块72包含的反馈数据可以但不限于为包含用户特征的用户画像、用户自定义或者国家规定需要封禁的数据特征和用户提供的负反馈数据等。例如但不限于,用户对于推荐的一篇文章设置为不感兴趣,选择的具体原因为过时,这样的一种主动反馈行为可以称之为一个负反馈数据。
作为一种可选的实施方式,数据模块72也可以包含内容画像这类的文本特征,用以协助过滤算子进行过滤。
具体地,主流程模块70可以通过过滤器控制器实现对过滤器算子集合模块71中所有过滤算子的统一管理,可以但不限于执行如下步骤:
S701:初始化过滤器。
具体地,此步骤对应上述图4的初始化过滤器的说明,即构建过滤规则和构建用于实现至少一种过滤规则的过滤算子,并使用过滤器标识唯一确定每个过滤算子。
通过过滤器控制器统一完成过滤算子的初始化操作。可以但不限于结合数据模块72的反馈数据,从去重、低质量、年龄倾向和敏感人群等角度去构建过滤规则。
S702:过滤。
具体地,对于不同的业务类型,对应的数据获取模块32和数据获取算法不一样。数据获取模块32配置的过滤器标识可以是根据数据获取模块对应的数据获取算法确定的标识。过滤器管理模块35可以调用过滤器标识对应的过滤算子进行过滤。
作为一种可选的实施方式,数据获取模块32中的子单元1可以发送携带过滤器标识的请求给过滤器管理模块35。过滤器管理模块35可以根据接收的过滤器标识调用过滤算子集合模块71中对应的过滤算子,同时结合数据模块72的反馈数据,对第一数据集进行过滤操作,将过滤后得到的第二数据集返回给子单元1。
不限于上述列举的情况,在具体实现中,数据获取模块32可以在所有子单元执行后,发送携带过滤器标识的请求给过滤器管理模块35。过滤器管理模块35可以根据接收的过滤器标识调用过滤算子集合模块71中对应的过滤算子,同时结合数据模块72的反馈数据,对所有子单元各自对应的第一数据集进行过滤操作,以此得到多个第二数据集,并将多个第二数据集返回给数据获取模块32。本发明实施例对此不作限定。
不限于上述列举的情况,和过滤器管理模块35交互的可以是数据获取模块32,也可以是数据获取模块32包含的子单元,本发明实施例对此不作限定。
不限于上述列举的情况,子单元或数据获取模块32可以自行调用过滤器管理模块35或通过配置管理模块调用过滤器管理模块35,由过滤器管理模块35完成过滤操作。本发明实施例对此不作限定。
可以理解地,本发明实施例对子单元或数据获取模块对应的过滤算子标识的数量不作限定。可以根据对应的目标业务类型或数据获取算法,为不同数据获取模块32配置多个不同的过滤算子标识,以此实现数据获取过程中过滤规则的自定义,产品需求灵活可变。
S703:释放资源。
具体地,主流程模块70通过过滤器控制器释放步骤S701和S702占用的资源,结束主流程操作。
作为一种可选的实施方式,在具体实现中,可以将步骤S701集成在函数接口BeforeFilter中,将步骤S702集成在函数接口DoFilter中,以及将步骤S703集成在函数接口AfterFilter中。数据获取模块32可以直接调用或通过配置管理模块36调用函数接口DoFilter来进行过滤操作。
具体地,数据获取模块32无需关注主流程模块70中步骤S701、S702和S703的具体实现过程。例如但不限于,对数据获取模块32屏蔽主流程模块70的内部流程。
在本发明实施例中,可以根据数据获取算法构建数据获取模块,并根据数据获取算法确定该数据获取模块对应的用户特征标识和索引标识。需改变输入数据时,可以无需修改数据获取模块的处理逻辑和对应的数据获取算法,仅修改数据获取模块对应的用户特征标识和索引标识。
本发明实施例解耦了传统数据获取模块实现的多个处理逻辑,功能划分更为清楚。由用户特征管理模块统一完成用户特征的处理,处理后的第一用户特征可通过用户特征标识唯一确定。需使用用户特征时可通过用户特征标识获取对应的第一用户特征,无需重复计算。索引管理模块统一完成构建和访问索引的过程,并通过索引标识标记索引。需访问索引时可通过索引标识访问对应的索引,无需重复构建索引。修改任意一个模块,可以无需修改其他模块,设计符合开闭原则,不易造成涟漪效应,代码复用率高。并且,新增数据获取模块时无需再根据输入数据设计一系列处理逻辑,只需明确实现的数据获取算法,并根据数据获取算法确定对应的用户特征标识和索引标识。新增数据获取模块开发周期短,效率高,迭代速度块,易于灵活扩展。
本发明实施例可以应用于任何包含数据获取过程的系统,如推荐系统、搜索系统等。应用场景较为广泛。
在上述图1所示的数据获取系统、图3所示的数据获取装置、图4-图7所示的数据获取架构的基础上,接下来介绍一种数据获取方法。
请参见图8,图8是本发明实施例提供的一种数据获取方法的流程示意图,该方法可以由图1所示的数据获取系统的任意一个终端或服务器30实现,也可以由图3所示的数据获取装置实现。该方法也可以基于上述图4-图7所示的任意一种数据获取架构实现,该方法包括但不限于如下步骤:
S801:确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取算法。
具体地,上述至少两个业务类型,即多个业务类型中每个业务类型对应至少一个数据获取算法,数据获取算法对应至少一个用户特征标识和至少一个索引标识。其中,数据获取算法可以参照上述图3的说明,此处不予赘述。
作为一种可选的实施方式,按照预设的对应关系表,多个业务类型中的每个业务类型均有预设对应的至少一个数据获取算法。根据该对应关系表,可以确定目标业务类型对应的至少一个目标数据获取算法。目标数据获取算法对应至少一个目标用户特征标识和至少一个目标索引标识。
不限于上述列举的根据预设的对应关系表确定目标数据获取算法。在具体实现中,还可以根据相关算法或模型计算数据获取算法和目标业务类型的匹配度,选择与目标业务类型匹配度最高的数据获取算法为目标数据获取算法。本发明实施例对此不作限定。
S802:获取至少一个目标用户特征标识各自对应的目标第一用户特征。
具体地,应用该方法的上述装置可以包括至少一个第一用户特征。第一用户特征包括根据至少一个用户特征处理得到的用于访问索引的特征,每个第一用户特征有唯一对应的用户特征标识。上述至少一个第一用户特征包括目标第一用户特征。
具体地,第一用户特征为类型或格式各不相同的原始用户特征(如上述图2的步骤S201所示的用户的基础属性和行为特征)经过处理后得到的类型和格式均统一,且能用用户特征标识唯一确定的用户特征。第一用户特征可用于后续访问倒排索引的过程。
S803:根据目标第一用户特征访问至少一个目标索引标识各自对应的索引,获取第一数据集。
具体地,每个索引标识对应至少一个索引。第一数据集包括多个第一数据。
作为一种可选的实施方式,在步骤S803之前,该方法还可以包括:根据不同的数据源建立各个类型的倒排索引来用于后续访问,并通过索引标识来确定建立的倒排索引。倒排索引的建立可以参照上述图2的步骤S203所示的描述,此处不予赘述。
作为一种可选的实施方式,步骤S803可以为以目标第一用户特征为目标关键词,访问至少一个目标索引标识各自对应的索引,获取目标关键词对应的至少一个第一数据。
倒排索引中的每一项都包括一个关键词和包含关键词的文件列表。可以以目标第一用户特征为用于查表的目标关键词,查询目标索引标识对应的至少一个倒排索引,获取倒排索引中对应该目标关键词的文件,如获取包含该目标关键词的一个文章为一个第一数据,从而获取目标关键词对应的至少一个第一数据。
不限于上述列举的情况,在具体实现中,可以通过专用于确定目标关键词的算法确定目标关键词,或通过数据获取算法,根据目标第一用户特征确定目标关键词。本发明实施例对此不作限定。
作为一种可选的实施方式,在步骤S803之后,该方法还可以包括步骤S804和步骤S805,详细说明如下所述:
S804:通过至少一个目标过滤器标识各自对应的过滤规则,对第一数据集进行过滤,得到第二数据集。
具体地,第二数据集包括多个第二数据。
具体地,应用该方法的上述装置还可以包括至少一个过滤单元。每个过滤单元用于实现至少一种过滤规则,每个过滤单元有唯一对应的过滤器标识。数据获取算法还对应至少一个过滤器标识,目标数据获取算法还对应至少一个目标过滤器标识。
作为一种可选的实施方式,在步骤S804之前,该方法还可以包括:构建过滤规则,并将至少一种过滤规则抽象为一个过滤单元,同时用过滤器标识唯一确定过滤单元。其中,每个过滤规则只构建一次,后续需要过滤时,无需重复计算,可直接通过过滤器标识对应的过滤单元完成过滤操作。
S805:通过至少一种排序算法,对多个第二数据进行打分,并根据打分结果进行排序。
具体地,本发明实施例解耦了传统数据获取架构中的打分排序的处理逻辑和其他处理逻辑,功能划分更为清晰,便于灵活扩展。
作为一种可选的实施方式,上述步骤S801之前,该方法还可以包括:根据目标业务类型调整以下至少一项:至少一个目标数据获取算法各自对应的至少一个目标用户特征标识、至少一个目标索引标识或至少一个目标过滤器标识。
具体地,不同的数据获取算法应用于不同的业务类型场景。若目标业务类型有所变化或需修改或新增输入数据时,无需重新构建或修改数据获取过程的处理逻辑,可以根据目标业务类型调整目标数据获取算法对应的目标用户特征标识、目标索引标识和目标过滤器标识。从而实现数据获取过程中用户特征、索引和过滤规则的个性化配置,减少维护成本和开发量,产品需求灵活可变,易于扩展。
作为一种可选的实施方式,上述步骤S804之后,该方法还可以包括:在获取的第二数据集的数据量小于目标数据获取算法对应的目标数据量的情况下,增加至少一个目标索引标识。根据目标第一用户特征访问增加的目标索引标识对应的索引,获取第三数据集。
具体地,在获取的第二数据集小于目标数据量的情况下,可以新增目标索引标识,并访问新增的目标索引标识对应的索引,从而获取等于或大于目标数据量的数据集。新增输入数据(如需访问的索引)时,只需新增目标索引标识,无需对应修改其他处理逻辑,产品需求灵活可变,便于灵活扩展。
不限于上述列举的情况,在具体实现中,还可以修改索引标识,新增或修改目标用户特征标识和过滤器标识等,本发明实施例对此不作限定。
可以理解地,图8所示的数据获取可以由图3所示的数据获取装置实现。也可以基于上述图4-图7所示的任意一种数据获取架构实现。所以详细描述可参照上述图3-图7的描述,此处不予赘述。
在上述方法中,应用该方法的数据获取装置可以包括数据索引单元和过滤单元。每个数据索引单元有唯一对应的索引标识,每个数据索引单元对应至少一个索引。每个过滤单元有唯一对应的过滤器标识,每个过滤单元用于实现至少一种过滤规则。本发明实施例将类型或格式各不相同的原始用户特征转换为能用用户特征标识唯一确定,且能访问索引的第一用户特征,解决了用户特征异构的问题。本发明实施例引入格式类型统一,且能用索引标识唯一确定的数据索引单元(如中间件),通过不同的数据索引单元访问不同数据源的索引,解决了索引异构的问题。本发明实施例引入格式类型统一,且能用过滤器标识唯一确定的过滤单元(如过滤算子)。每个过滤单元是至少一种过滤规则的实现,便于统一管理过滤规则。本发明实施例实现了统一的用户特征管理、索引管理和过滤管理,从而降低维护成本,便于扩展,产品需求灵活可变。
上述图8介绍了数据获取方法,为了便于更好地实施本发明实施例的上述方案,相应地,下面介绍了本发明实施例提供的又一种数据获取装置。
请参见图9,图9是本发明实施例提供的又一种数据获取装置的结构示意图,该数据获取装置90可以包括:至少一个处理器901,例如CPU,至少一个网络接口904,存储器902,至少一个通信总线903。其中,通信总线903用于实现这些组件之间的连接通信。网络接口904可选的可以包括标准的有线接口、无线接口(如WIFI接口、蓝牙接口),通过网络接口904可以与终端设备建立通信连接。存储器902可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。如图9所示,作为一种计算机存储介质的存储器902中可以包括操作系统、网络通信模块以及程序指令。
需要说明的是,网络接口904可以连接获取器、发射器或其他通信模块,其他通信模块可以包括但不限于WiFi模块、蓝牙模块等,可以理解,本发明实施例中数据获取装置90也可以包括获取器、发射器和其他通信模块等。
处理器901可以用于调用存储器902中存储的程序指令,可以执行如图8所示实施例提供的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (15)
1.一种数据获取装置,其特征在于,所述装置包括确定模块、至少一个数据获取模块、用户特征管理模块和索引管理模块;不同所述数据获取模块对应不同的数据获取算法,所述数据获取模块对应至少一个用户特征标识和至少一个索引标识,所述用户特征标识和所述索引标识为根据所述数据获取模块对应的数据获取算法确定的标识;其中:
所述确定模块,用于确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取模块;其中,所述至少两个业务类型中每个业务类型对应至少一个数据获取模块,所述目标数据获取模块对应至少一个目标用户特征标识和至少一个目标索引标识;
所述用户特征管理模块,用于获取所述至少一个目标用户特征标识各自对应的目标第一用户特征;其中,所述用户特征管理模块包括至少一个第一用户特征,所述第一用户特征包括根据至少一个用户特征处理得到的用于访问索引的特征,每个第一用户特征有唯一对应的所述用户特征标识,所述至少一个第一用户特征包括所述目标第一用户特征;
所述索引管理模块,用于根据所述目标第一用户特征访问所述至少一个目标索引标识各自对应的索引,获取第一数据集;其中,每个索引标识对应至少一个索引,所述第一数据集包括多个第一数据。
2.如权利要求1所述的装置,其特征在于,所述数据获取模块还对应至少一个过滤器标识,所述至少一个过滤器标识为根据所述数据获取模块对应的数据获取算法确定的标识,所述目标数据获取模块还对应至少一个目标过滤器标识;
所述装置还包括:
过滤器管理模块,用于确定所述至少一个目标过滤器标识各自对应的目标过滤单元,通过所述目标过滤单元对所述第一数据集进行过滤,得到第二数据集;其中,所述第二数据集包括多个第二数据,所述过滤器管理模块包括至少一个过滤单元,每个所述过滤单元用于实现至少一种过滤规则,每个所述过滤单元有唯一对应的所述过滤器标识。
3.如权利要求2所述的装置,其特征在于,所述装置还包括:
打分排序模块,用于通过至少一种排序算法,对所述多个第二数据进行打分,并根据打分结果进行排序。
4.如权利要求2或3所述的装置,其特征在于,所述装置还包括:
配置管理模块,用于根据所述目标业务类型调整以下至少一项:所述至少一个目标数据获取模块各自对应的所述至少一个目标用户特征标识、所述至少一个目标索引标识或所述至少一个目标过滤器标识。
5.如权利要求4所述的装置,其特征在于,所述配置管理模块,具体用于在获取的所述第二数据集的数据量小于所述目标数据获取模块的目标数据量的情况下,增加至少一个所述目标索引标识;
所述索引管理模块,还用于根据所述目标第一用户特征访问增加的所述目标索引标识对应的索引,获取第三数据集。
6.如权利要求1-5任一项所述的装置,其特征在于,所述索引管理模块包括至少一个数据索引单元,每个所述数据索引单元有唯一对应的所述索引标识,每个所述数据索引单元对应至少一个索引;
所述索引管理模块,具体用于确定所述至少一个目标索引标识各自对应的目标数据索引单元,通过所述目标数据索引单元根据所述目标第一用户特征访问所述目标数据索引单元对应的至少一个索引,获取所述第一数据集。
7.如权利要求6所述的装置,其特征在于,所述目标数据索引单元,用于以所述目标第一用户特征为目标关键词,访问所述目标数据索引单元对应的至少一个索引,获取所述目标关键词对应的至少一个所述第一数据。
8.一种数据获取方法,其特征在于,包括:
确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取算法;其中,所述至少两个业务类型中每个业务类型对应至少一个数据获取算法,所述数据获取算法对应至少一个用户特征标识和至少一个索引标识,所述目标数据获取算法对应至少一个目标用户特征标识和至少一个目标索引标识;
获取所述至少一个目标用户特征标识各自对应的目标第一用户特征;其中,所述装置包括至少一个第一用户特征,所述第一用户特征包括根据至少一个用户特征处理得到的用于访问索引的特征,每个第一用户特征有唯一对应的所述用户特征标识,所述至少一个第一用户特征包括所述目标第一用户特征;
根据所述目标第一用户特征访问所述至少一个目标索引标识各自对应的索引,获取第一数据集;其中,每个索引标识对应至少一个索引,所述第一数据集包括多个第一数据。
9.如权利要求8所述的方法,其特征在于,所述数据获取算法还对应至少一个过滤器标识,每个所述过滤器标识对应至少一种过滤规则,所述目标数据获取算法还对应至少一个目标过滤器标识;
所述根据所述目标第一用户特征访问所述至少一个目标索引标识各自对应的索引,获取第一数据集之后,所述方法还包括:
通过所述至少一个目标过滤器标识各自对应的过滤规则,对所述第一数据集进行过滤,得到第二数据集;所述第二数据集包括多个第二数据。
10.如权利要求9所述的方法,其特征在于,所述通过所述至少一个目标过滤器标识各自对应的过滤规则,对所述第一数据集进行过滤,得到第二数据集之后,所述方法还包括:
通过至少一种排序算法,对所述多个第二数据进行打分,并根据打分结果进行排序。
11.如权利要求9或10所述的方法,其特征在于,所述确定至少两个业务类型中的目标业务类型对应的至少一个目标数据获取算法之前,所述方法还包括:
根据所述目标业务类型调整以下至少一项:所述至少一个目标数据获取算法各自对应的所述至少一个目标用户特征标识、所述至少一个目标索引标识或所述至少一个目标过滤器标识。
12.如权利要求11所述的方法,其特征在于,所述通过所述至少一个目标过滤器标识各自对应的过滤规则,对所述第一数据集进行过滤,得到第二数据集之后,所述方法还包括:
在获取的所述第二数据集的数据量小于所述目标数据获取算法对应的目标数据量的情况下,增加至少一个所述目标索引标识;
根据所述目标第一用户特征访问增加的所述目标索引标识对应的索引,获取第三数据集。
13.如权利要求8-12任一项所述的方法,其特征在于,所述根据所述目标第一用户特征访问所述至少一个目标索引标识各自对应的索引,获取第一数据集,包括:
以所述目标第一用户特征为目标关键词,访问所述至少一个目标索引标识各自对应的索引,获取所述目标关键词对应的至少一个所述第一数据。
14.一种数据获取装置,其特征在于,包括处理器、存储器以及通信接口;
所述处理器与所述存储器、所述通信接口相连,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求8-13任一项所述的方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,可实现如权利要求8-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911126036.3A CN112818195B (zh) | 2019-11-15 | 2019-11-15 | 数据获取方法、装置、系统及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911126036.3A CN112818195B (zh) | 2019-11-15 | 2019-11-15 | 数据获取方法、装置、系统及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818195A true CN112818195A (zh) | 2021-05-18 |
CN112818195B CN112818195B (zh) | 2023-12-26 |
Family
ID=75852211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911126036.3A Active CN112818195B (zh) | 2019-11-15 | 2019-11-15 | 数据获取方法、装置、系统及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818195B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222300A (zh) * | 2021-06-15 | 2021-08-06 | 中国银行股份有限公司 | 产品改造数据的处理方法、装置、可读介质以及设备 |
CN114528111A (zh) * | 2022-02-17 | 2022-05-24 | 北京有竹居网络技术有限公司 | 用于数据召回的fpga芯片和数据召回方法 |
WO2023056841A1 (zh) * | 2021-10-08 | 2023-04-13 | 北京字节跳动网络技术有限公司 | 一种数据服务方法、装置及相关产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095223A (zh) * | 2014-04-25 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 文本分类方法及服务器 |
CN109582847A (zh) * | 2018-11-23 | 2019-04-05 | 咪咕视讯科技有限公司 | 一种信息处理方法及装置、存储介质 |
CN109871354A (zh) * | 2019-01-16 | 2019-06-11 | 平安科技(深圳)有限公司 | 一种文件处理的方法及装置 |
CN110347722A (zh) * | 2019-07-11 | 2019-10-18 | 软通智慧科技有限公司 | 基于HBase的数据获取方法、装置、设备及存储介质 |
-
2019
- 2019-11-15 CN CN201911126036.3A patent/CN112818195B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095223A (zh) * | 2014-04-25 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 文本分类方法及服务器 |
CN109582847A (zh) * | 2018-11-23 | 2019-04-05 | 咪咕视讯科技有限公司 | 一种信息处理方法及装置、存储介质 |
CN109871354A (zh) * | 2019-01-16 | 2019-06-11 | 平安科技(深圳)有限公司 | 一种文件处理的方法及装置 |
CN110347722A (zh) * | 2019-07-11 | 2019-10-18 | 软通智慧科技有限公司 | 基于HBase的数据获取方法、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222300A (zh) * | 2021-06-15 | 2021-08-06 | 中国银行股份有限公司 | 产品改造数据的处理方法、装置、可读介质以及设备 |
WO2023056841A1 (zh) * | 2021-10-08 | 2023-04-13 | 北京字节跳动网络技术有限公司 | 一种数据服务方法、装置及相关产品 |
CN114528111A (zh) * | 2022-02-17 | 2022-05-24 | 北京有竹居网络技术有限公司 | 用于数据召回的fpga芯片和数据召回方法 |
WO2023155758A1 (zh) * | 2022-02-17 | 2023-08-24 | 北京有竹居网络技术有限公司 | 用于数据召回的fpga芯片和数据召回方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112818195B (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782965B (zh) | 意图推荐方法、装置、设备及存储介质 | |
US9704185B2 (en) | Product recommendation using sentiment and semantic analysis | |
US9552555B1 (en) | Methods, systems, and media for recommending content items based on topics | |
CN112818195B (zh) | 数据获取方法、装置、系统及计算机存储介质 | |
WO2013170344A1 (en) | Method and system relating to sentiment analysis of electronic content | |
WO2009009192A2 (en) | Adaptive archive data management | |
CN111339406B (zh) | 个性化推荐方法、装置、设备及存储介质 | |
WO2023231542A1 (zh) | 表示信息的确定方法、装置、设备及存储介质 | |
CN111159563A (zh) | 用户兴趣点信息的确定方法、装置、设备及存储介质 | |
WO2022165168A1 (en) | Configuring an instance of a software program using machine learning | |
CN114265981A (zh) | 推荐词确定方法、装置、设备及存储介质 | |
CN116962516A (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN116186197A (zh) | 话题推荐方法、装置、电子设备及存储介质 | |
US11494381B1 (en) | Ingestion and processing of both cloud-based and non-cloud-based data by a data intake and query system | |
US20160379283A1 (en) | Analysis of social data to match suppliers to users | |
CN112836126A (zh) | 基于知识图谱的推荐方法、装置、电子设备及存储介质 | |
Coelho et al. | Semantic similarity for mobile application recommendation under scarce user data | |
US20170270195A1 (en) | Providing token-based classification of device information | |
US20140244741A1 (en) | Computer-Implemented System And Method For Context-Based APP Searching And APP Use Insights | |
CN110347922A (zh) | 基于相似度的推荐方法、装置、设备和存储介质 | |
CN110569447A (zh) | 一种网络资源的推荐方法、装置及存储介质 | |
CN115827978A (zh) | 一种信息推荐方法、装置、设备及计算机可读存储介质 | |
US20200026769A1 (en) | Present Controlled Heterogeneous Digital Content to Users | |
KR20140135100A (ko) | 시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법 | |
US11842285B2 (en) | Graph database implemented knowledge mesh |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40048369 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |