一种向量生成方法及装置与流程

文档序号:17626917发布日期:2019-05-10 23:45阅读:238来源:国知局
一种向量生成方法及装置与流程

本申请涉及机器学习领域,尤其涉及一种向量生成方法及装置。



背景技术:

随着互联网的蓬勃发展,通常使用所训练的计算机模型来进行一些事务处理,比如通过计算机模型评估广告的点击率等。在某些计算机模型的训练过程中,可能会用到身份(identification,id)特征,这些身份特征包括用户标识、广告标识、客户标识等。

在实际应用中,往往将多个身份特征以独热编码(onehot)的方式生成身份特征向量,从而用于计算机模型的训练。在独热编码的身份特征向量中,身份特征向量的每一个维度分别代表一个身份特征,当某一个维度的特征值不为0时,表示该身份特征向量包含该维度所对应的身份特征。相反,如果某个维度特征值为0,则表示该身份特征向量不包含对应的身份特征。

但是,由于独热编码的身份特征向量中,通常只有一个或少数几个维度的特征值不为0,因此当身份特征向量的维度较多时,大量特征值为0的独热编码身份特征向量会造成存储和运算资源的浪费。



技术实现要素:

本申请实施例提供一种向量生成方法及装置,能够用于解决现有技术中独热编码的身份特征向量所造成存储和运算资源的浪费。

本申请实施例提供了一种向量生成方法,该方法包括:

获取身份特征数据;

将所述身份特征数据作为预先建立的稠密向量相关模型的输入值,并获取所述模型的稠密向量输出结果,其中所述稠密向量输出结果的向量维度为预设值;

根据模型的稠密向量输出结果生成向量维度为所述预设值的身份特征稠密向量。

优选的,获取身份特征数据,具体包括:从用户行为日志中提取用户标识以及对应的至少一个行为对象标识;

根据所述用户标识以及对应的各行为对象标识生成所述身份特征数据。

优选的,所述身份特征稠密向量包括用户标识稠密向量和行为对象标识稠密向量;则,

根据模型的稠密向量输出结果生成身份特征稠密向量,具体包括:

根据所述身份特征数据中用户标识的稠密向量输出结果,生成用户标识稠密向量;以及,

根据所述身份特征数据中各行为对象标识的稠密向量输出结果的平均值,生成行为对象标识稠密向量。

优选的,所述方法还包括:对所述模型的稠密向量输出结果的准确性进行评估。

优选的,对所述模型的稠密向量输出结果的准确性进行评估,具体包括:

确定测试样本集以及所述测试样本集中各标准向量对应的标签;

根据与所述稠密向量输出结果的向量距离由小到大的顺序,从所述测试样本集中确定出多个目标标准向量;

根据各所述目标标准向量分别对应的标签与稠密向量输出结果的标签是否一致,对所述输出结果的准确性进行评估。

优选的,所述稠密向量相关模型,具体包括:skip-gram结构的word2vec模型。

优选的,所述word2vec模型具体包括:已取消滑动窗口大小限制的word2vec模型。

本申请实施例还提供了一种向量生成装置,该装置包括:获取单元、输入单元以及生成单元,其中:

所述获取单元,获取身份特征数据;

所述输入单元,将所述身份特征数据作为预先建立的稠密向量相关模型的输入值,并获取所述模型的稠密向量输出结果,其中所述稠密向量输出结果的向量维度为预设值;

所述生成单元,根据模型的稠密向量输出结果生成向量维度为所述预设值的身份特征稠密向量。

优选的,所述装置还包括评估单元,对所述模型的稠密向量输出结果的准确性进行评估。

优选的,所述获取单元,具体用于:从用户行为日志中提取用户标识以及对应的至少一个行为对象标识;

根据所述用户标识以及对应的各行为对象标识生成所述身份特征数据。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

采用本申请实施例所提供的向量生成方法,能够通过稠密向量相关模型生成模型的稠密向量输出结果,并通过该稠密向量输出结果生成身份特征稠密向量,从而克服了现有技术中,独热独热编码身份特征向量通常只有一个或少数几个维度的特征值不为0,从而在向量维度较多时,大量特征值为0,而造成存储和运算资源的浪费的问题。特别是,通常稠密向量相关模型的输出结果的向量维度为设定值,此时根据该输出结果所生成的身份特征稠密向量的向量维度也为该设定值,通过这种方式来固定稠密向量的向量维度,能够进一步节省存储和运算资源。另外,相对于现有技术中的独热编码身份特征向量,本申请实施例所生成的多个身份特征稠密向量中,它们之间的向量距离还可以反映身份特征之间的相关性,比如两个身份特征稠密向量之间的距离越近,反映出这两个身份特征(比如用户标识)越相似,身份特征稠密向量的这种特性还能提升其在机器学习中的效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种向量生成方法的具体实现流程示意图;

图2为本申请实施例提供的稠密向量相关模型的具体结构示意图;

图3为本申请实施例提供的具体场景下,向量生成方法的具体实现流程示意图;

图4为本申请实施例提供的一种向量生成装置的具体结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

如前所述,目前通常将多个身份特征以独热编码(onehot)的方式生成身份特征向量,从而用于计算机模型的训练。在独热编码的身份特征向量中,身份特征向量的每一个维度分别代表一个身份特征,当某一个维度的特征值不为0时,表示该身份特征向量包含该维度所对应的身份特征。相反,如果某个维度特征值为0,则表示该身份特征向量不包含对应的身份特征。

但是,由于独热编码的身份特征向量中,通常只有一个或少数几个维度的特征值不为0,因此当身份特征向量的维度较多时,大量特征值为0的独热编码身份特征向量会造成存储和运算资源的浪费。

比如,独热编码的身份特征向量的维度为1000,但只有一个维度的特征值不为0,也就是说该独热编码的身份特征向量包含该维度所对应的身份特征,但是不包含其他维度所对应的身份特征。该1000个维度的独热编码身份特征向量在存储或用于训练计算机模型时,会造成大量的存储和运算资源的浪费。

实施例1

实施例1提供了一种向量生成方法,用于解决现有技术中的问题。该方法的具体流程示意图如图1所示,包括下述步骤:

步骤s11:获取身份特征数据。

这里的身份特征数据可以包括各类身份(identification,id)特征,比如用户标识以及行为对象标识。其中用户标识通常用于唯一标识用户,可以是用户的登录账号、ip地址等。行为对象标识用以唯一标识用户的操作行为所针对的对象,根据行为对象的不同,行为对象标识可以包括广告标识、客户标识等。

获取身份特征数据的方式可以有多种,比如从所建立的数据库中获取身份特征数据,也可以是通过其他方式获取身份特征数据。

在实际应用中,通常用户行为日志中记录有用户的日常操作行为,比如用户行为日志中可能会记录用户所点击的广告、所阅读的文章等,因此可以通过用户行为日志获取身份特征数据。

在通过用户行为日志获取身份特征数据时,可以先从用户行为日志中提取用户标识以及对应的至少一个行为对象标识,然后可以根据用户标识以及对应的各行为对象标识生成身份特征数据。

比如,从用户行为日志中提取用户标识,简称user_id,以及该用户在一段时间内点击过的所有广告的广告标识,简称idea_id1、idea_id2、idea_id3等。然后根据user_id以及idea_id1、idea_id2、idea_id3等生成身份特征数据。可以将用户标识和广告标识以如下字符串的形式排列生成身份特征数据:user_ididea_id1,idea_id2,idea_id3。

步骤s12:将身份特征数据作为预先建立的稠密向量相关模型的输入值,获取模型的输出结果。

该稠密向量相关模型能够根据输入值生成对应的稠密向量,并作为输出结果进行输出。比如作为输入值的身份特征数据为user_id、idea_id1、idea_id2、idea_id3,输出结果可以为user_id、idea_id1、idea_id2、idea_id3分别对应的四个稠密向量。

在实际应用中,通常可以将稠密向量相关模型输出结果的稠密向量的向量维度进行固定,即将稠密向量输出结果的向量维度数量设定为预设值,比如可以设定为4维稠密向量或设定为其他维度,通过这种向量维度数量归一化的处理能够提高数据处理效率。

另外,该预设值的大小可以根据实际处理过程来确定,比如,可以根据身份特征数据中的身份特征数量来确定,当身份特征数量较大时,该预设值可以相对较大,当身份特征数量较小时,该预设值可以相对较小。

稠密向量相关模型可以有多种方式预先训练获得,一种优选的方式可以是预先训练获得的skip-gram结构的word2vec模型。其中,word2vec模型为用来产生词向量的相关模型,它可以有skip-gram、连续词袋两种结构。这里的稠密向量相关模型,可以是skip-gram结构的word2vec模型。

另外,由于word2vec模型将输入值中的某个词(称为目标词)生成稠密向量时,通常会默认设定滑动窗口,滑动窗口内的词才会对目标词所生成稠密向量造成影响,滑动窗口外的词并不会影响目标词所生成稠密向量。而在本申请中,由于身份特征数据中的用户标识,以及各个行为对象标识之间并不存在必然的前后顺序相关性,本申请的word2vec模型可以具体是已取消滑动窗口大小限制的word2vec模型。在取消滑动窗口大小限制的word2vec模型中,输入值中的每一个词均会对目标词所生成稠密向量造成影响,并且每一个词对目标词所生成稠密向量造成影响的权重因子可以相同。如图2所示为本申请实施例所提供的skip-gram结构的word2vec模型的结构示意图,该模型已取消滑动窗口大小限制,并且各个词的权重因子相同。

可以将步骤s11中所获取的身份特征数据作为模型的输入值,输入到预先建立的稠密向量相关模型中,从而获取该模型所输出的稠密向量,作为输出结果。

步骤s13:根据模型的输出结果生成身份特征稠密向量。

可以将模型的输出结果直接作为身份特征稠密向量,也可以对模型的输出结果进一步进行处理,比如求平均值或者加权平均值从而生成身份特征稠密向量。

当模型的稠密向量输出结果中,向量维度设定为预设值时,这种根据平均值或加权平均值等方式所生成的身份特征稠密向量的向量维度也通常为该预设值。

另一方面,由于身份特征数据中可能会包括用户标识以及行为对象标识,因此最终所生成的身份特征稠密向量也可以包括用户标识稠密向量,以及行为对象标识稠密向量。其中,用户标识作为稠密向量相关模型的输入值,并根据其输出结果所生成的身份特征稠密向量,对应的为用户标识稠密向量;当以行为对象标识作为稠密向量相关模型的输入值时,根据模型的输出结果所生成的身份特征稠密向量,对应的为行为对象标识稠密向量。

采用本申请实施例1所提供的向量生成方法,能够通过稠密向量相关模型生成模型的稠密向量输出结果,并通过该稠密向量输出结果生成身份特征稠密向量,从而克服了现有技术中,独热独热编码身份特征向量通常只有一个或少数几个维度的特征值不为0,从而在向量维度较多时,大量特征值为0,而造成存储和运算资源的浪费的问题。特别是,通常稠密向量相关模型的输出结果的向量维度为设定值,此时根据该输出结果所生成的身份特征稠密向量的向量维度也为该设定值,通过这种方式来固定稠密向量的向量维度,能够进一步节省存储和运算资源。

另一方面,相对于现有技术中的独热编码身份特征向量,本申请实施例所生成的多个身份特征稠密向量中,它们之间的向量距离还可以反映身份特征之间的相关性,比如两个身份特征稠密向量之间的距离越近,反映出这两个身份特征(比如用户标识)越相似,身份特征稠密向量的这种特性还能提升其在机器学习中的效果。

在实际应用中,由于所获取身份特征数据中,包括从用户行为日志中提取用户标识以及对应的至少一个行为对象标识。因此,这种只有一个用户标识,同时对一个有对个行为对象标识时,根据模型的输出结果生成身份特征稠密向量,可以具体是根据身份特征数据中用户标识的输出结果,生成用户标识稠密向量,比如将用户标识在模型的输出结果直接作为用户标识稠密向量;而对于行为对象标识,可以根据身份特征数据中各行为对象标输出结果的平均值或加权平均值,生成行为对象标识稠密向量。

比如,身份特征数据为user_id、idea_id1、idea_id2、idea_id3,可以将user_id的模型输出结果直接作为用户标识稠密向量,将idea_id1、idea_id2、idea_id3的模型输出结果求平均值或加权平均值,从而作为行为对象标识稠密向量。

特别是在广告领域中,用户通常会连续点击了多个广告,从而使得根据用户行为日志所生成的身份特征数据中,用户标识对应多个广告标识,此时可以将各个广告标识的模型输出求平均值作为对象标识稠密向量。

需要说明的是,在步骤s12获取模型的输出结果之后,还可以进一步对模型的输出结果的准确性进行评估,从而进一步保证后续所生成的身份特征稠密向量的准确性。

其中,对模型的输出结果的准确性进行评估的方式可以有多种,其中一种优选的方式可以是:

确定测试样本集,该测试样本集中包括标准向量,该标准向量作为评估标准,从而衡量模型输出结果的准确性。其中确定测试样本集的方式可以是,从标准向量库中以一定规则抽取若干个标准向量,从而形成测试样本集,这里的抽取规则可以是随机抽取或者是其他的抽取规则,所抽取的标准向量的数量也可以根据实际需要(比如,测试规模)来确定,这里对此并不限定。

确定测试样本集之后,可以查询标签字典,该标签字典中预存有各个标准向量及其对应的标签。通过查询标签字典的方式,可以确定测试样本集中各个标准向量分别所对应的标签。

确定测试样本集中各个标准向量与模型输出结果的向量距离。这里的向量距离可以是向量之间的欧氏距离或其他向量距离,比如,可以分别计算各个标准向量与模型输出结果之间的欧式距离。

在确定各个标准向量与模型输出结果之间的向量距离之后,可以根据与输出结果的向量距离由小到大的顺序,从测试样本集中的标准向量中确定出多个目标标准向量,也就是说从测试样本集中确定出与模型输出结果向量距离最近的多个目标标准向量。其中,这里多个目标标准向量的具体数量可以根据实际需要确定,通常可以是10个,也可以是其他数量。

在确定出多个目标标准向量之后,根据各目标标准向量分别对应的标签与输出结果的标签是否一致,对输出结果的准确性进行评估。

其中模型输出结果的标签可以根据身份特征数据来确定,该标签通常能够反映出身份特征数据所属的类别。比如所述的行业、是否为用户标识等。比如身份特征数据为广告标识时,该标签通常为广告。该身份特征数据具体为用户标识时,该标签通常为用户。

这里根据各目标标准向量分别对应的标签与输出结果的标签是否一致,对输出结果的准确性进行评估,具体方式可以有多种。比如,计算与输出结果标签一致的目标标准向量的数量,并进一步计算其在全部目标标准向量中的占比,根据该占比能够对输出结果的准确性进行评估,通常该占比越高,说明输出结果的准确性越高。特别是,当该占比大于第一预设阈值时,说明模型输出结果准确,当该占比小于第二预设阈值时,说明该模型输出结果不准确。

其中,第一预设阈值和第二预设阈值的大小可以根据具体场景,比如对准确性要求的高低进行设定。

需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法的各步骤也可以由不同设备作为执行主体。比如,步骤s11和步骤s12的执行主体可以为设备1;又比如,步骤s11的执行主体可以为设备1,步骤s12和的执行主体可以为设备2;等等。

上述是对本申请实施例所提供的向量生成方法的具体说明,为了便于理解,这里可以结合具体地应用场景,对该方法进一步说明。在该应用场景下,身份特征数据中包括用户标识user_id和广告标识idea_id1、idea_id2、idea_id3。其具体步骤如图3所示,包括如下步骤

步骤s21:从用户行为日志中提取user_id和idea_id1、idea_id2、idea_id3,并生成身份特征数据user_ididea_id1,idea_id2,idea_id3。

步骤s22:将user_ididea_id1,idea_id2,idea_id3作为模型的输入值,输入到skip-gram结构的word2vec模型中。其中该word2vec模型已取消滑动窗口大小限制。

步骤s23:通过测试样本集对模型输出结果的准确性进行评估。

该模型输出结果的稠密向量中,向量维度通常被设定为某一个预设值,比如4为向量。

其中可以依次对user_id、idea_id1、idea_id2和idea_id3的模型输出结果的准确性进行评估。比如,根据user_id的模型输出结果与测试样本集中各个标准向量的向量距离,确定出距离最近的10个目标标准向量,并计算目标标准向量中标签与user_id的标签(标签可以为“用户”)一致的数量,从而最终计算标签一致的目标标准向量在全部目标标准向量中的占比,从而对user_id的模型输出结果的准确性进行评估。

步骤s24:将user_id的模型输出结果作为用户标识稠密向量,并将idea_id1、idea_id2和idea_id3的模型输出结果的平均值作为行为对象标识稠密向量。

在模型输出结果的稠密向量的向量维度被设置为某一个预设值时,最终所生成的用户标识稠密向量和行为对象标识稠密向量的向量维度也为该预设值。

实施例2

基于与本申请实施例1相同的发明构思,本申请实施例2提供了一种向量生成装置,能够用于解决现有技术中的问题。对于本申请实施例2,如有不清楚之处,可以参考本申请实施例1中的相关内容。如图4所示,该装置30包括:获取单元301、输入单元302以及生成单元303,其中:

所述获取单元301,获取身份特征数据;

所述输入单元302,将所述身份特征数据作为预先建立的稠密向量相关模型的输入值,并获取所述模型的稠密向量输出结果,其中所述稠密向量输出结果的向量维度为预设值;

所述生成单元303,根据模型的稠密向量输出结果生成向量维度为所述预设值的身份特征稠密向量。

采用本申请实施例2所提供的装置30,由于该装置采用与本申请实施例1相同的发明构思,因此也能够解决现有技术中的问题,这里对此不再赘述。另外,在实际应用中,该装置通过结合具体地硬件设备所取得的其他技术效果,也在本申请的保护范围之内。

在实际应用中,对于获取单元301获取身份特征数据,可以具体包括,从用户行为日志中提取用户标识以及对应的至少一个行为对象标识,然后根据所述用户标识以及对应的各行为对象标识生成所述身份特征数据。

相应的对于生成单元303,根据模型的稠密向量输出结果生成向量维度为所述预设值的身份特征稠密向量,可以具体包括:根据所述身份特征数据中用户标识的稠密向量输出结果,生成向量维度为该预设值用户标识稠密向量;以及,根据所述身份特征数据中各行为对象标识稠密向量输出结果的平均值,生成向量维度为预设值行为对象标识稠密向量。

该装置30还可以包括评估单元,用于对所述模型的稠密向量输出结果的准确性进行评估。其中该评估单元可以连接与输入单元302。

其中,对所述模型的输出结果的准确性进行评估,可以具体包括:确定测试样本集以及所述测试样本集中各标准向量对应的标签;根据与所述稠密向量输出结果的向量距离由小到大的顺序,从所述测试样本集中确定出多个目标标准向量;根据各所述目标标准向量分别对应的标签与稠密向量输出结果的标签是否一致,对所述输出结果的准确性进行评估。

预先建立的稠密向量相关模型,可以具体包括:skip-gram结构的word2vec模型,其中该word2vec模型具体包括已取消滑动窗口大小限制。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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