优化样本向量的方法及装置、计算机设备与流程

文档序号:13137874阅读:85来源:国知局
优化样本向量的方法及装置、计算机设备与流程

本申请涉及机器学习技术领域,尤其涉及一种优化样本向量的方法及装置、计算机设备。



背景技术:

目前,机器学习(machinelearning,ml)已经被应用于诸多领域,例如,人工智能(artificialintelligence,ai)。机器学习任务通常是基于样本数据来进行的,每个样本对应于包含至少一个特征的特征列表。对于每一样本而言,其所对应的特征列表中的若干特征之间往往存在一定的非线性关系,在当今的很多机器学习任务中,若能够捕捉到特征间的非线性关系并将其应用到机器学习中,可以有效提高机器学习的效果。目前还无法对特征间的非线性关系进行捕捉。



技术实现要素:

有鉴于此,本申请提供一种优化样本向量的方法及装置、计算机设备。

为实现上述目的,本申请提供的技术方案如下:

一种优化样本向量的方法,包括:

获取样本数据,所述样本数据包括若干与样本对应的样本向量以及若干与样本特征对应的特征向量,其中每一样本对应于至少一个样本特征;

对于任一待优化样本,利用目标函数,优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,获得优化后所得的样本向量以及特征向量;其中所述目标函数的输出值用以表征所述待优化样本和该待优化样本对应的至少一个样本特征之间的关联度,优化后的样本向量和特征向量使得所述关联度达到优化条件。

一种优化样本向量的装置,包括:

数据获取单元,获取样本数据,所述样本数据包括若干与样本对应的样本向量以及若干与样本特征对应的特征向量,其中每一样本对应于至少一个样本特征;

数据优化单元,对于任一待优化样本,利用目标函数,优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,获得优化后所得的样本向量以及特征向量;其中所述目标函数的输出值用以表征所述待优化样本和该待优化样本对应的至少一个样本特征之间的关联度,优化后的样本向量和特征向量使得所述关联度达到优化条件。

一种计算机设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

所述处理器被配置为:

获取样本数据,所述样本数据包括若干与样本对应的样本向量以及若干与样本特征对应的特征向量,其中每一样本对应于至少一个样本特征;

对于任一待优化样本,利用目标函数,优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,获得优化后所得的样本向量以及特征向量;其中所述目标函数的输出值用以表征所述待优化样本和该待优化样本对应的至少一个样本特征之间的关联度,优化后的样本向量和特征向量使得所述关联度达到优化条件。

通过以上技术方案可以看出,在获取样本数据后,对于任一待优化样本,可以优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,得到优化后的样本向量及特征向量。其中,优化的目的为将样本特征间的非线性关系体现在优化后所得的样本向量或特征向量中,最终,可将优化所得的向量应用于各类机器学习任务中,以提升机器学习的效果。

附图说明

图1为根据一示例性实施例示出的一种优化样本向量的方法的流程;

图2示出了样本和样本特征间的关系;

图3为根据一示例性实施例示出的另一种优化样本向量的方法的过程;

图4为根据一示例性实施例示出的一种优化样本向量的装置的框图。

具体实施方式

在相关技术出现的监督学习方法中,输入数据一般可以包括一个二维的数据矩阵(每行代表一个训练样本,每列代表一个特征)以及一个一维的向量(表示每个样本对应的标签)。在相关技术中,一些线性模型可以捕捉到输入特征与标签之间的线性关系,如逻辑回归(logisticregression)模型。但是,对于非线性模型,目前还没有办法捕捉特征间的非线性关系并应用到机器学习任务中,以至于无法使得机器学习的效果达到更佳。为此,本文提出了一种优化样本向量的方案,来获得特征间的非线性关系,以用于机器学习(machinelearning,ml)中。

图1为根据一示例性实施例示出的一种优化样本向量的方法的流程。其中,机器学习任务是基于一个样本集d来进行的,假设该样本集d包含n个样本x1~xn,每个样本分别对应于一个包含至少一个样本特征的特征列表,每个样本所对应的样本特征的数量可以不同,其中,样本可以指用于机器学习的数据对象,样本特征可以指样本对应的各属性下的特征。例如,样本可为用户,样本特征可包括:性别、年龄、收入水平、兴趣爱好等维度。如图1所示,在一实施例中,该优化样本向量的方法可以通过下述步骤102~步骤104来实现,其中:

在步骤102中,获取样本数据,其中,所述样本数据可包括若干与样本对应的样本向量以及若干与样本特征对应的特征向量,其中每一样本对应于至少一个样本特征。

样本数据与特定的样本集d对应,例如,样本集d包含1000个样本,每个样本假设对应于100个样本特征,则获取的样本数据中包括1000个样本向量,以及10万个特征向量(假设不考虑不同样本具备相同特征)。

对于样本集d中的每一样本,可以通过一个k维的样本向量来表示,同样地,对于与样本对应的每一样本特征,也可以通过一个k维的特征向量来表示。其中,可以参照para2vec中确定词嵌入(wordembedding)向量的方法来初始化各个样本向量以及各个特征向量。与确定词嵌入wordembedding向量的原理相同,可以根据样本特征间的相似度来确定相应的特征向量,确保每个样本特征都可以通过相应的特征向量进行表示。

在步骤104中,对于任一待优化样本,利用目标函数,优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,获得优化后所得的样本向量以及特征向量;其中所述目标函数的输出值用以表征所述待优化样本和该待优化样本对应的至少一个样本特征之间的关联度,优化后的样本向量和特征向量使得所述关联度达到优化条件。

对于样本集d中的任一样本xi(1≤i≤n),可以将其选定为待优化样本。与该待优化样本xi对应的特征列表可表示为:其中,mi为该特征列表包含的样本特征的数量。为了捕捉特征列表:中mi个样本特征间的非线性关系,需要通过目标函数来优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量。其中,若多个样本特征出现在同一样本的特征列表中,则在一定程度上可以表明这几个样本特征之间具有一定的关联性。其中,向量优化的目标是使得任一样本xi和其对应的mi个样本特征间的关联度可以到达优化条件。其中,优化条件可以预先设定,例如:设定优化条件为使得所述关联度达到最高,或者接近于最高。所谓样本和样本特征之间的关联度高,是指通过该样本xi对应的样本向量vi,可以预测出与该样本xi对应的样本特征有哪些。例如:与样本xi对应的样本特征包括:f1、f2、f3,则最终优化的目的是使得与样本xi对应的样本向量和上述f1、f2、f3对应的样本向量之间的关联度是最高的,其中关联度的高低可以通过向量之间进行运算(如向量乘积)所得数值来表征。如图2所示,通过优化,可以得到优化后的与样本xi对应的样本向量vi,并通过该样本向量能够预测出与该样本xi所对应的样本特征为:中的任意一个或多个,其中,可通过ufj表示中的每一样本特征对应的特征向量。

在一实施例中,目标函数可为:

其中,优化的目的是使得上述对数概率logp的值最大。

在可选实施例中,其中,σ(·)为softmax函数。

在一实施例中,对于样本xi,优化后的样本向量vi可以预测出与该样本xi对应的各个特征间的非线性关系,从而可以将与每一样本对应的优化后样本向量应用于不同的机器学习任务中。例如,在样本xi对应的原特征列表的基础上加上优化后的样本向量vi,组成新的特征列表,作为各种机器学习任务的输入。其中,所述机器学习任务可为无监督学习任务,解决了目前无监督学习任务中无法捕捉到特征间非线性关系的问题。当然,上述机器学习任务并不限于无监督学习,也可以是逻辑回归,决策树等。另外,由于样本集中的每个样本都可以独立地优化其对应的样本向量v和特征向量u,因此,可以并行地针对每一样本进行优化,提高机器学习效率。

图3为根据一示例性实施例示出的另一种机器学习方法的过程。如图3所示,在一实施例中,步骤104可以具体通过如下过程来实现:

在步骤142中,对于任一待优化样本,从与该待优化样本对应的样本特征中选取至少一个待优化样本特征,获得与所述待优化样本对应的样本向量以及与所述待优化样本特征对应的特征向量。

由于可以针对样本集d中的任一样本独立地进行优化,故可以从样本集d中随机选择一个样本xi,作为待优化样本。本实施例中,为使得优化所得的样本向量能够预测出特征列表中包含的各样本特征间的非线性关系,可以不断地从待优化样本xi对应的特征列表中随机地选取c(1≤c≤mi)个样本特征,即选取对应的c个特征向量。

在步骤144中,利用目标函数,优化与所述待优化样本对应的样本向量以及与所述待优化样本特征对应的特征向量。

在一可选的实施例中,所述目标函数可以为:

其中,c表示选取的待优化样本特征的数量,ufj表示每一与所述待优化样本特征对应的特征向量,ufl表示与样本集对应的特征向量集合中的每一特征向量,所述特征向量集合包含所述样本集涉及的所有特征向量,vi为与所述待优化样本对应的样本向量,h为所述样本集涉及到的特征向量总数。

在上述公式二中,优化的目的是使得分子部分尽可能大,使得分母部分尽可能小,从而求解出logp取最大值时的ufj、vi的取值(即优化后的样本向量以及选取的各个特征向量)。当然,在其他实施例中,并不一定通过转置后的样本向量与特征向量的乘积来表达特定样本和特定样本特征之间的关联度,如:通过样本向量和特征向量的求和等方式来表达特定样本和特定样本特征之间的关联度,即,对上述目标函数的具体表达并不限制。

关于上述公式中的h,可以通过这样的例子来说明:假设某个样本集包含1000个样本,并且假设每个样本对应于100个特征,为便于说明,假定不同样本所对应的样本特征没有重复的,在样本集中只出现一次。则在该例子中,上述h=1000*100=100000。当然,在实际应用中,样本特征难免会重复出现,需要在计算上述公式二中的分母时进行相应的去重。

可见,在优化时,由于上述公式二中的分母部分需要针对大量的特征向量(可能达到百万个特征)进行计算,这导致计算机所需要承担的计算量非常大。在一些可选实施例中,为提高优化效率,可利用目标函数并采用负抽样法和/或层次softmax法,优化与所述待优化样本对应的样本向量以及与所述待优化样本特征对应的特征向量。其中,负抽样法是指从h个特征中利用随机抽样的方式抽样出一定数量的特征并进行计算,从而降低运算量。层次softmax(hierarchicalsoftmax)是指通过构建hoffman树,并依据hoffman树的路径来求解上述目标函数的分母部分。

在步骤146中,判定是否满足设定的迭代终止条件,若满足,则进入步骤106(输出优化所得的样本向量),若不满足,则返回步骤142。

在一实施例中,所述迭代终止条件可为:

迭代次数超过设定次数(可以根据人为经验设定)。

在另一实施例中,所述迭代终止条件可为:

前后两次迭代所得的优化后样本向量间的差值小于设定阈值ε(即优化后所得参数收敛)。

通过上述技术方案可见,优化时,可以从样本集d从不断选取一个样本,并针对该样本对应的特征列表,随机选取至少一个样本特征,并利用目标函数对选取的特征向量和样本向量进行优化,并且不断重复上述优化过程,直至满足设定的迭代终止条件。当满足上述迭代终止条件之后,也就得到了最终的优化后样本向量,并将优化后样本向量插入到原特征列表中作为新增的一个输入特征,应用于相应的机器学习任务(如非监督学习)中,从而实现将特征间的非线性关系应用于机器学习中来提高机器学习效果。

与上述方法相应,本申请实施例还提供一种优化样本向量的装置,该优化样本向量的装置可以应用于计算机设备(如pc、服务器等)中,如图4所示,在一实施例中,一种优化样本向量的装置可以包括:

数据获取单元201,获取样本数据,所述样本数据包括若干与样本对应的样本向量以及若干与样本特征对应的特征向量,其中每一样本对应于至少一个样本特征。

数据优化单元202,对于任一待优化样本,利用目标函数,优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,获得优化后所得的样本向量以及特征向量;其中所述目标函数的输出值用以表征所述待优化样本和该待优化样本对应的至少一个样本特征之间的关联度,优化后的样本向量和特征向量使得所述关联度达到优化条件。

在一可选实施例中,所述优化条件为所述关联度达到最高。

在一可选实施例中,所述数据优化单元202可包括:

特征选取子单元,对于任一待优化样本,从与该待优化样本对应的样本特征中选取至少一个待优化样本特征,获得与所述待优化样本对应的样本向量以及与所述待优化样本特征对应的特征向量;

优化子单元,利用目标函数,优化与所述待优化样本对应的样本向量以及与所述待优化样本特征对应的特征向量;

其中,重复执行所述特征选取子单元、所述优化子单元,直至满足迭代终止条件。

在一可选实施例中,所述目标函数可为:

其中,c表示选取的待优化样本特征的数量,ufj表示每一与所述待优化样本特征对应的特征向量,ufl表示与样本集对应的特征向量集合中的每一特征向量,所述特征向量集合包含所述样本集涉及的所有特征向量,vi为与所述待优化样本对应的样本向量,h为所述样本集涉及到的特征向量总数。

在一可选实施例中,所述数据优化单元可具体用于:

利用目标函数并采用负抽样法和/或层次softmax法,优化与所述待优化样本对应的样本向量以及与所述待优化样本特征对应的特征向量。

在一可选实施例中,所述迭代终止条件包括:

迭代次数超过设定次数;和/或,

前后两次迭代所得的优化后样本向量间的差值小于设定阈值。

在本申请实施例中,还提供一种计算机设备,计算机设备可以包括处理器、内部总线、网络接口、存储器(包括内存以及非易失性存储器),当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。所述处理器被配置为:

获取样本数据,所述样本数据包括若干与样本对应的样本向量以及若干与样本特征对应的特征向量,其中每一样本对应于至少一个样本特征;

对于任一待优化样本,利用目标函数,优化与所述待优化样本对应的样本向量及与所述待优化样本的样本特征对应的特征向量,获得优化后所得的样本向量以及特征向量;其中所述目标函数的输出值用以表征所述待优化样本和该待优化样本对应的至少一个样本特征之间的关联度,优化后的样本向量和特征向量使得所述关联度达到优化条件。

当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于计算机设备实施例、装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

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

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

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

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

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

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

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

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

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

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

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

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