CN110781354B - 一种对象选择方法、装置、系统及计算设备 - Google Patents

一种对象选择方法、装置、系统及计算设备 Download PDF

Info

Publication number
CN110781354B
CN110781354B CN201911017761.7A CN201911017761A CN110781354B CN 110781354 B CN110781354 B CN 110781354B CN 201911017761 A CN201911017761 A CN 201911017761A CN 110781354 B CN110781354 B CN 110781354B
Authority
CN
China
Prior art keywords
candidate
candidate subset
target
subset
constraint
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
Application number
CN201911017761.7A
Other languages
English (en)
Other versions
CN110781354A (zh
Inventor
蔡建山
易勋
郑勃举
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Cheerbright Technologies Co Ltd
Original Assignee
Beijing Cheerbright Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Cheerbright Technologies Co Ltd filed Critical Beijing Cheerbright Technologies Co Ltd
Priority to CN201911017761.7A priority Critical patent/CN110781354B/zh
Publication of CN110781354A publication Critical patent/CN110781354A/zh
Application granted granted Critical
Publication of CN110781354B publication Critical patent/CN110781354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种对象选择方法,用于在候选集合中选择目标对象,包括:生成第一候选子集合,第一候选子集合包括候选集合中未被选为目标对象的对象;获取待满足的优先级最高的约束条件;从第一候选子集合中得到第二候选子集合,第二候选子集合包括第一候选子集合中满足所获取的约束条件的对象;将第二候选子集合作为第一候选子集合;重复上述获取约束条件、得到第二候选子集合、以及将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者第一候选子集合中不存在满足约束条件的对象为止;以及从第一候选子集合中选择目标对象。本发明实施例还公开了相应的对象选择装置、系统、计算设备及存储介质。

Description

一种对象选择方法、装置、系统及计算设备
技术领域
本发明涉及数据处理领域,尤其涉及一种对象选择方法、装置、系统及计算设备。
背景技术
随着互联网的迅速发展,互联网上的内容爆发式增长。内容提供商可以通过互联网向用户提供用户感兴趣的内容,这些内容可以是例如商品、文章等等之类的对象。
通常采用推荐系统来向用户提供内容。当推荐系统根据用户的基本信息、历史行为等等为用户准备好一系列对象之后,还需要对这些对象进行进一步选择,以提高用户体验,满足用户的多样化需求。以推荐文章为例,用户每次刷新,推荐系统都会提供给用户一批新的文章,这些文章在与用户高度相关的同时,还会保证在各种维度(作者、样式、分类等)上的多样性。
目前,通常采用完全遍历的方式来选择对象。这种方式需要对候选集合进行n(n为需要返回的对象个数)次遍历。每次遍历时,均判断当前候选对象是否满足多个约束条件,不满足则继续判断下一个候选对象,若满足则添加到要返回的对象队列末尾,然后重新开始下一次遍历,直至对象队列长度等于n。显然地,这种方式需要多次遍历候选集合,效率低下,增加了系统平均响应时间。特别在面向用户大规模实时访问的在线系统中,用户体验会明显降低。
因此,期望提供一种更为先进的对象选择方案。
发明内容
为此,本发明实施例提供一种对象选择方法、装置、系统及计算设备,以力图解决或至少缓解上面存在的问题。
根据本发明实施例的一个方面,提供了一种对象选择方法,用于在候选集合中选择目标对象,候选集合包括多个对象,该方法包括:生成第一候选子集合,第一候选子集合包括候选集合中未被选为目标对象的对象;获取待满足的、优先级最高的约束条件;从第一候选子集合中得到第二候选子集合,第二候选子集合包括第一候选子集合中满足所获取的约束条件的对象;将第二候选子集合作为第一候选子集合;重复上述获取约束条件、从第一候选子集合中得到第二候选子集合、以及将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者第一候选子集合中不存在满足约束条件的对象为止;以及从第一候选子集合中选择目标对象。
可选地,在根据本发明实施例的方法中,在从第一候选子集合中选择目标对象的步骤之后,还包括:将所选择的目标对象添加至目标集合的末尾,目标集合包括多个按选择顺序排列的目标对象。
可选地,在根据本发明实施例的方法中,对象具有多个属性,约束条件包括与目标对象的各个属性相关的第一类约束条件和/或第二类约束条件,第一类约束条件指示具有相关属性的目标对象的数量不允许超过相应第一约束数量,第二类约束条件指示具有相关属性的目标对象的间隔不允许小于相应第二约束间隔。
可选地,在根据本发明实施例的方法中,还包括:为候选集合创建反向倒排索引;以及从第一候选子集合中得到第二候选子集合的步骤包括:查询与约束条件相关的属性对应的反向倒排索引;获取属性对应的反向倒排索引与第一候选子集合的交集,作为第二候选子集合。
可选地,在根据本发明实施例的方法中,对象具有对应的相关性分数,从第一候选子集合中选择目标对象的步骤包括:选择第一候选子集合中相关性分数最高的对象作为目标对象。
可选地,在根据本发明实施例的方法中,在从第一候选子集合中选择目标对象的步骤之后,还包括:基于所选择的目标对象,更新约束条件。
可选地,在根据本发明实施例的方法中,基于所选择的目标对象,更新约束条件的步骤包括:如果当前所选择的目标对象具有新增的属性,则创建与该新增的属性相关的约束条件;和/或如果当前所选择的目标对象具有重复的属性,则更新与该重复的属性相关的约束条件。
可选地,在根据本发明实施例的方法中,创建与该新增的属性相关的约束条件的步骤包括:创建与该新增的属性相关的第一类约束条件,并在该相关的第一类约束条件中记录目标集合中具有该新增的属性的目标对象的数量;和/或创建与该新增的属性相关的第二类约束条件,并在该相关的第二类约束条件中记录具有该新增的属性的、当前所选择的目标对象。
可选地,在根据本发明实施例的方法中,创建与该重复的属性相关的约束条件的步骤包括:更新与该重复的属性相关的第一类约束条件所记录的具有该重复的属性的目标对象的数量;和/或更新与该重复的属性相关的第二类约束条件所记录的具有该重复的属性的目标对象。
可选地,在根据本发明实施例的方法中,还包括:重复对象选择方法,直至目标对象的数量达到预定数量、或者候选集合不包括未被选为目标对象的对象为止。
可选地,在根据本发明实施例的方法中,与属性相关的第一类约束条件记录有目标集合中具有该属性的目标对象的数量,如果第一类约束条件所记录的目标对象的数量达到或者超过相应的第一约束数量,则第一类约束条件是待满足的。
可选地,在根据本发明实施例的方法中,与属性相关的第二类约束条件记录有在目标集合中具有该属性的目标对象,如果第二类约束条件所记录的目标对象与目标集合中末尾的目标对象的间隔小于相应的第二约束间隔,则第二类约束条件是待满足的。
根据本发明实施例的另一个方面,提供了一种对象选择装置,包括第一子集生成模块、约束条件获取模块、第二子集生成模块和目标对象选择模块,其中第一子集生成模块适于基于候选集合生成第一候选子集合,候选集合包括多个对象,第一候选子集合包括候选集合中未被选为目标对象的对象;约束条件获取模块适于获取待满足的、优先级最高的约束条件;第二子集生成模块,适于从第一候选子集合中得到第二候选子集合,第二候选子集合包括第一候选子集合中满足所获取的约束条件的对象;将第二候选子集合作为第一候选子集合;第一子集生成模块、约束条件获取模块和第二子集生成模块还适于重复执行上述获取约束条件、从第一候选子集合中得到第二候选子集合、以及将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者第一候选子集合中不存在满足约束条件的对象为止;目标对象选择模块适于从第一候选子集合中选择目标对象。
根据本发明实施例的另一个方面,提供了一种对象选择系统,包括:处理前端,适于获取于用户相关的候选集合,候选集合包括多个与用户相关的对象;以及根据本发明实施例的对象选择装置,适于从候选集合选择目标对象,以得到目标集合返回至处理前端。
根据本发明实施例的另一个方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,该一个或多个程序包括用于执行根据本发明实施例的对象选择方法的指令。
根据本发明实施例的还有一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当被计算设备执行时,使得计算设备执行根据本发明实施例的对象选择方法。
根据本发明实施例的对象选择方案,通过在多个约束条件下选择满足约束条件的目标对象,保证了目标对象在多维度上的多样性,提高了用户体验。其中,当第一候选子集合中不存在满足当前获取的约束条件时,可以对约束条件降级,放宽某些约束,从满足先前获取的约束条件的第一候选子集合中寻找目标对象。此时找到的目标对象已经尽量满足约束条件,也具有在各种维度上的多样性。
进一步地,通过候选集合与反向倒排索引求交集的方式,可以快速找到满足约束条件的目标集合,有效降低了时间复杂度,有效提高寻找目标对象的性能。其中,反向倒排索引只需创建一次,在后面循环判断时多次重复使用,可以提升寻找下一个满足约束条件的目标对象的效率。
进一步地,每选择出一个目标对象,立即增量更新约束条件,避免重新从头判断约束条件是否满足,同样也提升了寻找下一个满足约束条件的目标对象的效率。
因此,根据本发明实施例的对象选择方案,可以降低系统平均响应时间、选择最可能满足约束条件、保证维度多样性的目标对象,从性能和效果两个方面均有效提升了用户体验。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的对象选择系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;
图3示出了根据本发明一个实施例的对象选择方法300的流程图;
图4示出了根据本发明一个实施例的对象属性的示意图;
图5示出了根据本发明一个实施例的反向倒排索引的示意图;
图6示出了根据本发明一个实施例的对象选择方法600的流程图;以及
图7示出了根据本发明一个实施例的对象选择装置700的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的对象选择系统100的示意图。如图1所示,对象选择系统100包括处理前端120和对象选择装置700,在其他实施方式中,对象选择系统100可以包括不同的和/或附加的模块。
这里的对象指的是内容提供商通过网络提供的内容,例如可以是文章、商品等等。本发明对对象的具体内容不做限制。
处理前端120和对象选择装置700通过网络140相耦接。网络140可以包括有线和/或无线通信路径,诸如但不仅限于,因特网、局域网、卫星路径、光纤路径、电缆路径,或任何其他合适的有线或无线通信路径或这样的路径的组合。
其中,处理前端120可以是任何需要进行进一步选择对象的请求方。例如,在一种实施方式中,处理前端120可以是一个推荐系统的一部分。推荐系统可以先粗略地获取包括大量对象的候选集合,再将包括该候选集合的对象选择请求发送至对象选择装置700,以便对象选择装置700在满足约束条件的同时,从候选集合中进一步选择出目标对象,并将包括多个目标对象的目标集合返回给推荐系统。
在推荐系统里,约束条件一般指下列三类约束条件:
(1)打散约束条件,即同一属性的对象至少间隔k个,其中k=1时表示同一属性的对象不连续出现。
(2)量控约束条件,即同一属性的对象的数量不超过t个。
(3)相关性约束条件,即目标对象的相关性分数总和最高。
其中,属性为对象的属性,例如作者、分类等等。相关性分数为对象与用户的相关度,通常可以通过各种模型计算得到。本发明对相关性分数的计算方式不做限制,对属性的具体内容也不做限制。
本发明不受限于处理前端120的具体形式。对象选择装置700可以以各种方式接收处理前端120的请求。例如对象选择装置700可以提供具有预定格式定义的应用程序接口(API),以方便处理前端120根据定义来组织对象选择请求,并发送到对象选择装置700。
根据本发明的实施方式,上述对象选择系统100中的各部件均可以通过如下所述的计算设备200来实现。
图2示出了根据本发明一个实施例的计算设备200的示意图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理器,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备200可以实现为服务器,例如数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备200也可以实现为小尺寸便携(或者移动)电子设备的至少一部分。
在根据本发明的实施例中,计算设备200可以实现为对象选择装置700,并被配置为执行根据本发明实施例的对象选择方法300、600。其中,计算设备200的应用222中包含执行根据本发明实施例的对象选择方法300、600的多条指令,而程序数据224还可以存储对象选择系统100的配置数据等内容。
图3示出了根据本发明一个实施例的对象选择方法300的流程图。该对象选择方法300用于在候选集合中选择目标对象,并将所选择的目标对象添加至目标集合末尾。候选集合包括多个对象,目标集合包括多个按选择顺序排列的目标对象。该对象选择方法300可以在对象选择装置700中执行。
如图3所示,对象选择方法300始于步骤S310。在步骤S310中,接收候选集合,该候选集合包括多个对象,每个对象具有对应的相关性分数。相关性分数通常用于表征与用户的相关度。此外,每个对象还具有多个属性,属性用于表征对象的特性。
如图4所示,文章410具有以下属性(通常以键值对的形式表现):
作者:会飞的Trubo;类型:视频;
标签:丰田、户外;分类:试驾;业务归属:车家号。
文章420具有以下属性:
作者:梁海文;类型:图文;
标签:SUV、导购;分类:新车上市;业务归属:原创。
文章430具有以下属性:
作者:网上车市;类型:图片;
标签:MINI、SUV;分类:谍照;业务归属:车型库。
而后,在步骤S320中,基于候选集合,生成第一候选子集合。第一候选子集合包括候选集合中未被选为目标对象的对象。例如,C1=C-L,C1为第一候选子集合,C为候选集合,L为目标集合。
而后,在步骤S330中,获取待满足的约束条件中优先级最高的约束条件。可以理解地,约束条件可以包括与目标集合中目标对象的各个属性相关的第一类约束条件和/或第二类约束条件。并且,每个约束条件都具有预先配置好的优先级。
第一类约束条件为前文所描述的量控约束条件,与某个属性相关的第一类约束条件指示目标集合中具有该属性的目标对象的数量不允许超过相应的第一约束数量。第二类约束条件为前文所描述的打散约束条件,与某个属性相关的第二类约束条件指示目标集合中具有该属性的目标对象的间隔不允许小于相应的第二约束间隔。其中,不同属性对应的第一约束数量可以不同,不同属性对应的第二约束间隔可以不同。
在一些实施例中,与某属性相关的第一类约束条件记录有目标集合中具有该属性的目标对象的数量。如果第一类约束条件所记录的在目标集合中具有该属性的目标对象的数量达到或者超过相应的第一约束数量,则认为该第一类约束条件是待满足的。
与某属性相关的第二类约束条件记录有在目标集合中具有该属性的目标对象(通常是具有该属性的目标对象中排列顺序为最后的一个目标对象)。如果第二类约束条件所记录的目标对象与目标集合中排列顺序为最后(即末尾的)的目标对象的间隔小于相应的第二约束间隔,则认为该第二类约束条件是待满足的。应当指出,目标集合中一个对象与紧接排列在其后的一个对象之间的间隔为0。
如果不存在待满足的约束条件,可以直接进入下述步骤S360。如果获取到待满足的约束条件,则在步骤S340中,基于所获取的待满足的约束条件,从第一候选子集合中得到第二候选子集合。第二候选子集合包括第一候选子集合中满足所获取的约束条件的对象。
在一些实施例中,对象选择方法300还可以包括步骤:为候选集合创建反向倒排索引。即,为候选集合中目标对象的各个属性创建其对应的反向倒排索引。下面结合图5说明反向倒排索引的概念。
如图5所示,item_i表示一篇文章,xi表示文章的属性,例如作者、标签、分类和样式等等。item_1具有属性x1、x2、x3,item_2具有属性x1、x3,item_3具有属性x3、x4、x5,item_4具有属性x2、x5,item_5没有属性。x1、x2、x3、x4、x5各自的反向倒排索引如图3右侧所示。也就是说,某属性对应的反向倒排索引以该属性为键,值是不包含该属性的对象列表。
在创建反向倒排索引之后,可以基于反向倒排索引来从第一候选子集合中得到第二候选子集合。具体地,确定与所获取的待满足的约束条件相关的属性,查询该属性对应的反向倒排索引,将该属性对应的反向倒排索引与第一候选子集合的交集,作为第二候选子集合C2。在一些实施例中,属性对应的反向倒排索引和第一候选子集合均可以是有序的,这样有助于快速计算交集。反向倒排索引可以按照对象标识或者大小或者时间戳等排序,第一候选子集合可以按照相关性分数排序。本发明对具体的排序方式不做限制。
如果第一候选子集合中不存在满足所获取的约束条件的对象(即第二候选子集合为空),则可以直接进入下述步骤S360。
如果第一候选子集合存在满足所获取的约束条件的对象,那么可以得到不为空的第二候选子集合,那么接着可以在步骤S350中,将第二候选子集合作为第一候选子集合,也就是令C1=C2
对当前所获取到的约束条件进行满足之后,当前所获取到的约束条件即为已满足的约束条件,接下来可以重复上述步骤S330获取待满足的约束条件中优先级最高的约束条件、上述步骤S340基于所获取的待满足的约束条件,从第一候选子集合中得到第二候选子集合、上述步骤S350将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者第一候选子集合中不存在满足获取到的约束条件的对象为止。如前文所描述地,如果不存在待满足的约束条件、或者第一候选子集合中不存在满足获取到的约束条件的对象,则可以直接进入下述步骤S360。
在步骤S360中,可以从当前的第一候选子集合中选择目标对象。具体地,可以选择当前的第一候选子集合中相关性分数最高的对象作为目标对象。本领域技术人员可以理解,当第二候选子集合不为空时,此时的第一候选子集合为满足了本次获取到的约束条件的集合。当第二候选子集合为空时,此时的第一候选子集合为满足了前一次获取到的约束条件的集合。
接着,在步骤S370中,将所选择的目标对象添加至目标集合的末尾。这样,就完成了一个目标对象的选择。
在选择了一个目标对象并添加至目标集合末尾之后,根据本发明的实施方式,还可以在步骤S380中,基于当前所选择的目标对象(即被添加至目标集合末尾的目标对象),更新约束条件,以便下一次选择目标对象时使用。
具体地,判断当前所选择的目标对象是否具有新增的属性,新增的属性指的是目标集合中除去当前所选择的目标对象之外的其他目标对象不具有的属性。如果当前所选择的目标对象具有新增的属性,则创建与该新增的属性相关的约束条件。
在一些实施例中,可以创建与该新增的属性相关的第一类约束条件,并在该相关的第一类约束条件中记录目标集合中具有该新增的属性的目标对象的数量。可以理解地,具有该新增的属性的目标对象的数量为1。
还可以创建与该新增的属性相关的第二类约束条件,并在该相关的第二类约束条件中记录具有该新增的属性的、当前所选择的目标对象。
具体地,还可以判断当前所选择的目标对象是否具有重复的属性,重复的属性指的是目标集合中除去当前所选择的目标对象之外的其他目标对象也具有的属性。如果当前所选择的目标对象具有重复的属性,则更新与该重复的属性相关的约束条件。
在一些实施例中,可以更新与该重复的属性相关的第一类约束条件,也就是更新该第一类约束条件所记录的具有该重复的属性的目标对象的数量。可以理解地,可以将具有该新增的属性的目标对象的数量加1。
还可以更新与该重复的属性相关的第二类约束条件,也就是更新该第一类约束条件所记录的具有该重复的属性的目标对象。可以理解地,可以将所记录的具有该重复的属性的目标对象替换为当前所选择的对象。
更新约束条件之后,还可以重复上述步骤S320~S380来进行后续目标对象的选择,直至目标集合中目标对象的数量达到预定数量、或者候选集合不包括未被选为目标对象的对象为止。
下面结合图6进一步说明本发明的对象选择方法。
图6示出了根据本发明一个实施例的对象选择方法600的流程图。对象选择方法600需要从候选集合C中选择n个目标对象,这n个目标对象按选择顺序排列构成目标集合L。如图6所示,对象选择方法600始于步骤S610。
在步骤S610中,初始化第一类约束条件集合O1和第二类约束条件集合O2。可以理解地,如果目标集合L为空,则第一类约束条件集合O1和第二类约束条件集合O2均为空。如果目标集合L不为空,则第一类约束条件集合O1包括与目标集合L中目标对象的各个属性相关的第一类约束条件,第二类约束条件集合O2包括与目标集合L中目标对象的各个属性相关的第二类约束条件。
接着在步骤S620中,为候选集合C创建反向倒排索引,也就是说,为候选集合C中目标对象的各个属性x_i创建其对应的反向倒排索引Xi
接着在步骤S630中,判断当前的目标集合L中目标对象的数量是否达到预定数量n。如果达到,则结束。如果没有达到,则在步骤S640中,生成第一候选子集合C1。C1=C-L,C1为第一候选子集合,C为候选集合,L为目标集合。
接着在步骤S650中,判断第一候选子集合C1是否为空。如果为空,表示表示候选集合C中不存在未被选为目标对象的对象,则结束。
如果不为空,则在步骤S660中,基于第一类约束条件集合O1和第二类约束条件集合O2生成约束条件队列O。约束条件队列O包括按照优先级降序排列的第一类约束条件集合O1和第二类约束条件集合O2中的所有待满足的约束条件。待满足的约束条件的定义已在前文说明,此处不再赘述。
接着在步骤S670中,判断约束条件队列O是否为空。如果为空,表明已经没有了待满足的约束条件,则进入步骤S694。如果不为空,则在步骤S680中,从约束条件队列O取出优先级最高的约束条件O(max)。取出后队列O中即不存在该约束条件O(max)
接着在步骤S690中,获取该约束条件O(max)相关的属性x_i对应的反向倒排索引Xi,在步骤S691中将该反向倒排索引Xi与当前的第一候选子集合C1求交集得到第二候选子集合C2。即,C2=Xi∩C1
接着在步骤S692中,判断第二候选子集合C2是否为空。如果不为空,则在步骤S693中,令第一候选子集合C1等于第二候选子集合C2。即,C1=C2。之后返回步骤S670去判断约束条件队列O是否为空。
如果第二候选子集合C2为空,表示当前第一候选子集合C1没有满足约束条件O(max)的对象,需要降级约束,也就是在步骤S694中,从当前第一候选子集合C1中选择相关性分数最高的对象w作为目标对象添加至目标集合L的末尾。
接着在步骤S695中,根据所选择的目标对象w更新第一类约束条件集合O1和第二类约束条件集合O2。接着返回执行步骤S630,判断目标集合L中目标对象的数量是否达到预定数量n。如果达到了,则结束。
关于对象选择方法600中各步骤的详细处理逻辑和实施过程可以参见前文结合图1-图5对对象选择系统100以及对象选择方法300的相关描述,此处不再赘述。
图7示出了根据本发明一个实施例的对象选择装置700的示意图。如图7所示,对象选择装置700可以包括第一子集生成模块710、约束条件获取模块720、第二子集生成模块730和目标对象选择模块740。
第一子集生成模块710适于基于候选集合,生成第一候选子集合。候选集合包括多个对象,第一候选子集合包括候选集合中未被选为目标对象的对象。约束条件获取模块720适于获取待满足的、优先级最高的约束条件。第二子集生成模块730与第一子集生成模块710、约束条件获取模块720相耦接,并适于从第一候选子集合中得到第二候选子集合,第二候选子集合包括第一候选子集合中满足所获取的约束条件的对象;还适于将得到的第二候选子集合作为第一候选子集合。
第一子集生成模块710、约束条件获取模块720和第二子集生成模块730还适于重复执行上述获取约束条件、从第一候选子集合中得到第二候选子集合、以及将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者第一候选子集合中不存在满足约束条件的对象为止。
目标对象选择模块730与第二子集生成模块730相耦接,并适于从第一候选子集合中选择目标对象。
关于对象选择装置700中各模块的详细处理逻辑和实施过程可以参见前文结合图1-图6对对象选择系统100以及对象选择方法300、600的相关描述,此处不再赘述。
综上所述,根据本发明实施例的对象选择方案,通过在多个约束条件下选择满足约束条件的目标对象,保证了目标对象在多维度上的多样性,提高了用户体验。其中,当第一候选子集合中不存在满足当前获取的约束条件时,可以对约束条件降级,放宽某些约束,从满足先前获取的约束条件的第一候选子集合中寻找目标对象。此时找到的目标对象已经尽量满足约束条件,也具有在各种维度上的多样性。
进一步地,通过候选集合与反向倒排索引求交集的方式,可以快速找到满足约束条件的目标集合,有效降低了时间复杂度。假设从N篇文章的候选集合里,在k个约束条件下选择n个对象作为目标对象。如果采用传统的多次遍历方案,那么时间复杂度为O(n*k*N)=O(nkN)。如果本方案,则时间复杂度为O(n*k*log(N)+T)=O(nklogN),其中最后一个T是建立索引的时间,因为是一次性工作,在整个复杂度里可以忽略,n和k也是固定值。从上述两个时间复杂度公式上也可以看出,本发明实施例的方案可以有效提高寻找目标对象的性能。其中,反向倒排索引只需创建一次,在后面循环判断时多次重复使用,可以提升寻找下一个满足约束条件的目标对象的效率。
进一步地,每选择出一个目标对象,立即增量更新约束条件,避免重新从头判断约束条件是否满足。同样也提升了寻找下一个满足约束条件的目标对象的效率。
综上所述,本方案可以降低系统平均响应时间、选择最可能满足约束条件、保证维度多样性的目标对象,从性能和效果两个方面均有效提升了用户体验。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明实施例的方法和设备,或者本发明实施例的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被机器执行时,该机器变成实践本发明实施例的设备。
本发明实施例还公开了:A7、如A6所述的方法,其中,基于所选择的目标对象,更新约束条件的步骤包括:如果当前所选择的目标对象具有新增的属性,则创建与该新增的属性相关的约束条件;和/或如果当前所选择的目标对象具有重复的属性,则更新与该重复的属性相关的约束条件。A8、如A7所述的方法,其中,创建与该新增的属性相关的约束条件的步骤包括:创建与该新增的属性相关的第一类约束条件,并在该相关的第一类约束条件中记录目标集合中具有该新增的属性的目标对象的数量;和/或创建与该新增的属性相关的第二类约束条件,并在该相关的第二类约束条件中记录具有该新增的属性的、当前所选择的目标对象。A9、如A7所述的方法,其中,创建与该重复的属性相关的约束条件的步骤包括:更新与该重复的属性相关的第一类约束条件所记录的具有该重复的属性的目标对象的数量;和/或更新与该重复的属性相关的第二类约束条件所记录的具有该重复的属性的目标对象。A10、如A1所述的方法,其中,还包括:重复所述对象选择方法,直至目标对象的数量达到预定数量、或者所述候选集合不包括未被选为目标对象的对象为止。A11、如A1所述的方法,其中,与所述属性相关的第一类约束条件记录有目标集合中具有所述属性的目标对象的数量,如果所述第一类约束条件所记录的目标对象的数量达到或者超过相应的第一约束数量,则所述第一类约束条件是待满足的。A12、如A1所述的方法,其中,与所述属性相关的第二类约束条件记录有在目标集合中具有该属性的目标对象,如果所述第二类约束条件所记录的目标对象与目标集合中末尾的目标对象的间隔小于相应的第二约束间隔,则所述第二类约束条件是待满足的。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的程序代码中的指令,执行本发明实施例的方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明实施例的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明实施例的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所描述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,上述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行上述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施上述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所描述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明实施例,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明实施例的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明实施例的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明实施例的范围,对本发明实施例所做的公开是说明性的而非限制性的,本发明实施例的范围由所附权利要求书限定。

Claims (13)

1.一种对象选择方法,用于在候选集合中选择目标对象,所述候选集合包括多个对象,所述方法包括:
生成第一候选子集合,所述第一候选子集合包括所述候选集合中未被选为目标对象的对象;
获取待满足的、优先级最高的约束条件;
从所述第一候选子集合中得到第二候选子集合,所述第二候选子集合包括所述第一候选子集合中满足所获取的约束条件的对象;
将所述第二候选子集合作为所述第一候选子集合;
重复上述获取约束条件、从第一候选子集合中得到第二候选子集合、以及将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者所述第一候选子集合中不存在满足所述约束条件的对象为止;
从所述第一候选子集合中选择目标对象;
其中,所述对象具有多个属性,所述约束条件包括与目标对象的各个属性相关的第一类约束条件和/或第二类约束条件,第一类约束条件指示具有相关属性的目标对象的数量不允许超过相应第一约束数量,第二类约束条件指示具有相关属性的目标对象的间隔不允许小于相应第二约束间隔;
其中,在从所述第一候选子集合中选择目标对象的步骤之后,还包括:
基于所选择的目标对象,更新约束条件,包括:
如果当前所选择的目标对象具有新增的属性,则创建与该新增的属性相关的约束条件;和/或
如果当前所选择的目标对象具有重复的属性,则更新与该重复的属性相关的约束条件。
2.如权利要求1所述的方法,其中,在从所述第一候选子集合中选择目标对象的步骤之后,还包括:
将所选择的目标对象添加至目标集合的末尾,所述目标集合包括多个按选择顺序排列的目标对象。
3.如权利要求1所述的方法,其中,还包括:
为所述候选集合创建反向倒排索引;以及
从所述第一候选子集合中得到第二候选子集合的步骤包括:
查询与所述约束条件相关的属性对应的反向倒排索引;
获取所述属性对应的反向倒排索引与所述第一候选子集合的交集,作为所述第二候选子集合。
4.如权利要求1所述的方法,其中,所述对象具有对应的相关性分数,从所述第一候选子集合中选择所述目标对象的步骤包括:
选择所述第一候选子集合中相关性分数最高的对象作为目标对象。
5.如权利要求1所述的方法,其中,创建与该新增的属性相关的约束条件的步骤包括:
创建与该新增的属性相关的第一类约束条件,并在该相关的第一类约束条件中记录目标集合中具有该新增的属性的目标对象的数量;和/或
创建与该新增的属性相关的第二类约束条件,并在该相关的第二类约束条件中记录具有该新增的属性的、当前所选择的目标对象。
6.如权利要求1所述的方法,其中,创建与该重复的属性相关的约束条件的步骤包括:
更新与该重复的属性相关的第一类约束条件所记录的具有该重复的属性的目标对象的数量;和/或
更新与该重复的属性相关的第二类约束条件所记录的具有该重复的属性的目标对象。
7.如权利要求1所述的方法,其中,还包括:
重复所述对象选择方法,直至目标对象的数量达到预定数量、或者所述候选集合不包括未被选为目标对象的对象为止。
8.如权利要求1所述的方法,其中,与属性相关的第一类约束条件记录有目标集合中具有所述属性的目标对象的数量,如果所述第一类约束条件所记录的目标对象的数量达到或者超过相应的第一约束数量,则所述第一类约束条件是待满足的。
9.如权利要求1所述的方法,其中,与属性相关的第二类约束条件记录有在目标集合中具有该属性的目标对象,如果所述第二类约束条件所记录的目标对象与目标集合中末尾的目标对象的间隔小于相应的第二约束间隔,则所述第二类约束条件是待满足的。
10.一种对象选择装置,包括第一子集生成模块、约束条件获取模块、第二子集生成模块和目标对象选择模块,其中
所述第一子集生成模块适于基于候选集合生成第一候选子集合,所述候选集合包括多个对象,所述第一候选子集合包括所述候选集合中未被选为目标对象的对象;
所述约束条件获取模块适于获取待满足的、优先级最高的约束条件;
所述第二子集生成模块适于从所述第一候选子集合中得到第二候选子集合,所述第二候选子集合包括所述第一候选子集合中满足所获取的约束条件的对象;将所述第二候选子集合作为所述第一候选子集合;
所述第一子集生成模块、所述约束条件获取模块和所述第二子集生成模块还适于重复执行上述获取约束条件、从第一候选子集合中得到第二候选子集合、以及将第二候选子集合作为第一候选子集合的步骤,直至不存在待满足的约束条件、或者所述第一候选子集合中不存在满足所述约束条件的对象为止;以及
所述目标对象选择模块适于从所述第一候选子集合中选择目标对象,还适于基于所选择的目标对象,更新约束条件,包括:如果当前所选择的目标对象具有新增的属性,则创建与该新增的属性相关的约束条件,和/或如果当前所选择的目标对象具有重复的属性,则更新与该重复的属性相关的约束条件;
其中,所述对象具有多个属性,所述约束条件包括与目标对象的各个属性相关的第一类约束条件和/或第二类约束条件,第一类约束条件指示具有相关属性的目标对象的数量不允许超过相应第一约束数量,第二类约束条件指示具有相关属性的目标对象的间隔不允许小于相应第二约束间隔。
11.一种对象选择系统,包括:
处理前端,适于获取于用户相关的候选集合,所述候选集合包括多个与用户相关的对象;以及
如权利要求10所述的对象选择装置,适于从所述候选集合选择目标对象,以得到目标集合返回至所述处理前端。
12.一种计算设备,包括:
一个或多个处理器;和
存储器;
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1-9所述的对象选择方法中的任一方法的指令。
13.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当计算设备执行时,使得所述计算设备执行根据权利要求1-9所述的对象选择方法中的任一方法。
CN201911017761.7A 2019-10-24 2019-10-24 一种对象选择方法、装置、系统及计算设备 Active CN110781354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911017761.7A CN110781354B (zh) 2019-10-24 2019-10-24 一种对象选择方法、装置、系统及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911017761.7A CN110781354B (zh) 2019-10-24 2019-10-24 一种对象选择方法、装置、系统及计算设备

Publications (2)

Publication Number Publication Date
CN110781354A CN110781354A (zh) 2020-02-11
CN110781354B true CN110781354B (zh) 2022-06-10

Family

ID=69387570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911017761.7A Active CN110781354B (zh) 2019-10-24 2019-10-24 一种对象选择方法、装置、系统及计算设备

Country Status (1)

Country Link
CN (1) CN110781354B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641915B (zh) * 2021-08-27 2024-04-16 北京字跳网络技术有限公司 对象的推荐方法、装置、设备、存储介质和程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045818A (zh) * 2015-06-26 2015-11-11 腾讯科技(深圳)有限公司 一种图片的推荐方法、装置和系统
CN107437195A (zh) * 2016-05-27 2017-12-05 北京京东尚科信息技术有限公司 向用户推荐商品的方法和装置
CN108446410A (zh) * 2018-05-29 2018-08-24 科大讯飞股份有限公司 信息推荐方法、装置、系统、设备及可读存储介质
CN110020124A (zh) * 2017-10-20 2019-07-16 北京京东尚科信息技术有限公司 用于相关产品挖掘的方法及装置
CN110363364A (zh) * 2018-03-26 2019-10-22 阿里巴巴集团控股有限公司 一种资源的分配方法、装置及其设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3055786A4 (en) * 2013-10-09 2017-05-17 Google, Inc. Automatic definition of entity collections
US9992523B1 (en) * 2017-01-05 2018-06-05 Hulu, LLC Selecting recommendations in a video delivery system using diversity and relevance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045818A (zh) * 2015-06-26 2015-11-11 腾讯科技(深圳)有限公司 一种图片的推荐方法、装置和系统
CN107437195A (zh) * 2016-05-27 2017-12-05 北京京东尚科信息技术有限公司 向用户推荐商品的方法和装置
CN110020124A (zh) * 2017-10-20 2019-07-16 北京京东尚科信息技术有限公司 用于相关产品挖掘的方法及装置
CN110363364A (zh) * 2018-03-26 2019-10-22 阿里巴巴集团控股有限公司 一种资源的分配方法、装置及其设备
CN108446410A (zh) * 2018-05-29 2018-08-24 科大讯飞股份有限公司 信息推荐方法、装置、系统、设备及可读存储介质

Also Published As

Publication number Publication date
CN110781354A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
US11341419B2 (en) Method of and system for generating a prediction model and determining an accuracy of a prediction model
CN106874492B (zh) 搜索方法和装置
CN102193973B (zh) 呈现回答
US8781916B1 (en) Providing nuanced product recommendations based on similarity channels
US11164210B2 (en) Method, device and computer storage medium for promotion displaying
JP2020074193A (ja) サーチ方法、装置、設備および不揮発性計算機メモリ
US11354513B2 (en) Automated identification of concept labels for a text fragment
CN108121814B (zh) 搜索结果排序模型生成方法和装置
US11200466B2 (en) Machine learning classifiers
CN112988784B (zh) 数据查询方法、查询语句生成方法及其装置
CN111400584A (zh) 联想词的推荐方法、装置、计算机设备和存储介质
CN105706081A (zh) 结构化信息链接注释
US11651041B2 (en) Method and system for storing a plurality of documents
CN105550217A (zh) 场景音乐搜索方法及场景音乐搜索装置
CN110781354B (zh) 一种对象选择方法、装置、系统及计算设备
CN111598638B (zh) 点击率确定方法、装置及设备
CN116521825A (zh) 一种生成文本匹配模型的方法、计算设备及存储介质
US8732158B1 (en) Method and system for matching queries to documents
US11556549B2 (en) Method and system for ranking plurality of digital documents
CN115238676A (zh) 招标需求热点识别方法、装置、存储介质及电子设备
CN114742062A (zh) 文本关键词提取处理方法及系统
CN114020867A (zh) 一种搜索词的扩展方法、装置、设备及介质
CN114741489A (zh) 文档检索方法、装置、存储介质以及电子设备
CN110516169B (zh) 数据显示方法、装置、系统及计算设备
CN114020864A (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