摘 要:随着机器学习和深度学习方法在各个领域的发展和运用,越来越多的行业开始探索本行业的智能化发展之路,利用海量的数据,结合人工智能的优势,优化业务,如何使用海量的数据是智能化的关键。在海量的数据中,文本是一个庞大群体,不同类型的文本由于其本身结构的不同,在处理方面也有不同的策略。因此,针对移动客服对话文本的特点,文章提出了一种考虑句子结构的文本建模方法。
关键词:海量数据;智能化;建模方法
中图分类号:TP391.1 文献标识码:A 文章编号:2096-4706(2020)03-0033-03
Abstract:With the development and application of machine learning and deep learning methods in various fields,more and more industries begin to explore the intelligent development of the industry,using massive data,combining the advantages of artificial intelligence,optimizing business,how to use massive data is the key to intelligent. In the massive data,text is a huge group. Different types of text have different strategies in processing because of their own structure. Therefore,according to the characteristics of mobile customer service dialogue text,this paper proposes a text modeling method considering sentence structure.
Keywords:massive data;intelligence;modeling methods
0 引 言
现在的大数据主要是指图形图像数据和文本数据,而对文本数据的建模远比图形图像数据要困难。一方面,图形图像数据本身便是数值化的数字,数字即代表了颜色,而文本数据是非数值化数据;另一方面,图形图像本身具有空间结构,这样的结构也体现在了像素点的位置分布中,但是文本数据则没有清晰的结构,如何建模文本数据中的结构也是自然语言处理中的一个难点。
1 传统文本建模方法
在自然语言处理的众多任务中,文本分类一直是比较热门的研究领域,具有很广的应用场景,如情感分类、医疗数据分类。在深度学习方面,我们对文本数据的建模通常都是基于文本本身,即仅仅使用文档数据本身的字信息或词信息,通过字向量或词向量的组合,将文本表示为二维张量。这样的建模方法因其通俗易懂、实现简单成为最常见的建模方法。但是这种建模方法有一个显著的缺点,那就是忽略了文本本身的结构信息,它将每个句子对文本特征提取以及对文本分类或其他任务的贡献都看作是一样的。如果文本的句子间确实没有明显的结构关系,这样的方法是合适的,因为这些句子在文本中是等价的。但是如果文本中的句子间存在明显的结构关系,不同句子在文本中的地位不一样时,不考虑句子结构,直接使用文档粒度的方法对文本进行建模显然是不合理的。在移动客服对话文本中,由于文本数据具有“问答式”的句式特点,因此没有采用上述常用的文本建模方法。针对移动客服文本数据,我们提出了一种考虑句子结构的文档建模方法。
从文本的数据特点来看,由于数据是由客服对话录音翻译而来,因此数据本身具有很强的结构信息。我们将一次客服录音的文本当作一篇文档,其中每篇文档都由多个“问句,答句”的句子对构成。通常情况下,问句大多由客服代表提出,根据问句的内容,消费者会进行相应的回答,我们把客服代表两个问题之间的所有文本当作消费者对前一个问题的回答。用A代表客服代表的问句,B代表消费者的答句,文本数据格式即形如AiBjAi+1的对话记录,我们将Bj看作对Ai的回答,与Ai+1无关。客服代表的问句A大多具有一定的行业规范性和顺序性,问句中包含的许多信息是不可以忽略的,这些信息包含了消费者可能会关心的问题,如“网络信号如何”“网络速度如何”“流量使用情况如何”等等。而在消费者的答句B中,通常都有一些蕴含答案的词汇,如“网速太慢”“没有信号”“网络太差”“服务太差”“换号转网”等等。因此,在对消費者情绪及行为进行分析的任务中,问句A虽然没有答句B重要,但是也同样不可忽略。建模句子的结构信息尤其必要。
其实在自然语言处理问题中,这样记录字、词或句子结构信息也是一种常用的做法,比如谷歌在2018年10月发布的模型BERT[3]中,就是用到了字的位置信息,这样的位置信息对其任务效果的提升也起到的一定的作用。常用位置信息的建模也大多和BERT模型中的方法一样,但是这个方法对句子建模则不适用。一方面,结构信息只有两种:“问句”和“答句”,在建模文本中,这两个信息值在不断地重复;另一方面,结构信息不像传统的位置信息关注字句的顺序,而是关注句子的性质。因此无法使用类似BERT上传统的position embedding方法来建模移动客服对话文本,但是基于这样的建模思想,我们提出了针对对话序列的句子建模方法。
传统的文本建模通常包含以下步骤:(1)文本序列化,即将文本转化为数值;(2)文本向量化,即文本的embedding进行表示,将文本表示为一个多维的张量,以此丰富文本的信息;(3)将文本张量放入模型中,进行文本特征学习以及下游任务,如分类。我们提出的建模方法的主要贡献就在于在文本向量化的过程中,不仅仅将字或词进行向量化,还编码了每个字或词的属性信息,即对该句是问句还是答句也进行了区分。这样保留了文本的结构信息,这样的信息体现了整篇对话文档中不同句子的重要性。相对于将问句和答句平等对待的文档粒度的文本建模方法,我们提出的建模方法是基于句子粒度的,符合常识,更加符合文本数据的特点。以单篇文档为例,我们的建模方法过程如图1所示。
基于图1,我将从以下几个方面介绍我们提出的建模方法:文本序列化、segment信息提取、句子embedding表示、segment embedding表示、文本embedding表示。
2 文本序列化
文本序列化是所有机器学习以及深度学习方法的第一步,序列化即使用多维的向量来表示某个字或词,这个向量或其变换后的向量最终作为模型的输入。这个序列化的向量即代表了这个文本的所有信息,所以如何得到更好的向量表示是十分关键的问题,这也是众多学者的研究领域。传统的文本表示方法,如基于词表的one-hot表示、基于统计信息的tf-idf表示都是很常用的序列化方法。one-hot表示由于其向量大小等于词表大小,词表大小通常较大,造成了表示向量的稀疏性,而tf-idf表示由于基于统计信息,所以未考虑句子的上下文信息。在深度学习领域,word2vec[1]、paragraph2vec[2]、doc2vec[2]都是较常用且效果不错的方法,尤其是word2vec。针对移动文本数据,由于数据不具有段落结构,所以不采用paragraph2vec方法。另外,我们的建模方法需要考虑句子结构,而doc2vec方法是不考虑文档间句子结构的,因此也不使用这个方法来建模,最终我们选取word2vec来建模句子,与使用预训练的词向量不同,随机初始化词向量。主要步骤:(1)使用jieba分词工具对每个问句、答句进行分词;(2)对分词后的句子进行padding对齐,使每句文本长度相等;(3)随机初始化每个词的向量表示,指定向量维度即可。这样便完成了文本的序列化表示,每个词都有一个特定维度的向量。
3 segment信息提取
segment信息即指每篇移动客服文本中,哪些是问句,哪些是答句。在建模过程中,使用数字1代表问句,数字2代表答句。那么一篇文本的segment信息即为一个二值向量,向量长度为文档中句子的总数。直接按行读取文本中的句子,依次标注为1或2,即可得到该文本对应的segment二值向量。
4 句子embedding表示
在文本序列化中,我们介绍了字或词的向量化,此时每句话都是由一个二维张量表示的,在深度学习中,还需要继续对该二维张量进行特征提取,形成一个特征向量,该特征向量代表这个句子的表示。如何将词向量整合成句子向量也有很多方式,比如加权平均、求和等。在本次建模中,我们采用对所有字、词向量求平均的方式作为句子embedding表示。使用字、词表示的值表示句子也是目前较为常用的特征提取方式之一。
5 segment embedding表示
在segment信息步骤中,我们构建了句子的结构信息,每篇文档都有对应的结构信息向量,由一个二值向量存储。虽然句子的结构信息已经是数值类型(1、2表示),但是单个数值表示的特征容易在后续的提取中失去作用,所以为了保证结构信息这个特征在后续特征提取中仍然发挥作用,我们使用多维向量来表示它们,而不是单纯的一个整数值。我们使用序列化文本字和词的word2vec方法,把句子的结构信息值1、2也随机初始化成多维向量。这样每个句子的结构信息便是一个由浮点数组成的向量,在后续的特征提取中,多维的结构信息得以保留。
6 文本embedding表示
通过上述方法,我们得到了一篇对话记录的每个句子的向量表示,以及这个句子对应的结构信息的向量表示。假设文本D含有k个句子,词向量的维度为dim1,结构信息向量的维度为dim2,则对于D文本,有k*dim1大小的文本信息矩阵以及k*dim2的结构信息矩阵。为了得到D的表示,可以采用以下的策略:(1)将句子的文本信息以及结构信息對应的句子信息拼接在一起,得到大小为k*(dim1+dim2)的矩阵,这个矩阵即表示文本D;(2)如果dim1=dim2=dim,可以采取信息相加的方式,即得到k*dim大小的矩阵,矩阵对应位置的值即为文本信息矩阵和结构信息矩阵值之和,这样便得到了一篇文档D的向量表示。
使用同样的方法,对其他文档进行建模以及表示,最终得到训练数据,即多个三维张量。假设其中一个张量大小为N*L*E,其中N代表文档数量,L代表词向量个数,E代表embedding的维度,即dim1+dim2或dim(dim1=dim2时)。
完成文本数据的建模后,可以将数据张量作为各种不同的深度模型的输入,在经过深度模型的特征提取之后,得到最终用来分类的特征矩阵,再经过最后模型的输出层,便得到了分类结果。
7 结 论
针对移动数据文本,由于文本结构的特殊性,使用传统的文本建模方式会直接忽略这种结构特征,忽略这一文本中普遍存在的特征明显是不合理的,因此,针对数据的结构特点,我们提出了一种新的建模方法。这种建模方法有效地考虑了移动客服对话文本中问句与答句的结构特点,使得我们可以将文本的结构特征与文本本身的含义结合在一起,由此可以更加合理地构建移动客服对话文本。
参考文献:
[1] MIKOLOV T,SUTSKEVER I,CHEN K,et al. Distributed representations of words and phrases and their compositionality [C]//Advances in neural information processing systems,2013:3111-3119.
[2] LE Q,MIKOLOV T.Distributed representations of sentences and documents [C]//International conference on machine learning,2014:1188-1196.
[3] DEVLIN J,CHANG M W,LEE K,et al. Bert:Pre-training of deep bidirectional transformers for language understanding [J].arXiv preprint arXiv:1810.04805,2018.
作者简介:钟建(1969-),男,汉族,四川成都人,高级工程师,硕士研究生,研究方向:移动网络的建设维护和优化。