实体推荐方法和装置与流程

文档序号:15076737发布日期:2018-08-01 01:57阅读:115来源:国知局

本申请实施例涉及互联网领域,具体涉及搜索领域,尤其涉及实体推荐方法和装置。



背景技术:

实体推荐,是指向用户提供实体建议,从而帮助用户发现其感兴趣的信息的一系列操作。

现有技术中,通常采用协同过滤的方式来进行实体推荐。协同过滤算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。



技术实现要素:

本申请实施例提出了实体推荐方法和装置。

第一方面,本申请实施例提供了一种实体推荐方法,包括:响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合;将候选实体集合输入预先训练的排序模型,得到候选实体序列;以及从候选实体序列中选取候选实体,并向用户推荐所选取的候选实体;其中,排序模型基于以下至少一者对候选实体集合进行排序:候选实体集合中,各候选实体与待搜索实体的相关度;用户对候选实体集合中的各候选实体的兴趣度;以及用户对候选实体集合中的各候选实体的预期度。

在一些实施例中,获取与待搜索实体关联的候选实体集合进一步包括:响应于候选实体与待搜索实体在预设知识图谱中存在关联关系,将候选实体添加至候选实体集合中。

在一些实施例中,获取与待搜索实体关联的候选实体集合进一步包括:响应于候选实体与待搜索实体在搜索会话历史中的共现次数超过预设的第一阈值,将候选实体添加至候选实体集合中。

在一些实施例中,获取与待搜索实体关联的候选实体集合进一步包括:将预设的语料库中,与待搜索实体具有共现关系的实体作为共现候选实体;将与待搜索实体的相关度超过预设的第二阈值的共现候选实体添加至候选实体集合中。

在一些实施例中,排序模型通过如下的步骤训练得到:生成训练样本集,训练样本集中的每个训练样本包括三元组和点击行为标注,三元组包括用户身份标识、第一实体和第二实体,点击行为标注用于指示用户在搜索第一实体得到的搜索结果中,是否对第二实体具有点击行为;对于所生成的训练样本集中的每一个训练样本,生成该训练样本的特征向量;将训练样本集和所生成的特征向量输入预先建立的梯度提升决策树模型,基于随机梯度下降算法对梯度提升决策树模型进行训练;响应于交叉熵损失函数最小,生成排序模型;其中,特征向量包括用于指示以下至少一者的特征值:各三元组中的第一实体和第二实体之间的相关度;各三元组中的用户对该三元组中第二实体的兴趣度;以及各三元组中的用户对该三元组中第二实体的预期度。

在一些实施例中,用于指示各三元组中的第一实体和第二实体之间的相关度的分量包括以下至少一者:三元组中的第一实体和第二实体在预设知识图谱中的相关度;三元组中的第一实体和第二实体在搜索会话历史中的共现度;三元组中的第一实体和第二实体在预设语料库中的共现度;以及三元组中的第一实体和第二实体的主题相似度。

在一些实施例中,用于指示各三元组中的用户对该三元组中第二实体的兴趣度的特征值包括以下至少一者:该三元组中,第二实体的点击率;第二实体在预设分类表中所属的主题类别的点击率;三元组中的第一实体和第二实体的语义相似度。

在一些实施例中,用于指示各三元组中的用户对该三元组中第二实体的预期度的特征值包括以下至少一者:基于三元组中用户的历史点击数据确定的用户和/或第一实体对第二实体的关系熟悉度;三元组中的第二实体相对用户和/或第一实体的意外度;以及三元组中,第一实体的点击多样性。

第二方面,本申请实施例还提供一种实体推荐装置,包括:获取单元,配置用于响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合;排序单元,配置用于将候选实体集合输入预先训练的排序模型,得到候选实体序列;以及推荐单元,配置用于从候选实体序列中选取候选实体,并向用户推荐所选取的候选实体;其中,排序模型基于以下至少一者对候选实体集合进行排序:候选实体集合中,各候选实体与待搜索实体的相关度;用户对候选实体集合中的各候选实体的兴趣度;以及用户对候选实体集合中的各候选实体的预期度。

在一些实施例中,获取单元在获取与待搜索实体关联的候选实体集合时,进一步配置用于:响应于候选实体与待搜索实体在预设知识图谱中存在关联关系,将候选实体添加至候选实体集合中。

在一些实施例中,获取单元在获取与待搜索实体关联的候选实体集合时,进一步配置用于:响应于候选实体与待搜索实体在搜索会话历史中的共现次数超过预设的第一阈值,将候选实体添加至候选实体集合中。

在一些实施例中,获取单元在获取与待搜索实体关联的候选实体集合时,进一步配置用于:将预设的语料库中,与待搜索实体具有共现关系的实体作为共现候选实体;将与待搜索实体的相关度超过预设的第二阈值的共现候选实体添加至候选实体集合中。

在一些实施例中,装置还包括训练单元,训练单元配置用于训练排序模型;训练单元包括:训练样本生成模块,配置用于生成训练样本集,训练样本集中的每个训练样本包括三元组和点击行为标注,三元组包括用户身份标识、第一实体和第二实体,点击行为标注用于指示用户在搜索第一实体得到的搜索结果中,是否对第二实体具有点击行为;特征向量生成模块,配置用于对于所生成的训练样本集中的每一个训练样本,生成该训练样本的特征向量;迭代训练模块,配置用于将训练样本集和所生成的特征向量输入预先建立的梯度提升决策树模型,基于随机梯度下降算法对梯度提升决策树模型进行训练;以及生成单元,配置用于响应于交叉熵损失函数最小,生成排序模型;其中,特征向量包括用于指示以下至少一者的特征值:各三元组中的第一实体和第二实体之间的相关度;各三元组中的用户对该三元组中第二实体的兴趣度;以及各三元组中的用户对该三元组中第二实体的预期度。

在一些实施例中,用于指示各三元组中的第一实体和第二实体之间的相关度的分量包括以下至少一者:三元组中的第一实体和第二实体在预设知识图谱中的相关度;三元组中的第一实体和第二实体在搜索会话历史中的共现度;三元组中的第一实体和第二实体在预设语料库中的共现度;以及三元组中的第一实体和第二实体的主题相似度。

在一些实施例中,用于指示各三元组中的用户对该三元组中第二实体的兴趣度的特征值包括以下至少一者:该三元组中,第二实体的点击率;第二实体在预设分类表中所属的主题类别的点击率;三元组中的第一实体和第二实体的语义相似度。

在一些实施例中,用于指示各三元组中的用户对该三元组中第二实体的预期度的特征值包括以下至少一者:基于三元组中用户的历史点击数据确定的用户和/或第一实体对第二实体的关系熟悉度;三元组中的第二实体相对用户和/或第一实体的意外度;以及三元组中,第一实体的点击多样性。

第三方面,本申请实施例还提供了一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面任一的方法。

第四方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面任一的方法。

本申请实施例提供的实体推荐方法和装置,通过响应于接收到用户对实体的搜索请求,在预设的实体集合中获取与待搜索实体关联的候选实体集合;接着,将候选实体集合输入预先训练的排序模型,得到候选实体序列;最后,从候选实体序列中选取候选实体并将所选取的候选实体向用户推荐。此外,由于排序模型可以基于候选实体集合中各候选实体与待搜索实体的相关度、用户对候选实体集合中的各候选实体的兴趣度以及用户对候选实体集合中的各候选实体的预期度中的至少一者进行排序,实现了针对用户和/或待搜索实体的更加相关、个性化、惊喜化、多样性的实体推荐。

此外,在本申请一些实施例的实体推荐方法和装置中,由于候选实体集合中包含了与待搜索实体在预设知识图谱中存在关联关系的实体、与待搜索实体在搜索会话历史中的共现次数超过预设的第一阈值的实体以及在预设语料库中与待搜索实体的相关度超过预设的相关度阈值的实体,并且从用户的兴趣度、预期度和实体之间的相关度三方面考虑纳入候选实体集合的实体,实现了候选实体集合中的各个元素与搜索请求在不同维度的相关性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的实体推荐方法的一个实施例的流程图;

图3是一个知识图谱的示意图;

图4是根据本申请的实体推荐方法的一个应用场景的示意图;

图5是根据本申请的实体推荐方法的另一个实施例的流程图;

图6是根据本申请的实体推荐装置的一个实施例的结构图;

图7是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的实体推荐方法或实体推荐装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持搜索服务的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。

服务器105可以是提供各种服务的服务器,例如对使用终端设备101、102、103的用户发送的搜索请求提供支持的后台处理服务器。后台处理服务器可以对接收到的搜索请求等数据进行分析等处理,并将处理结果(例如,包含实体推荐内容的搜索结果页面)反馈给终端设备。

需要说明的是,本申请实施例所提供的实体推荐方法一般由服务器105执行。相应地,实体推荐装置一般设置于服务器105中。

应该理解,图1中的终端设备101、102、103,网络104和服务器105的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

继续参考图2,示出了根据本申请的实体推荐方法的一个实施例的流程200。该实体推荐方法,包括以下步骤:

步骤210,响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合。

在本实施例中,实体推荐方法的执行主体(例如图1所示的服务器105)可以响应于接收到用户对实体的搜索请求,来获取与待搜索实体关联的候选实体集合。

在这里,用户可以使用任意能够与本实施例中的实体推荐方法的执行主体通过有线或者无线方式通信连接的电子设备(例如,图1所示的终端设备101、102、103)来向该执行主体发送搜索请求。

此外,本实施例中,候选实体集合中的候选实体可以是与待搜索实体具有任意可行的关联关系的实体。在这里,关联关系可以是两个实体直接的关联关系(例如,在知识图谱中的关联),和/或两个实体通过搜索会话历史或者预设语料库建立起来的间接的关联关系。例如,在被同一个用户短时间内先后搜索过的两个实体,可以互为候选实体;在百科语料库中,同一篇文章中出现过的两个实体,也可以互为候选实体。以通过搜索会话历史为例,若某一用户a在搜索过程中,短时间内先后搜索了实体eq和实体ec。那么,在另一用户b搜索实体eq时,可以认为,实体ec是该实体eq的一个候选实体。因此,在这些应用场景中,ec可以作为候选实体集合中的一个元素。

步骤220,将候选实体集合输入预先训练的排序模型,得到候选实体序列。

本实施例中,排序模型可以基于以下至少一者对候选实体集合进行排序:候选实体集合中,各候选实体与待搜索实体的相关度;用户对候选实体集合中的各候选实体的兴趣度;以及用户对候选实体集合中的各候选实体的预期度。

在这里,各候选实体与待搜索实体的相关度可以理解为候选实体与待搜索实体之间的关联程度。侯选实体与待搜索实体二者的相关度可以是二者从两者的具体内容、主题抽象等方面的相似度,和/或,也可以是二者知识图谱、搜索会话历史、预设语料库等方面上的关联或共现等一些指标的相关度。

用户对候选实体集合中的各候选实体的兴趣度可以理解为用于表征发起搜索请求的用户对该候选实体的感兴趣的程度。最直接的方法是对发起搜索请求的用户的历史行为数据进行分析,通过对候选实体的点击率(点击数/展现数)的统计来衡量用户对该候选实体的兴趣度;除此之外,还可以间接的通过神经网络模型,将用户的是否有点行为泛化到语义的相似度计算上,以此来衡量用户对该候选实体的兴趣度。

用户对候选实体集合中的各候选实体的预期度可以理解为用于表征发起搜索请求的用户对搜索结果中出现某一候选实体的期待程度。可选地,可以基于发起搜索请求的用户的历史行为数据和候选实体之间的主题相似度来实现。例如,用户经常点击过的候选实体,会认为用户对这个实体更加熟悉,预期度更高。

在这里,预先训练的排序模型可以通过一系列的运算,将输入其中的候选实体集合中的各候选实体,给出的优先级打分,并基于确定出的优先级排序,得到候选实体序列。

例如,预先训练的排序模型可以是ltr(learningtorank)框架中的任意一种排序模型。ltr框架可以通过对标注的训练数据和从中提取的特征,以特定的优化目标,通过特定的优化方式,进行训练,使得训练后的得到的排序模型能够对输入其中的候选实体进行优先级打分,进而可以进行排序。

在一些应用场景中,排序模型确定出的优先级可以是对候选实体集合中的各候选实体的定性描述。在这些应用场景中,排序模型可以将候选实体集合中的各候选实体按照一定的优先级等级进行划分,从而得到候选实体序列。

例如,若排序模型基于候选实体集合中,各候选实体与待搜索实体的相关度来对候选实体集合中的各候选实体进行排序,排序模型可以对各用户对各候选实体的各种历史行为数据进行分析,从而将候选实体集合中的各候选实体根据其与待搜索实体的相关度划分为强相关、中强相关、中相关、中弱相关、弱相关、无相关等类别。

类似地,若排序模型基于用户对候选实体集合中的各候选实体的兴趣度来对候选实体集合中的各候选实体进行排序,排序模型可以对发起搜索请求的用户的各种历史点击数据进行分析,从而将候选实体集合中的各候选实体根据其相对发起搜索请求的用户的兴趣度划分为高兴趣度、中高兴趣度、中兴趣度、中低兴趣度、低兴趣度、无兴趣等类别。

以此类推,若排序模型同时基于候选实体集合中,各候选实体与待搜索实体的相关度,以及用户对候选实体集合中的各候选实体的兴趣度来对候选实体集合中的各候选实体进行排序,排序模型可以首先分别确定候选实体集合中的各候选实体与待搜索实体的相关度以及候选实体集合中的各候选实体相对相对发起搜索请求的用户的兴趣度,接着再对相对发起搜索请求的用户的兴趣度进行排序,例如,若期望更关注候选实体相对发起搜索请求的用户的兴趣度而非候选实体与待搜索实体的相关度,那么经排序模型排序后的候选实体序列可以按照如下的等级顺序进行排序:高兴趣度且强相关、高兴趣度且中强相关、高兴趣度且中相关、高兴趣度且弱相关、高兴趣度且无相关、中高兴趣度且强相关、中高兴趣度且中强相关、中高兴趣度且中相关、中高兴趣度且弱相关、中高兴趣度且无相关、中兴趣度且强相关、中兴趣度且中强相关、中兴趣度且中相关、中兴趣度且弱相关、中兴趣度且无相关、中低兴趣度且强相关、中低兴趣度且中强相关、中低兴趣度且中相关、中低兴趣度且弱相关、中低兴趣度且无相关、低兴趣度且强相关、低兴趣度且中强相关、低兴趣度且中相关、低兴趣度且弱相关、低兴趣度且无相关、无兴趣且强相关、无兴趣且中强相关、无兴趣且中相关、无兴趣且弱相关、无兴趣且无相关。

在另一些应用场景中,排序模型确定出的优先级可以是对候选实体集合中的各候选实体的定量描述。在这些应用场景中,排序模型可以将候选实体集合中的各候选实体按照一定的算法进行量化评分,从而得到候选实体序列。

在这些应用场景中,若排序模型基于候选实体集合中,各候选实体与待搜索实体的相关度来对候选实体集合中的各候选实体进行排序,排序模型可以基于预先设置的算法对各用户对各候选实体的各种历史点击数据进行运算,从而计算出候选实体集合中各候选实体的相关度分值。

类似地,若排序模型基于用户对候选实体集合中的各候选实体的兴趣度来对候选实体集合中的各候选实体进行排序,排序模型可以基于预先设置的算法对发起搜索请求的用户的各种历史点击数据进行运算,从而计算出候选实体集合中各候选实体的兴趣度分值。

以此类推,若排序模型同时基于候选实体集合中,各候选实体与待搜索实体的相关度,以及用户对候选实体集合中的各候选实体的兴趣度来对候选实体集合中的各候选实体进行排序,排序模型可以基于预设的(或者经训练得到的)权值来对相关度分值和兴趣度分值进行加权求和,并根据加权求和之后的分值来对候选实体集合中的各候选实体进行排序,从而得到候选实体序列。

步骤230,从候选实体序列中选取候选实体,并向用户推荐所选取的候选实体。

在本步骤中,可以根据由步骤220的排序模型输出的候选实体序列中,各候选实体的优先级来选择向用户推荐。

例如,在一些应用场景中,排序模型确定出的各候选实体的优先级通过定性的等级来表征。在这些应用场景中,例如可以将候选实体序列中,具有最高优先级的候选实体向用户推荐。

或者,在另一些应用场景中,排序模型确定出的各候选实体的优先级通过定量的数值(例如,分值)来表征。在这些应用场景中,例如,可以选取候选实体序列中,分值超过某一预设阈值的候选实体向用户推荐。或者,在这些应用场景中,还可以选取候选实体序列中,分值最高的n(n为预先设置的正整数)个候选实体来向用户推荐。

本实施例的实体推荐方法,通过响应于接收到用户对实体的搜索请求,在预设的实体集合中获取与待搜索实体关联的候选实体集合;接着,将候选实体集合输入预先训练的排序模型,得到候选实体序列;最后,从候选实体序列中选取候选实体并将所选取的候选实体向用户推荐。此外,由于排序模型可以基于候选实体集合中各候选实体与待搜索实体的相关度、用户对候选实体集合中的各候选实体的兴趣度以及用户对候选实体集合中的各候选实体的预期度进行排序,实现了针对用户的更加相关、个性化、惊喜化、多样性的实体推荐。

在一些可选的实现方式中,本实施例的步骤210中的获取与待搜索实体关联的候选实体集合,可以通过如下的方式来实现:

步骤211,响应于候选实体与待搜索实体在预设知识图谱中存在关联关系,将候选实体添加至候选实体集合中。

知识图谱(knowledgegraph,kg),可以理解为一个集中式存储库,其用于存储某一个实体和与之关联的其它实体之间的关联关系。

参见图3所示,为一个有关“哺乳动物”这一实体的知识图谱的示意图。

在图3所示的知识图谱中,“哺乳动物”是“动物”中的一种,且二者在图3所示的知识图谱中存在连接关系(例如,二者之间存在一连接线段),那么,可以将“动物”这一实体作为“哺乳动物”的一个候选实体。

这样一来,当用户搜索“哺乳动物”这一实体时,可以将出现在图3所示的知识图谱中的“动物”、“猫”、“鲸”、“熊”、“脊椎”等实体作为候选实体集合中的元素,而“水”、“鱼”、“毛”等实体则不作为候选实体集合中的元素。通过步骤211生成的候选实体集合例如可以记为其中,eq表示待搜索实体。

在另一些可选的实现方式中,本实施例的步骤210中的获取与待搜索实体关联的候选实体集合,还可以通过如下的方式来实现:

步骤212,响应于候选实体与待搜索实体在搜索会话历史中的共现次数超过预设的第一阈值,将候选实体添加至候选实体集合中。

在计算机术语中,会话(session)是指一个终端用户与交互系统(例如,服务端)进行通讯的过程。例如,会话从终端访问服务端开始,直至服务端关闭,或者客户端关闭时结束。

在一些应用场景中,可以将搜索会话历史中,提取出与待搜索实体eq具有较多共现次数的实体形成一候选实体集合记作

在另一些可选的实现方式中,本实施例的步骤210中的获取与待搜索实体关联的候选实体集合,还可以通过如下的方式来实现:

步骤213,将预设的语料库中,与待搜索实体具有共现关系的实体作为共现候选实体。

在这里,可以筛选出预设的语料库中,与待搜索实体出现在该语料库中的同一个网络文档中的实体作为共现候选实体,并形成集合

以及,步骤214,将与待搜索实体的相关度超过预设的第二阈值的候选实体添加至候选实体集合中。

在一些应用场景中,集合中的共现候选实体与待搜索实体之间的共现度可以通过如下的公式(1)计算得到:

p(ec|eq,t,r)≈p(ec|eq)·p(r|eq,ec)·p(t|ec)(1)

上述公式(1)中,t表示待搜索实体eq的实体类别集合,r表示预设的用于描述实体之间关系的词语集合中,网络文档所描述的eq和ec之间的关系,p(ec|eq)为内容无关共现度,p(r|eq,ec)为内容相关共现度。

p(ec|eq)和p(r|eq,ec)可以分别通过如下的公式(2)和公式(3)计算得到。

其中,上述公式(2)中的pmi(eq,ec)以及pmi’(eq,ec)可以通过如下的公式(4)计算得到:

其中,cnt(ec,eq)为ec和eq在预设的语料库中的共现次数,而cnt(ec)和cnt(eq)则分别是ec和eq出现在预设的语料库中的次数。

上述公式(3)中的θqc为预设的共现语言模型输出的eq和ec之间的关系分值,n(t,r)为t在r中出现的次数。

此外,上述公式(1)中的p(t|ec)为关系过滤器,并可以通过如下的公式(5)得到:

其中,cat(ec)为将实体ec映射至ec的类别集合的映射函数,cat’(t)为对t执行类别扩展操作得到的一系列实体类别。

这样一来,通过以上的公式(1)对集合中的共现候选实体进行共现度计算,可以从中筛选出共现度超过第二预设阈值的共现候选实体并形成集合

可以理解的是,在执行本实施例的步骤210中的获取与待搜索实体关联的候选实体集合时,可以采用如上三种可选的实现方式之一的方式来得到候选实体集合或者也可以通过对以上三种可选的实现方式的任意组合来得到候选实体集合。具体地,若采用如上的步骤211和步骤212来得到候选实体集合,最终生成的候选实体集合可以是类似地,若采用如上的步骤211和步骤213~214来得到候选实体集合,最终生成的候选实体集合可以是以此类推,若采用如上的步骤211、步骤212和步骤213~214来得到候选实体集合,最终生成的候选实体集合可以是

可以理解的是,当所生成的候选实体集合为时,由于候选实体集合中不仅包含了与待搜索实体在预设知识图谱中存在关联关系的实体(中的候选实体)、与待搜索实体在搜索会话历史中的共现次数超过预设的第一阈值的实体(中的候选实体)以及在预设语料库中与待搜索实体的相关度超过预设的相关度阈值的实体(中的候选实体),从而从用户的兴趣度、预期度和实体之间的相关度三方面考虑了纳入候选实体集合的实体,实现了候选实体集合中的各个元素与搜索请求在不同维度的相关性。

参见图4所示,为本实施例的实体推荐方法的一个应用场景的示意图。

在图4所示的应用场景中,用户410可以通过其使用的终端设备(图中未示出)来向搜索服务器发出对某一实体的搜索请求。搜索服务器在接收到该搜索请求之后,可以从数据库402中获取与待搜索实体关联的候选实体集合,如附图标记401所示。接着,如附图标记403所示,搜索服务器可以将所获得的候选实体集合输入预先训练的排序模型中,从而对候选实体集合中的各候选实体进行排序,并得到候选实体序列404。这样一来,便可以将候选实体序列404中,排序前n位的候选实体向用户推荐。

参见图5所示,为本申请的实体推荐方法的另一个实施例的示意性流程图。

本实施例的方法包括如下的步骤:

步骤510,响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合。

本实施例的步骤510可以具有与图2所示的实施例中的步骤210类似的执行方式。此外,本实施例的步骤510中,获取与待搜索实体关联的候选实体集合的可选的实现方式也可以参照如上的步骤211、步骤212、步骤213~步骤214的方式或者该三种方式的任意组合来得到,在此不再赘述。

步骤520,将所述候选实体集合输入预先训练的排序模型,得到候选实体序列。

本实施例的实体推荐方法中,排序模型可以通过如下的方式训练得到:

步骤521,生成训练样本集,训练样本集中的每个训练样本包括三元组和点击行为标注,三元组包括用户身份标识、第一实体和第二实体,点击行为标注用于指示用户在搜索第一实体得到的搜索结果中,是否对第二实体具有点击行为。

示意性地,每一个三元组例如可以表示为其中,ui可以理解为用户集合中,某一用户的身份标识,为某一第一实体(例如,某一用户曾搜索过的实体),而则为某一第二实体(例如,呈现在某一次对某一实体进行搜索得到的搜索结果页面上的实体)。

此外,点击行为标注yijk的取值可以通过如下的公式来确定:

上述公式(6)中,用于指示ui这一用户在搜索这一第一实体得到的搜索结果中,对这一第二实体具有点击行为的聚合点击(aggregatedclick)。若三元组存在聚合点击,那么对该三元组标注yijk=1,否则,对该三元组标注yijk=0。

步骤522,对于所生成的训练样本集中的每一个训练样本,生成该训练样本的特征向量。其中,特征向量包括用于指示以下至少一者的特征值:各三元组(u,eq,ec)中,第一实体eq和第二实体ec之间的相关度;各三元组中(u,eq,ec),用户u对该三元组中第二实体ec的兴趣度;以及各三元组(u,eq,ec)中,用户u对该三元组中第二实体ec的预期度。

在这里,第一实体eq和第二实体ec之间的相关度可以理解为候选实体与待搜索实体之间存在相互关联的关联程度。侯选实体与待搜索实体二者的相关度可以是二者从两者的具体内容、主题抽象等方面的相似度,和/或,也可以是二者在知识图谱、搜索会话历史、预设语料库等方面上的关联或共现等一些指标的相关度(例如,知识图谱中两个实体是否有直接关联,或者,在搜索会话历史中的共现信息等)。

在本实施例的一些可选的实现方式中,若特征向量包含用于表征第一实体eq和第二实体ec之间的相关度的特征值,这些特征值可以包括以下至少一者:三元组(u,eq,ec)中的第一实体eq和第二实体ec在预设知识图谱中的相关度;三元组(u,eq,ec)中的第一实体eq和第二实体ec在搜索会话历史中的共现度;三元组(u,eq,ec)中的第一实体eq和第二实体ec在预设语料库中的共现度;以及三元组(u,eq,ec)中的第一实体eq和第二实体ec的主题相似度。

在一些应用场景中,三元组(u,eq,ec)中的第一实体eq和第二实体ec在预设知识图谱中的相关度特征值可以通过如下公式(7)来确定:

在这里,第一实体eq和第二实体ec在预设知识图谱中存在连接关系可以理解为,第一实体eq和第二实体ec在预设知识图谱中存在一连接线段。仍以图3所示的知识图谱为例,实体“哺乳动物”与实体“鲸”在该知识图谱中存在一连接线段,因此,若二者分别对应三元组(u,eq,ec)中的第一实体eq和第二实体ec时,二者的相关度特征值可根据公式(7)确定为1。相反,实体“哺乳动物”与实体“鱼”在图3所示的知识图谱中不存在连接线段,因此,若二者分别对应三元组中的第一实体eq和第二实体时ec,二者的相关度特征值可根据公式(7)确定为0。

在一些应用场景中,三元组(u,eq,ec)中的第一实体eq和第二实体ec在搜索会话历史中的共现度特征值例如可以采用如上的公式(2)来确定。可以理解的是,在利用公式(2)来确定三元组(u,eq,ec)中的第一实体eq和第二实体ec在搜索会话历史中的共现度时,公式(2)中e'c所属的集合也应对应于步骤510所确定出的候选实体集合。

在一些应用场景中,三元组(u,eq,ec)中的第一实体eq和第二实体ec在预设语料库中的共现度特征值可以通过如上的公式(1)确定。

在一些应用场景中,三元组(u,eq,ec)中第一实体eq和第二实体ec之间的主题相似度特征值可以通过以下公式(8)来确定。

其中,分别为预设网络文档集合中,包含第一实体eq的网络文档deq和包含第二实体ec的网络文档dec的主题特征向量。在一些应用场景中,可以利用隐含狄利克雷分布(latentdirichletallocation,lda)来对网络文档进行建模。例如,可以预先训练一lda模型,用于表征网络文档集合中各网络文档的主题特征向量。这样一来,便可以利用包含第一实体eq的网络文档和包含第二实体ec的网络文档deq和dec的主题特征向量之间的余弦相似度作为衡量三元组(u,eq,ec)中第一实体eq和第二实体ec之间的主题相似度的特征值。

在本实施例的一些可选的实现方式中,若特征向量包含指示各三元组中的用户u对该三元组(u,eq,ec)中第二实体ec的兴趣度的特征值,这些特征值可以包括以下至少一者:该三元组(u,eq,ec)中的第二实体ec的点击率;第二实体ec在预设分类表中所属的主题类别的点击率;三元组(u,eq,ec)中的第一实体eq和第二实体ec的语义相似度。

在一些应用场景中,该三元组(u,eq,ec)中的第二实体ec的点击率特征值,可以通过如下的公式(9)~公式(11)中的至少一者来确定:

在上述公式(9)~公式(11)中,click(·)函数可以是在各种情况下,对第二实体ec的点击次数。具体地,click(u,eq,ec)可以是用户u在搜索第一实体eq得到的搜索结果页面中,对第二实体ec的点击次数;click(eq,ec)可以是所有用户在搜索第一实体eq得到的搜索结果页面中,对第二实体ec的点击次数;而click(ec)则可以是所有用户在搜索任何实体得到的搜索结果页面中,对第二实体ec的点击次数。

相应地,impression(·)函数可以是在各种情况下,对第二实体ec的展现次数,例如,在各种情况下,第二实体ec展现在搜索结果页面的浏览器窗口中的次数。impression(u,eq,ec)可以是用户u在搜索第一实体eq得到的搜索结果页面中,第二实体ec的展现次数;impression(eq,ec)可以是所有用户在搜索第一实体eq得到的搜索结果页面中,对第二实体ec的展现次数;而impression(ec)则可以是所有用户在搜索任何实体得到的搜索结果页面中,对第二实体ec的展现次数。

此外,上述公式(9)~公式(11)中,α和β可以是预先设置的常数,旨在得到较为平滑的点击率数据。通过恰当地设置α和β,可以使得点击次数、展现次数较少的第二实体ec得到更加稳定的点击率数值。

可以理解的是,若在搜索三元组(u,eq,ec)中的第一实体eq得到的搜索结果中,对该三元组(u,eq,ec)中的第二实体ec的点击率特征值通过上述公式(9)~公式(11)三者来确定,那么,最终得到的样本的特征向量中,便具有分别由公式(9)~公式(11)计算得到的三个点击率特征值。

在一些应用场景中,在搜索三元组(u,eq,ec)中的第一实体eq得到的搜索结果中,第二实体ec在预设分类表中所属的主题类别的点击率特征值可以通过如下的公式(12)~公式(14)至少一者来确定:

其中,tq为第一实体eq所属的主题集合,tc为第二实体ec所属的主题集合。

可以理解的是,若第二实体ec在预设分类表中所属的主题类别的点击率特征值通过上述公式(12)~公式(14)三者来确定,那么,最终得到的样本的特征向量中,便具有分别由公式(12)~公式(14)计算得到的三个点击率特征值。

在一些应用场景中,三元组(u,eq,ec)中的第一实体eq和第二实体ec的语义相似度特征值可以通过如下的公式(15)来确定:

在这些应用场景中,可以首先将描述某一实体eq的描述语句s中的每个词通过词嵌入矩阵(wordembeddingmatrix)映射为一个词向量,接着,可以通过卷积神经网络和池化操作将这个描述语句最终表示成一个语义向量。这样一来,上述公式(15)中的v(sq)和v(sc)便可以理解为第一实体eq的语义向量和第二实体ec的语义向量,相应地,第一实体和第二实体的语义相似度特征值便可以理解为第一实体eq的语义向量和第二实体ec的语义向量之间的余弦相似度。

在本实施例的一些可选的实现方式中,若特征向量包含用于指示各三元组(u,eq,ec)中的用户对该三元组(u,eq,ec)中第二实体ec的预期度的特征值,这些特征值可以包括以下至少一者:基于三元组(u,eq,ec)中用户的历史点击数据确定的用户和/或第一实体对第二实体的关系熟悉度;三元组(u,eq,ec)中的第二实体ec相对用户u和/或第一实体eq的意外度;以及三元组(u,eq,ec)中,第一实体eq的点击多样性。

可以理解的是,若某一个第二实体ec已由搜索第一实体eq的用户u发现,那么,当该用户再次搜索该第一实体eq时,若将该第二实体ec向该用户u推荐,那么该用户u对该第二实体ec的熟悉程度将较高,也即是说,该用户u对该第二实体ec的不可预期性将更低。

在一些应用场景中,若特征向量包含用于指示基于三元组(u,eq,ec)中用户的历史点击数据确定的用户u和/或第一实体eq对第二实体ec的关系熟悉度的特征值,该特征值可以通过如下的公式(16)和公式(17)其中至少一者来确定:

其中,ε(u,eq)=εct(u,eq)∪εce(u,eq),在这里,εct(u,eq)为从搜索点击日志中获取的、由用户u点击过的网络文档中,存在于这些网络文档的标题中的全部实体,而εce(u,eq)为从实体点击日志中获取的、由用户u点击过的全部实体。

此外,公式(17)中的其中,clicku(eq,ec)为在搜索第一实体eq时,点击过呈现在搜索结果页面上的第二实体ec的用户的数量;nu为预先设置的、用于表征大部分用户对第一实体eq和第二实体ec之间的关系熟悉程度的预设阈值。

可以理解的是,若基于三元组(u,eq,ec)中用户的历史点击数据确定的关系熟悉度的特征值分别通过上述公式(16)~公式(17)二者来确定,那么,最终得到的样本的特征向量中,便具有分别由公式(16)~公式(17)计算得到的三个关系熟悉度的特征值。

在本实施例的一些可选的实现方式中,若特征向量包含用于指示三元组(u,eq,ec)中的第二实体ec相对用户u和/或第一实体eq的意外度的特征值,这些特征值可以通过如下的公式(18)~公式(21)中的至少一者来确定:

其中,上述公式(18)中,ε(u,eq)为用户u已知的、与第一实体eq具有关联关系的实体集合,d(·)可以是用于衡量第二实体ec与集合ε(u,eq)中某个元素的距离的函数。示意性地,d(ec,ek)=1-simc(ec,ek),而simc(ec,ek)可以利用上述公式(8)来求取。而通过求取第二实体ec与该集合中各元素的距离的最小值,可以衡量第二实体ec相对于第一实体eq的意外度。

然而,仅通过公式(18)和/或公式(20)来衡量第二实体ec相对第一实体eq的意外度,很可能会导致第二实体ec是用户u完全不感兴趣且与用户u完全不相关的实体。为了解决这一问题,可以通过如上的公式(19)和/或公式(21)来将用户u的兴趣度纳入考虑。

具体地,公式(19)中,为归一化后的ctr(u,eq,ej),且满足:

ctr(u,eq,ej)可参见如上的公式(9)计算出。

进一步地,上述公式(21)中的为归一化后的ctr(eq,ej),且满足:

可以理解的是,若三元组(u,eq,ec)中的第二实体ec相对用户u和/或第一实体eq的意外度的特征值分别通过上述公式(18)~公式(21)来确定,那么,最终得到的样本的特征向量中,便具有分别由公式(18)~公式(21)确定出的第二实体ec相对第一实体eq的意外度特征值。

在本实施例的一些可选的实现方式中,若特征向量包含用于指示三元组(u,eq,ec)中,第一实体eq的点击多样性的特征值,该特征值可以通过如下的公式(22)确定:

其中:

c(eq)是在搜索第一实体eq得到的搜索结果中,点击过的实体构成的集合。

通过上述公式(22)确定出的点击多样性的特征值,可以直观地反映搜索第一实体eq得到的搜索结果的点击多样性。

可以理解的是,在本步骤522中,所选取的特征值越多,训练得到的排序模型在排序时,影响排序结果的影响因素也相应地更多,由排序模型得到的候选实体序列也将更恰当地满足用户的兴趣度、预期度和实体之间的相关度等方面的需求。

523,将训练样本集和所生成的特征向量输入预先建立的梯度提升决策树模型,基于随机梯度下降算法对梯度提升决策树模型进行训练。

在这里,梯度提升决策树模型例如可以是随机梯度提升决策树(stocasticgradientboosteddecisiontree,随机gbdt)模型。这里需要注意的是,通过调节随机gbdt模型中树的数量、节点的数量、学习率以及采样率等参数,可以使训练的模型达到一个最优的效果。

步骤524,响应于交叉熵损失函数最小,得到排序模型。

在这里,交叉熵损失函数可以具有如下公式(23)的表现形式:

通过对随机梯度提升决策树模型的训练,可以将能够使交叉熵损失函数取得最小值时所对应的模型,作为最终得到的排序模型。

进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种实体推荐装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图6所示,本实施例的实体推荐装置可以包括获取单元610、排序单元620以及推荐单元630。

获取单元610可配置用于响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合。

排序单元620可配置用于将候选实体集合输入预先训练的排序模型,得到候选实体序列。

推荐单元630可配置用于从候选实体序列中选取候选实体,并向用户推荐所选取的候选实体。

本实施例中,排序模型可基于以下至少一者对候选实体集合进行排序:候选实体集合中,各候选实体与待搜索实体的相关度;用户对候选实体集合中的各候选实体的兴趣度;以及用户对候选实体集合中的各候选实体的预期度。

在一些可选的实现方式中,获取单元610在获取与待搜索实体关联的候选实体集合时,还可以进一步配置用于:响应于候选实体与待搜索实体在预设知识图谱中存在关联关系,将候选实体添加至候选实体集合中。

在一些可选的实现方式中,获取单元610在获取与待搜索实体关联的候选实体集合时,还可以进一步配置用于:响应于候选实体与待搜索实体在搜索会话历史中的共现次数超过预设的第一阈值,将候选实体添加至候选实体集合中。

在一些可选的实现方式中,获取单元610在获取与待搜索实体关联的候选实体集合时,还可以进一步配置用于:将预设的语料库中,与待搜索实体具有共现关系的实体作为共现候选实体;将与待搜索实体的相关度超过预设的第二阈值的共现候选实体添加至候选实体集合中。

在一些可选的实现方式中,本实施例的实体推荐装置还可以包括训练单元(图中未示出)。训练单元可配置用于训练排序模型。

在这些可选的实现方式中,训练单元可以包括:训练样本生成模块,配置用于生成训练样本集,训练样本集中的每个训练样本包括三元组和点击行为标注,三元组包括用户身份标识、第一实体和第二实体,点击行为标注用于指示用户在搜索第一实体得到的搜索结果中,是否对第二实体具有点击行为;特征向量生成模块,配置用于对于所生成的训练样本集中的每一个训练样本,生成该训练样本的特征向量;迭代训练模块,配置用于将训练样本集和所生成的特征向量输入预先建立的梯度提升决策树模型,基于随机梯度下降算法对梯度提升决策树模型进行训练;以及生成单元,配置用于响应于交叉熵损失函数最小,生成排序模型;其中,特征向量包括用于指示以下至少一者的特征值:各三元组中的第一实体和第二实体之间的相关度;各三元组中的用户对该三元组中第二实体的兴趣度;以及各三元组中的用户对该三元组中第二实体的预期度。

在一些可选的实现方式中,用于指示各三元组中的第一实体和第二实体之间的相关度的分量包括以下至少一者:三元组中的第一实体和第二实体在预设知识图谱中的相关度;三元组中的第一实体和第二实体在搜索会话历史中的共现度;三元组中的第一实体和第二实体在预设语料库中的共现度;以及三元组中的第一实体和第二实体的主题相似度。

在一些可选的实现方式中,用于指示各三元组中的用户对该三元组中第二实体的兴趣度的特征值包括以下至少一者:该三元组中的第二实体的点击率;第二实体在预设分类表中所属的主题类别的点击率;三元组中的第一实体和第二实体的语义相似度。

在一些可选的实现方式中,用于指示各三元组中的用户对该三元组中第二实体的预期度的特征值包括以下至少一者:基于三元组中用户的历史点击数据确定的用户和/或第一实体对第二实体的关系熟悉度;三元组中的第二实体相对用户和/或第一实体的意外度;以及三元组中,第一实体的点击多样性。

下面参考图7,其示出了适于用来实现本申请实施例的服务器的计算机系统700的结构示意图。图7示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram703中,还存储有系统700操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705包括硬盘等的存储部分706;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分707。通信部分707经由诸如因特网的网络执行通信处理。驱动器708也根据需要连接至i/o接口705。可拆卸介质709,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器708上,以便于从其上读出的计算机程序根据需要被安装入存储部分706。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分707从网络上被下载和安装,和/或从可拆卸介质709被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、排序单元以及推荐单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:响应于接收到用户对实体的搜索请求,获取与待搜索实体关联的候选实体集合;将候选实体集合输入预先训练的排序模型,得到候选实体序列;以及从候选实体序列中选取候选实体,并向用户推荐所选取的候选实体;其中,排序模型基于以下至少一者对候选实体集合进行排序:候选实体集合中,各候选实体与待搜索实体的相关度;用户对候选实体集合中的各候选实体的兴趣度;以及候选实体集合中,各候选实体相对用户的预期度。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1