一种基于匹配学习的多标签分类学习方法与流程

文档序号:14872158发布日期:2018-07-07 01:00阅读:351来源:国知局

本发明涉及机器学习技术领域,尤其涉及一种基于匹配学习和神经网络模型的极大规模多标签分类学习方法。



背景技术:

随着web2.0技术的迅速发展,互联网中积累了大量用户相关甚至是用户生成的内容。在种类繁多的海量数据中,蕴含着丰富的且能够反应用户特征的信息,是对用户进行画像的重要数据支撑。在社会计算的研究中,用户画像一直是一个重要问题。用户画像,即用户信息标签化,为企业提供了用户的基本信息,能够帮助企业快速找到精准用户群体以及用户需求等更为广泛的反馈信息。用户画像的核心任务就是为用户打“标签”。如何利用数据挖掘或机器学习的手段实现对用户自动打标签对于企业而言是一个巨大的挑战。

通常,上述任务可以转化为机器学习中的多标签分类问题。但是,在海量社交媒体数据背景下,标签的数量通常能够达到数万、数十万甚至更多。传统的多标签分类学习算法难以扩展到如此规模的标签数据上。并且,标签数量上一定的规模后,会有长尾标签等新问题出现。因此,需要设计新的模型和算法来处理这样的数据。

目前一种主流的大规模标签分类学习算法是基于嵌入的多标签学习。这类算法采用低秩空间的假设,不能够很好地处理长尾标签。虽然近年来有针对长尾标签的改进算法被提出,但是仍有着各自的缺陷。因此需要一种更加鲁棒性的基于嵌入的大规模多标签学习方法。



技术实现要素:

本发明有鉴于大规模多标签学习时面临特征、标签维度非常高,样本量巨大以及标签存在明显长尾分布等特点,构建了一种基于匹配学习的极大规模多标签分类学习方法。

为了实现上述目的,本发明采取了如下技术方案:

本发明提供了一种基于匹配学习的多标签分类学习方法,包括如下步骤:

s1:收集互联网中的客户端数据,对所述客户端数据进行特征值计算,得到训练集d;

s2:遍历所述训练集d,设定所述训练集d中的负标签集合和正标签集合;

s3:计算所述训练集d中特征集合的嵌入式表征e;

s4:计算所述正标签集合的嵌入式表征z+和所述负标签集合的嵌入式表征z-

s5:对所述嵌入式表征e和所述嵌入式表征z+作损失计算得到正标签损失值,对所述嵌入式表征e与所述嵌入式表征z-作损失计算得到负标签损失值;

s6:依据所述正标签损失值和所述负标签损失值,采用梯度下降算法对所述训练集d进行训练,得到训练模型;

s7:当所述训练模型的损失值不再下降时,训练结束,并保存所述嵌入式表征z+和与所述嵌入式表征z+对应的正标签集合,否则返回s2;

s8:设定测试集,利用所述测试集对所述训练模型进行测试。

进一步地,所述s1还包括:

所述客户端数据包括客户端标签数据,提取所述客户端标签数据的文本特征和图像特征,并作特征值计算,从而得到多标签学习的训练集d={(x1,w1,y1)...(xn,wn,yn)},其中x表示特征集合,w表示所述x对应的特征值集合,y表示标签集合,1...n表示集合中数量。

进一步地,所述s2还包括:

s201:对所述训练集d作随机混洗;

s202:以步长为m遍历随机混洗后的训练集,每步长产生一个特征集合dm;

s203:在每个所述特征集合dm中随机采样n个负标签,得到所述标签集合y中的负标签集合,所述标签集合y中除去所述负标签集合剩余的标签为正标签集合。

进一步地,所述s3还包括:

通过模型的特征嵌入层得到所述特征集合x对应的嵌入向量集合ex,对所述嵌入向量集合ex作加权平均得到所述特征集合x的特征嵌入式表征e,即

其中,k表示所述特征集合x中的特征数量,k表示所述特征集合x中第k个元素。

进一步地,所述s4还包括:

1)通过模型的标签嵌入层得到所述正标签集合对应的嵌入向量集合z+y,对所述嵌入向量集合z+y作加权平均得到所述正标签集合的嵌入式表征z+,即

其中,k'表示所述标签集合y中的正标签数量,k表示所述标签集合y中第k个元素;

2)通过模型的标签嵌入层得到所述负标签集合对应的嵌入向量集合z-y,对所述嵌入向量集合z-y作加权平均得到所述负标签集合的嵌入式表征z-,即

其中,k'表示所述标签集合y中的负标签数量,k表示所述标签集合y中第k个元素。

进一步地,所述s5还包括:

1)利用ncl函数对所述嵌入式表征e和所述嵌入式表征z+作损失计算,得到正标签损失值l+(e,z+),即

其中,当所述嵌入式表征e和所述嵌入式表征z+之间的余弦相似度较高时,ncl较小,反之则ncl较大;

2)利用ncl函数对所述嵌入式表征e和所述嵌入式表征z-作损失计算,得到负标签损失值l-(e,z-),即

其中,当所述嵌入式表征e和所述嵌入式表征z-之间的余弦相似度较高时,ncl较大,反之则ncl较小。

进一步地,所述s8还包括:

设定测试集(xt,wt),利用所述测试集(xt,wt)对所述训练模型进行测试,具体的测试流程如下:

s801:根据s3中方式计算所述测试集(xt,wt)的特征集合的嵌入式表征et。

s802:所述嵌入式表征z+和与所述嵌入式表征z+对应的正标签集合共同表示为训练集标签表征{z},对所述嵌入式表征et和所述训练集标签表征{z}作余弦计算,返回所述训练集d与所述测试集(xt,wt)最相似的客户端数据所对应的标签集合;

s803:统计所述返回的标签集合中的标签频率,返回频率最高的k个标签作为预测结果。

由上述本发明提供的技术方案可以看出,本发明考虑了长尾标签对传统极大规模多标签分类模型学习的不利影响,提出利用特征集合和标签集合的匹配学习方法。此外,为了保证模型能够扩展到大规模数据集上,模型的学习采用了mini-batch的学习方式。这种方式既可以保证模型并行化学习,还可以支持模型在线增量学习。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于匹配学习的多标签分类学习方法的流程图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

实施例一

本实施例提供一种基于匹配学习的极大规模多标签的分类学习方法,结合图1所示,具体步骤如下:

步骤一、收集互联网中的用户数据,包含用户标签。

步骤二、从用户文本、图像等数据中提取特征,并做特征值计算。从而获得多标签学习的数据集d={(x1,w1,y1)...(xn,wn,yn)}。其中x为特征集合,w为对应的特征值集合,y为标签集合。

步骤三、从数据集中随机抽样一个作梯度下降mini-batch,准备对多标签模型的参数进行优化,具体步骤如下:

步骤301、对数据集d做随机混洗。

步骤302、以步长m遍历混洗后的数据集,每步产生一个mini-batchdm。

步骤303、为dm中每个数据点随机采样n个负标签集合。负标签集合从全部数据中随机采样获得。

步骤四、计算dm中每个数据特征集合的嵌入式表征e。计算方法是首先通过模型的特征嵌入层得到一个数据点每个特征x对应的嵌入向量ex,然后对k个特征的嵌入向量做加权平均得到数据点对应的特征嵌入式表征,计算公式为:

步骤五、计算batch中每个数据点正标签集合以及负标签集合的嵌入式表征z。计算方法为,通过模型的标签嵌入层得到一个数据点每个正确标签对应的嵌入向量zy,然后对k'正确标签的嵌入向量求平均得到标签集的嵌入式表征,计算公式为:负例的标签嵌入式表征计算同正例。

步骤六、将步骤四和步骤五中计算出的嵌入式表征输入到noisecontrastiveloss(简称ncl)函数中计算损失。对于特征表征e和它匹配的标签表征z+,ncl的计算如下:

对于e和对应的负例z-,ncl的计算如下:

当数据点的特征表征和正确的标签表征之间余弦相似度较高时,ncl较小,反之则ncl较大。当特征表征和错误的标签表征之间的余弦相似度较高时,ncl较大,反之则ncl较小。通过最小化所有数据点正负例ncl之和,可以达到匹配正确的特征和标签的嵌入式表征的目的。

步骤七、利用mini-batch梯度下降算法,根据ncl函数计算得到的损失值之后,对batch中数据对应的参数进行更新。

步骤八、当所有数据点都训练完一次后,回到步骤三进入下一轮更新。对所有数据点进行多轮的更新后,当模型的损失不再下降,则训练结束。之后,将所有数据点正确标签的嵌入式表征z以及对应的标签集合y保存下来。

步骤九、给定一个测试数据点(xt,wt),具体的测试流程如下:

步骤901、根据步骤四计算测试数据点的特征集合嵌入式表征et。

步骤902、用得到的表征et和步骤八保存的全部训练集标签表征{z}做cos(·)计算,返回最相似的topk数据点对应的标签集合。

步骤903、统计返回的标签集合中的标签频率,返回topk的标签做为预测结果。

本实施例所述的基于匹配学习的极大规模多标签分类学习方法,对训练数据的类型未做假设,因此适用于各种大数据场景下的极大规模多标签分类。

本实施例所述的基于匹配学习的极大规模多标签分类学习方法,通过匹配学习缓解了长尾标签对模型精度的不利影响。

本实施例所述的极大规模多标签分类学习方法,通过mini-batch优化的方式进行参数更新,非常容易实现大规模并行化计算,即学习算法具备可扩展性。此外,mini-batch优化的方式支持在线学习,方便模型对增量数据进行增量学习。

实施例二

本实施例提供了一种基于匹配学习的多标签分类学习方法,包括如下步骤:

s1:收集互联网中的客户端数据,对所述客户端数据进行特征值计算,得到训练集d;

s2:遍历所述训练集d,设定所述训练集d中的负标签集合和正标签集合;

s3:计算所述训练集d中特征集合的嵌入式表征e;

s4:计算所述正标签集合的嵌入式表征z+和所述负标签集合的嵌入式表征z-

s5:对所述嵌入式表征e和所述嵌入式表征z+作损失计算得到正标签损失值,对所述嵌入式表征e与所述嵌入式表征z-作损失计算得到负标签损失值;

s6:依据所述正标签损失值和所述负标签损失值,采用梯度下降算法对所述训练集d进行训练,得到训练模型;

s7:当所述训练模型的损失值不再下降时,训练结束,并保存所述嵌入式表征z+和与所述嵌入式表征z+对应的正标签集合,否则返回s2;

s8:设定测试集,利用所述测试集对所述训练模型进行测试。

在本实施中,所述s1还包括:

所述客户端数据包括客户端标签数据,提取所述客户端标签数据的文本特征和图像特征,并作特征值计算,从而得到多标签学习的训练集d={(x1,w1,y1)...(xn,wn,yn)},其中x表示特征集合,w表示所述x对应的特征值集合,y表示标签集合,1...n表示集合中数量。

在本实施中,所述s2还包括:

s201:对所述训练集d作随机混洗;

s202:以步长为m遍历随机混洗后的训练集,每步长产生一个特征集合dm;

s203:在每个所述特征集合dm中随机采样n个负标签,得到所述标签集合y中的负标签集合,所述标签集合y中除去所述负标签集合剩余的标签为正标签集合。

在本实施中,所述s3还包括:

通过模型的特征嵌入层得到所述特征集合x对应的嵌入向量集合ex,对所述嵌入向量集合ex作加权平均得到所述特征集合x的特征嵌入式表征e,即

其中,k表示所述特征集合x中的特征数量,k表示特征集合x中第k个元素。

在本实施中,所述s4还包括:

1)通过模型的标签嵌入层得到所述正标签集合对应的嵌入向量集合z+y,对所述嵌入向量集合z+y作加权平均得到所述正标签集合的嵌入式表征z+,即

其中,k'表示所述标签集合y中的正标签数量,k表示标签集合y中第k个元素。

2)通过模型的标签嵌入层得到所述负标签集合对应的嵌入向量集合z-y,对所述嵌入向量集合z-y作加权平均得到所述负标签集合的嵌入式表征z-,即

其中,k'表示所述标签集合y中的负标签数量,k表示标签集合y中第k个元素。

在本实施中,所述s5还包括:

1)利用ncl函数对所述嵌入式表征e和所述嵌入式表征z+作损失计算,得到正标签损失值l+(e,z+),即

其中,当所述嵌入式表征e和所述嵌入式表征z+之间的余弦相似度较高时,ncl较小,反之则ncl较大;

2)利用ncl函数对所述嵌入式表征e和所述嵌入式表征z-作损失计算,得到负标签损失值l-(e,z-),即

其中,当所述嵌入式表征e和所述嵌入式表征z-之间的余弦相似度较高时,ncl较大,反之则ncl较小。

在本实施中,所述s8还包括:

设定测试集(xt,wt),利用所述测试集(xt,wt)对所述训练模型进行测试,具体的测试流程如下:

s801:根据s3中方式计算所述测试集(xt,wt)的特征集合的嵌入式表征et。

s802:所述嵌入式表征z+和与所述嵌入式表征z+对应的正标签集合共同表示为训练集标签表征{z},对所述嵌入式表征et和所述训练集标签表征{z}作余弦计算,返回所述训练集d与所述测试集(xt,wt)最相似的客户端数据所对应的标签集合;

s803:统计所述返回的标签集合中的标签频率,返回频率最高的k个标签作为预测结果。

综上所述,本发明对训练数据的类型未做假设,因此方法适用于各种大数据场景下的极大规模多标签分类。本发明通过匹配学习缓解了长尾标签对模型精度的不利影响;本发明通过mini-batch优化的方式进行参数更新,非常容易实现大规模并行化计算,即学习算法具备可扩展性。此外,mini-batch优化的方式支持在线学习,方便模型对增量数据进行增量学习。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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