APP下载

基于协同训练的电商领域短语挖掘

2020-04-20刘井平肖仰华朱慕华

计算机工程 2020年4期
关键词:分类器短语语义

许 勇,刘井平,肖仰华,朱慕华

(1.复旦大学 计算机科学技术学院,上海 200433; 2.阿里巴巴网络技术有限公司,杭州 311121)

0 概述

短语是指文本中可以构成一个完整语义单元的连续词序列,这些语义单元通常为概念、实体、地址、组织、事件等。短语挖掘是从给定语料中自动识别高质量短语的过程[1-2],其将文本信息抽取从单词粒度提升到了短语粒度。

在电商领域,抽取出的短语在查询建议[3]、查询改写[4]、术语识别[5]和搜索关键词识别[6]等任务中均具有广泛应用。例如,给定一个查询语句“琅琊榜同款斗篷”,短语挖掘可以抽取出“琅琊榜同款”这个短语。在用户输入“琅琊榜”时,搜索引擎系统可以给出查询建议“琅琊榜同款”。传统的短语挖掘方法主要分为基于句法特征的方法和基于统计特征的方法两类。基于句法特征的方法使用词性标注[7-8]、组块分析[9]、依存关系[10]等句法层面的信息识别短语。基于统计特征的方法[11]使用基于频率的统计信息来检测短语,这类方法从海量的语料库中挖掘k元词序列作为候选,得到诸如侯选短语的频率、左右词的信息熵、短语的信息量等统计特征,然后构建有监督的短语分类模型以识别短语。

上述短语挖掘方法都以通用领域文本作为研究对象,如DBLP、维基百科和Yelp等文本语料。通用领域文本一般是文章、新闻、评论和论文等,这些文本具有书写规范、句法结构完整等特点。电商查询语句一般由属性词和品类词(产品名称)组成,通常没有完整的句法结构,并且存在大量反序和省略的表达,比如“冬季外套女韩版”“大码休闲鞋防滑”等。这使得传统方法在处理电商领域的文本时都存在一定的局限性。句法结构的缺失使得基于句法特征的方法无法有效检测出短语边界,反序表达的存在使得基于统计特征的方法容易将高频反序短语误认为高质量短语。电商领域语料的特殊性也使得传统基于远程监督的数据标注方法效果较差。

实体标记序列能够反映词之间的修饰关系,可以有效检测出电商领域文本中的反序表达。本文针对电商领域文本中多数词是属性值且每个属性值都有指定类型的特点,提出一种基于实体标记序列[12-13]的双向LSTM[14]短语分类模型。通过构建协同训练[15]的短语挖掘框架,整合已有的基于统计特征的短语挖掘方法,以降低电商领域语料中标注训练数据的成本。在此基础上,利用Stacking方法[16-17]集成统计模型和语义模型的优点,以提升本文模型的整体性能。

1 相关研究

基于句法特征的短语挖掘方法最早根据基于词性标记的规则来识别短语。文献[7-8]定义了多个基于词性标记的规则来识别句子中的名词短语。文献[9,18]构建有监督的组块分析模型从文档中抽取出名词短语。文献[10]利用更加精细的依存句法分析进一步提高短语挖掘的精确率。但是,基于规则的方法依赖领域相关的语言规则,适用范围有限。此外,基于有监督学习的方法依赖大规模的标注数据才能保证模型效果,基于依存分析的方法尽管效果有所提升,但是其依赖计算量很大的句法分析器。

基于统计特征的分类方法主要根据基于频率的统计特征来识别短语。ConExtr[19]着重分析一个短语及其子短语间的关系,使用迭代过滤策略来筛选出高质量的短语。文献[11]采用基于ZipFian排名的启发式短语质量排序算法。TopMine[20]采取了一种自底向上的方式来挖掘短语,先挖掘高频候选短语,再根据重要性指标将它们融合成更长的短语。SegPhrase[1]提出了融合统计特征与短语切分模型的方法,其基于切分后的句子进行短语频率统计,在一定程度上解决了统计特征中短语频率计数不准的问题,同时短语的质量优化可以反过来优化切分模型,两者迭代优化以提升最终的短语挖掘效果。AutoPhrase[21]进一步使用正例和无标注样本学习[22]的方法降低标记成本,同时通过引入词性标记来优化短语切分模型。由于电商领域文本中存在大量反序表达,上述方法过于依赖基于频率的统计特征,导致在电商领域文本上易出现错误。同时,AutoPhrase使用通用知识图谱的实体名称做正样本标注,该方法在电商领域文本中很难标注到正样本。

本文使用实体标记和词性标记序列来构建短语分类模型,以降低对领域规则以及复杂句法分析器的依赖,通过协同训练的方式减小标注的成本,使用Stacking方法集成语义模型和统计模型,最终提升短语挖掘模型的整体性能。

2 方法设计

2.1 问题分析

电商领域的文本与传统文本存在较大差异,这使得传统短语挖掘方法处理电商领域文本时存在一定的局限性。电商领域的文本一般没有完整的句法结构,存在反序和省略的表达,表1所示为淘宝电商平台上的一些典型查询语句示例,其中,2列查询语句的顺序不同。

表1 淘宝平台查询语句示例

由于电商文本与通用领域文本的差异性,在应用传统方法处理电商查询语句时会遇到以下3个问题:

1)电商查询文本存在反序表达。例如,在查询语句“方巾成人”时,表示适用对象的“成人”这个修饰词出现在品类词“方巾”之后,基于词性标记的方法会错误地匹配到这类反序表达,将“方巾/NN 成人/NN”识别为名词组合。基于统计特征的方法倾向于将高频的短语识别为侯选短语,而在电商语料中,部分反序表达比正常表达更为常见,如淘宝查询语句“足球鞋 长钉”的出现次数是“长钉 足球鞋”的4倍。因此,上述方法会将这类反序表达误认为是一个高质量短语。针对上述问题,本文在基于词性标记方法的基础上,融合命名实体识别(NER)[12]标记,提出了语义增强的短语识别方法。在电商领域,大部分词都是属性词或品类词,这些属性词和品类词被定义为实体,有对应的实体标记。比如“冬季羽绒服”中“冬季”的标记是“季节”,“羽绒服”的标记是“品类”。在反序表达中,用于修饰的属性词通常出现在品类词之后,因此,可以通过实体标记的序列来识别反序表达。同时,实体标记特定的序列也能反映短语的质量,比如,对于实体标记序列“<品牌><品类>”,“品牌”词修饰“品类”词,能够表达完整的语义,因此,符合该标记序列的短语可能是一个高质量短语,例如“小米手机”。同时,词性标记序列也能在一定程度上反映短语的质量,比如,符合“DT JJ NN”的短语。本文构建一种基于实体标记和词性标记序列的双向LSTM短语分类模型,该模型融合实体标记序列特征,相比于词性标记序列特征,实体特征能更有效地检测出反序表达,而相比人工预定义规则,使用双向LSTM模型能够更好地利用序列特征的信息。

2)电商领域文本很难获取带标训练样本。通用领域文本由于有大量高质量的短语(来源于通用知识图谱的实体名),可以通过远程监督的方法得到大量的标注数据,而电商领域中缺乏这种规模的短语集合,导致需要人为标注大量训练数据。针对该问题,考虑到短语挖掘方法可利用多类特征的特点,本文采用协同训练框架。协同训练能够依据特征的多视图来有效利用未标注数据。协同训练的基本思路为:一个数据对象有多个属性集,每个属性集构成一个视图,基于不同视图可以构建不同的分类器,分别生成伪标注样本用于另一个分类器的训练更新,使得不同视图的分类器能够基于少量标注样本相互迭代优化。文献[23]证明只要2个分类器具有较大的差异性,就可通过协同训练利用未标注数据来提升学习性能。在短语挖掘问题中,本文提出的语义增强特征(实体+词性)与传统的统计特征就是2个具有较大差异的视图。因此,可以构建2个分类模型,通过协同训练的方式充分利用未标注数据,从而降低人工标注样本的代价。

3)电商领域文本缺乏完整的句法结构。 电商查询语句省略了大量助词、介词等功能词,而基于句法和语义的模型依赖于助词、介词等功能词来检测短语边界,这类词在电商领域中很少见,使得此类方法无法有效检测出短语边界。而基于统计特征的模型能够通过如短语左右邻接词的熵这类统计特征来有效识别短语边界。因此,在利用协同训练得到基于语义增强和基于传统统计特征的2个分类器之后,本文采用Stacking方法对2个分类器进行系统融合。Stacking方法能够较好地集成多个分类器各自的优势,使得模型既能准确检测短语边界,也能判断短语序列本身的质量。

2.2 短语挖掘系统框架Co-Phrase

定义1(k元词序列(k-gram)) 给定一个经过分词的中文句子s=w1w2…wn(n表示以词数为单位的句子长度),k-gram是由s中连续k个词组成的任意子串,即u=wiwi+1…wi+k-1。

例1一个词序列为“大码 休闲鞋 防滑”,其2-gram有“大码 休闲鞋”“休闲鞋 防滑”,3-gram有“大码 休闲鞋 防滑”。

例2一个词序列为“大码 休闲鞋 防滑”,其实体标记序列为“大小 品类 功效”,词性标记序列为“JJ NN JJ”。

本文短语挖掘系统的整体框架Co-Phrase如图1所示,具体步骤为:1)根据语料抽取出的候选短语,得到基于实体标记、词性标记的语义特征和基于频率计算得到的统计特征,其中,词性标记和实体标记通过预先训练的模型对语料进行处理得到;2)基于2类特征分别构建分类器,基于实体标记和词性标记序列特征构造语义增强的短语分类器以及基于统计特征构造短语分类器;3)使用协同训练的方法将上述2个分类器以减少标注样本为目的进行迭代训练优化;4)采用Stacking方法集成训练完毕的语义增强模型和基于统计特征的模型。

图1 基于协同训练的短语挖掘系统框架

2.3 基于语义增强的短语挖掘

一个k-gram是否为高质量短语,可以结合句法和语义特征进行判断。一方面,k-gram本身的词性标记序列和实体标记序列信息可以用来识别短语。比如,符合“JJ NN”这个序列的k-gram可能是一个高质量的名词短语,如“红色连衣裙”;符合“季节 品类”这个实体标记序列的k-gram也可能是一个高质量短语,其表达了特定季节的商品这样一个完整的概念,如“秋季棉袄”。另一方面,虽然电商领域文本中助词等功能词汇存在大量缺失,但并不意味着完全没有,因此,k-gram上下文的词性标记仍然有助于识别短语边界,例如,“适合三岁男孩的玩具”,“的”字助词可以帮助识别出短语“三岁男孩”,原因是助词一般不会成为短语的一部分。

基于上述分析,本文构建一种基于短语实体标记序列和词性标记序列以及短语上下文中词性标记分布的双向LSTM模型,将其记为SC,具体结构如图2所示。其中,实体标记和词性标记中的PAD是填充符。

图2 SC模型框架

本文模型同时考虑短语本身语义结构及短语所处上下文的合理性。词性标记序列这类特征很难在传统机器学习方法中进行建模,因此,本文采用基于双向LSTM的序列分类模型,其相比于传统基于规则的模型能够更好地利用序列特征。

2.4 协同训练

本文协同训练框架主要有2个视图的分类器,分别为基于统计特征的分类器和带有语义增强特征的分类器。

2.4.1 基于统计特征的短语挖掘

对于给定的短语u=wiwi+1…wi+k-1,本文使用的统计特征主要分为以下4类[21]:

1)频率特征:用来衡量短语u的常见程度,短语u越常见,其越可能是一个高质量短语。

2)协调性特征:用来评估短语u内部的子短语是否为常见的搭配。比如,“恒温电吹风”相比于“温控电吹风”就是更为常见的搭配。对于给定的短语u,其可以被切割成2个最可能的子短语,计算2个子短语的点互信息(PMI)[24]如下:

其中,p(u)是短语u在语料中出现的概率。此时,可以使用PMI作为协调性的表达特征之一:PMI越大,说明2个短语组合出现的概率比它们共同出现的期望概率要大,即这2个短语越可能构成一个固定搭配,短语u越可能是一个高质量短语。对于单词个数大于2的短语,比如“恒温、控制、电吹风”,其可能有多个切分,如“恒温控制、电吹风”和“恒温、控制电吹风”,此时需要事先找到最可能的切分。本文通过点互信息来寻找该最优划分结果,如下:

3)完整性特征:用来衡量短语u是否为一个完整的短语,若短语u多数时间是作为另一个短语的子短语出现,则它可能不是高质量的短语。比如“水星”一般是作为“水星家纺”的子短语出现。

4)信息量特征:用来衡量短语u的信息量,例如,停用词和功能词虽然很常见,但是它们并不包含有用的信息。

统计模型根据上述统计特征来构建分类器,以评估短语的质量。本文使用随机森林算法[25]进行短语质量评估,决策树作为该算法的基础分类器,随机森林算法不容易过拟合,能充分利用各类数值型和类别型特征,同时具有很高的精确率。本文将基于统计特征的分类器记为FC。

2.4.2 协同训练流程

一般而言,监督学习算法需要大量的标注样本才能取得较好的效果,尤其是深度学习模型。本文针对短语挖掘问题有句法/语义和统计两类特征的特点,采用协同训练的方式进行分类器学习。协同训练利用2个有差异的分类器为对方提供伪标注数据,从而不断迭代优化彼此的性能。协同训练流程伪代码如算法1所示。

算法1协同训练算法

输入语料库C,标注集合L

输出短语得分集合S

1.Procedure 协同训练(C,L)

2.r←0

3.U←generateKgram(C)

4.F←generateFeature(C,U)

5.while r

6.Model1←TrainFC(L,F)

7.Model2←TrainSC(L,F)

8.PS1←Predict(Model1,U)

9.PS2←Predict(Model2,U)

10.L←L∪SamplePhrase(PS1)

11.L←L∪SamplePhrase(PS2)

12.for each u∈L do

13.remove fufrom F

14.end for

15.r←r+1

16.end while

17.end Procedure

算法1描述了短语挖掘问题中协同训练的流程。首先,系统初始化相关参数,对原始语料进行预处理,抽取出候选短语及其特征向量,同时进行短语的词性标记和命名实体识别(第2行~第4行),L初始时只包含人工标注的少量短语。然后,是协同训练的迭代标注过程,总共迭代n轮,该过程主要分为2个阶段:1)分别基于训练数据训练统计模型和语义增强模型(第6行~第7行);2)基于训练好的2个分类模型预测未知短语的得分,筛选高质量样本并添加到标注数据集L中(第8行~第11行)。最后,从未标注数据中移除已被自动标注的样本(第12行~第14行)。上述2个阶段不断迭代优化,直至达到指定迭代次数。

2.5 模型集成

协同训练算法结束后,可以得到2个优化后的分类器,这2个分类器有一定差异,对于不同的样本可能会给出不同的输出结果。因此,可以融合两者的输出结果,使得最终的集成模型对于原有分类器具有差异的输出能给出正确的预测。本文使用Stacking方法进行模型集成,Stacking方法的具体过程如图3所示。首先,训练多个不同的基准模型Ci,然后,以这些模型的输出oi作为另一个模型的输入来训练一个次级模型,得到最终的输出of。与简单的模型加权平均方式不同,Stacking能很好地学习不同数据上不同分类器的权重。在本文中,Stacking集成FC和SC 2个分类器的结果以得到最终结果。

图3 Stacking集成模型框架

3 实验结果与分析

本文研究电商领域的短语挖掘问题,以淘宝网的查询语料库作为实验数据集,淘宝是世界上最大的中文电商平台。为验证本文语义增强的短语挖掘方法、协同训练框架以及基于Stacking的模型集成方法的有效性,对比现有2种短语挖掘方法,在淘宝用户查询语料上进行实验分析。

3.1 实验设置

本文实验收集了一周的用户查询语句数据,然后对查询语句进行分词、词性标记和命名实体识别,遍历得到所有可能的k-gram(k≤5)。根据k-gram的频率进行过滤,阈值设为30,最终得到了2 172 324个候选k-gram。其中,中文分词、词性标记、命名实体识别使用了阿里巴巴集团内部的工具AliNLP。

为了评估不同方法的有效性,本文从候选k-gram中随机采样部分数据进行人工标注,用于模型训练和评估。总共标注700个样本,其中,500个样本用于评估,200个样本用于训练。本文采用了3人标注的方式,最终标注结果根据投票方式确定。对于有分歧的短语,选择标数多的标注。本文实验对比方法具体如下:

1)ClassPhrase:该方法基于词的频率、协同性特征、完整性特征和信息量特征等统计特征来评估短语的质量,其为Co-Phrase中的统计模型部分。

2)AutoPhrase[19]:该方法是目前效果较好的短语挖掘方法,其使用了正例和无标注样本学习的训练框架来避免人工标注成本,同时融合基于词性标记的短语切分模型和统计模型进一步提升短语挖掘效果。

3)Co-Phrase:即本文提出的基于实体标记和词性标记的深度短语分类模型,其使用协同训练的短语挖掘框架,迭代优化语义增强模型和统计特征模型的性能,并采用Stacking方法集成2个分类模型的结果。

实验使用精确率(Precision)、召回率(Recall)、F1和PR_AUC来评估结果。其中,精确率反映模型预测为正样本的数据中真实正样本的比例,召回率反映模型预测为正样本的真实正样本占所有正样本的比例,F1同时考虑Precision和Recall,PR_AUC是Precision-Recall曲线下的面积,其能综合反映分类器的性能。

3.2 结果对比

表2所示为不同方法在淘宝查询语料上的Precision、Recall、F1和PR_AUC值。图4所示为不同方法在淘宝查询语料上的Precision-Recall曲线。从表2可以看出,由于ClassPhrase只考虑了统计特征,在淘宝语料上容易学习到反序表达,因此其性能最弱;AutoPhrase虽然在ClassPhrase的基础上引入了基于词性标记的短语切分模型,能间接检测出部分反序表达,但在PR_AUC上提升较少;本文模型使用了基于实体标记和词性标记的语义模型,能够有效检测出反序表达,使得Precision达到76.5%,且F1和PR_AUC分别达到71.0%和78.7%,即本文短语挖掘框架在电商领域文本中的Precision、F1和PR_AUC相比对比方法均有明显提升。

表2 3种方法在淘宝查询语料上的评估结果

图4 3种方法在淘宝查询语料上的Precision-Recall曲线

3.3 迭代效果分析

协同训练初始训练样本为200个,每次迭代增加100个伪标注样本,迭代5轮,评估统计特征模型(FC)和语义增强模型(SC)的F1值变化情况,结果如图5所示。

图5 2种模型F1值随迭代次数的变化曲线

从图5可以得出:

1)统计特征模型和语义增强模型的性能在前几轮迭代中都快速增长,这说明协同训练增加的样本能够有效提高模型的性能。在3轮迭代之后,由于伪标注样本噪音的影响,模型性能增长逐渐平缓。

2)由于引入了实体标记序列特征,语义增强模型的效果要明显优于统计特征模型。

综上,Co-Phrase的协同训练过程能够迭代优化语义增强模型和统计特征模型的性能,降低人工标注数据的成本,此外,通过实体标记和词性标记序列构建的语义增强模型在电商领域文本上取得了良好的效果。

3.4 模型集成效果分析

为了验证基于Stacking的模型集成效果,本文对比不同模型的Precision-Recall曲线,结果如图6所示。FC是统计特征模型,SC是语义增强模型,Co-Phrase是集成FC和SC的模型。FC、SC和Co-Phrase都使用迭代5轮之后的标注数据进行训练。从图6可以看出,Stacking方法能够有效地集成不同模型的优点,提升模型的整体效果。

图6 3种模型性能对比结果

3.5 算法时空复杂度分析

本文短语挖掘方法的主要模块及其时空复杂度分析如下:

2)候选短语特征抽取模块:该模块中词性标记、实体标记和短语上下文特征抽取耗时较多。其中,词性标记由于文本序列较短,时空复杂度为O(N),实体标记歧义较少,速度接近于字典法标记,时空复杂度也为O(N),短语上下文特征抽取的时空复杂度为O(kN)。因此,该模块总时空复杂度为O(N)。

3)基于语义增强的短语挖掘模型:该模型基于双向LSTM对候选短语进行分类,双向LSTM的时间复杂度为O(w|U|),空间复杂度为O(|U|),其中,w是固定的模型参数个数,而O(kN)=O(|U|),因此,该模块的总时空复杂度为O(N)。

4)基于统计特征的短语挖掘模块:该模块使用随机森林对候选短语进行分类和训练。随机森林在树个数和深度固定的情况下,其时空复杂度为O(|U|)。因此,该模块的总时空复杂度为O(N)。

5)模型集成模块:该模块在训练基分类器时,时空复杂度是基于统计和基于语义的模型的线性叠加,时间复杂度为O(N)。在训练元分类器时,使用逻辑回归做分类,该分类器时空复杂度均为O(|U|),因此,该模块总时空复杂度为O(N)。

上述各模块的时空复杂度均为O(N),因此,本文模型框架总的时空复杂度为O(N),算法整体运行时间随着数据量的增长而线性增加,即本文算法具备大数据处理的可行性。

4 结束语

本文研究电商图谱中存在的语料反序问题,提出一种基于实体标记与词性标记序列的语义增强模型,并针对电商领域语料标注样本成本过高的不足,构建语义增强模型和统计特征模型的协同训练框架,以降低对人工标注的要求。在此基础上,利用基于Stacking的模型集成方法,整合语义增强模型和统计特征模型,提升模型最终的短语挖掘效果。实验结果表明,该模型的精确率和召回率较高,在淘宝查询语料上取得了良好的短语挖掘效果。下一步将优化基于语义的短语挖掘模型,引入单词本身的信息,并更好地整合语义特征和统计特征,以高效评估短语的质量。

猜你喜欢

分类器短语语义
语言与语义
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
批评话语分析中态度意向的邻近化语义构建
“社会”一词的语义流动与新陈代谢
“吃+NP”的语义生成机制研究
《健民短语》一则
基于层次化分类器的遥感图像飞机目标检测
一种基于置换的组合分类器剪枝方法