携程人工客服电话95010 携程人工客服电话( 二 )


如图2-4所示,BERT基于Transformer架构,是一个由Transformer-Encoder部分组成的双向语言模型,包括输入嵌入层 (Embedding Layers) 、编码层 (Encoder Layers) 和输出预测层 (PredictionLayers) 三大组件 。其中嵌入层包含对输入词句的TokenEmbedding,PositionEmbedding和SegmentEmbedding三种表征操作 。

携程人工客服电话95010 携程人工客服电话


图2-4 BERT结构简示图
三、数据处理
在建模之前,我们首先对人工会话数据进行预处理 。如图3-1所示,现有的人工会话数据中包括了中文、特殊字符如标点符号、数字、表情符号等,我们首先处理中文、特殊字符 。其次,由于文本长度不一致,仍需做文本等长处理 。
3.1 中文处理
中文处理包括固定话术、繁体简体转换、同义词替换、分词 。
(1)固定话术
用户与客服对话的过程中,会有一定的固定话术,如“管家_游游为您服务,请问有什么可以帮助您的?”这些固定话术存在于每个文本中,对分类没有特别大的帮助,因此在数据处理过程中,我们就会使用正则匹配的方式去除固定话术 。
携程人工客服电话95010 携程人工客服电话


【携程人工客服电话95010 携程人工客服电话】图3-1 数据处理
(2)繁体简体转换
数据处理时,我们将会话中的繁体转为简体 。
(3)分词
中文分词是指把一句话切割成不同的词,我们推荐使用jieba或HanLP作为分词工具 。这些工具在分词时都会使用自带的词典,也提供了自定义词典的添加功能 。我们分析会话数据后,定义了机票行业特有的词典并加入分词工具中,以提高分词的准确率 。
(4)同义词替换
不同用户在咨询同一事件时的表述往往不同,如在咨询“金牌服务包”增值产品时,用户会表达为“服务包”、“金牌包”、“金牌服务” 。因此,在数据处理过程中,我们定义了机票行业特有的同义词替换表,并将会话中的词语进行同义词替换,便于后续建模 。
3.2 特殊字符处理
特殊字符主要包括标点符号、数字、表情符号等,这类字符都是需要过滤掉的 。句子中的标点符号如逗号、句号等有分割句子的作用,因此在分词前保留,分词后再去除 。
3.3 文本等长处理
在将文本投入模型之前,需要把分词后的句子转化为相同长度的向量,这就意味着我们需要对过长的文本进行截取,对过短的文本进行补充 。在文本截取与补充的过程中,主要看文本长度分布,将95分位数的文本长度作为最大长度 。
四、建模与优化
人工客服会话分类的建模过程中,我们主要尝试了词向量+深度神经网络的分类模型、词向量+深度神经网络+注意力机制的分类模型、预训练语言模型 。词向量+深度神经网络的分类模型选用的是Bi-GRU,词向量+深度神经网络+注意力机制的分类模型分别尝试了Bi-GRU+self-Attention、HAN,预训练语言模型选用的是经典的Bert 。
我们将Bi-GRU模型作为后续优化的参照(baseline模型),通过对误差数据的分析,尝试多种优化方案,最终采用改进的Bi-GRU+self-Attention模型,实现人工客服会话在12个类别上的分类准确率提升6.2% 。
4.1 参照模型
数据处理完成后,使用Bi-GRU进行建模,并将模型效果作为后续优化的参照 。Bi-GRU (BidirectionalGate Recurrent Unit) 是双向循环神经网络的一种 。由于循环神经网络很难处理长距离的依赖,容易出现梯度消失和梯度爆炸的问题,因此SeppHochreiter 、 JürgenSchmidhuber提出长短时记忆网络 (Long-ShortTerm Memory,LSTM),LSTM是由遗忘门 (forget gate) 、输入门 (input gate) 、输出门 (output gate) 组成的循环神经网络 。GRU (GatedRecurrent Unit) 是LSTM的变体,它对LSTM做了很多简化,同时保持着和LSTM相同的效果 。GRU对LSTM做了两个大改动:

推荐阅读