基于Transformer的中文智能对话方法

文档序号:24552175发布日期:2021-04-06 12:04阅读:来源:国知局

技术特征:

1.一种基于transformer的中文智能对话方法,其特征在于,包括以下步骤:

(1)、使用大规模的中文闲聊语料库lccc(large-scalecleanedchineseconversation)构建训练数据集;

(1.1)、构建长度为n的输入序列;

以[cls]标签作为输入序列的开始符,然后从lccc语料库中提取连续对话句,按照语句顺序将字填入输入序列,每个句子之间插入[sep]标签,每次填入句子时,判定加入当前句总长度m是否大于n,若大于n,则停止填入;若小于n则继续填入,并将未填充部分设置为空值0,从而得到输入序列sin;

(1.2)、构建等长长的期望输出序列sout;

从输入序列sin的第2个字符开始依次填入至输出序列,输出序列的最后一个字符设置为空值0;

(1.3)、对输入序列和期望输出序列中的字符均用one-hot列向量进行编码,编码完成后将输入序列记为x,将期望输出序列记为y,从而构建出训练数据集{x,y},其中,x,y∈rv×n,n表示输入序列的长度,v表示经过独热编码后字符向量的维度;

(2)、搭建transformer模型

transformer模型由若干层decoder单元堆叠,在每个decoder单元中又包括自注意力模块、残差连接模块和层归一化处理模块;

(3)、利用中文闲聊语料库提供字嵌入网络对输入序列x进行嵌入操作;

将输入序列x输入至字嵌入网络,经字嵌入网络编码后得到d×n的字嵌入矩阵xwe=wx,d表示字嵌入向量的维度,w为字嵌入矩阵;

(4)、用全0或全1填充的d维列向量,其中,0或1分别表示问或答者,从而构成d×n的段嵌入矩阵xse;

(5)、计算段嵌入后矩阵xe=xwe+xse;

(6)、将xe输入transformer模块,用于提取语义信息;

(6.1)、将xe分别与三个d×d的权重矩阵wq、wk、wi相乘,得到查询矩阵q、键矩阵k和值矩阵v;

q=wqxe=[q1,q2,…,qn]

k=wkxe=[k1,k2,…,kn]

v=wvxe=[v1,v2,…,vn]

然后,基于矩阵q、k、v,引入相对位置编码,计算注意力矩阵z,设矩阵z的i列向量为zi,i=1,2,…,n,则有:

其中,qi、ki、vi分别为矩阵q、k、v对应的列向量,pij是输出位置i和输入位置j的相对位置编码向量,pij的偶数和奇数元素计算公式为:

(6.2)、残差连接;

将注意力矩阵z与段嵌入后矩阵xe相加,得到矩阵xa=z+xe,再对xa进行标准归一化处理,得到x′a,设x′i和xi分别为x′a和xa的第i列向量,则有:

其中,μi和σi分别为xi各元素的均值和标准差,ε为一极小常数,α,β为弥补归一化引起的信息损失值;

(6.3)、将x′a输入至权重矩阵为wh的前馈线性映射层,并经过relu激活,得到输出矩阵xh=relu(whx′a);

(6.4)、将矩阵xh再进行残差连接,得到矩阵x′h=x′a+xh,对矩阵x′h进行标准归一化处理,输出新的嵌入矩阵

(6.5)、重复步骤(6.1)~(6.4),经过多层decoder单元处理后可以输出d×n的矩阵xte。

(7)、利用反转嵌入模型w对xte进行解码操作,从而将xte重新转换回原one-hot编码空间,再经过softmax激活函数激活,输出预测矩阵

(8)、根据与期望输出矩阵y计算损失函数值||·||f表示求f范数,然后将损失值反向传播,更新transformer模块;

(9)、重复步骤(3)~(8),利用训练数据集反复对transformer模型进行训练,在训练过程中,使用的一定学习率和权重衰减率的adam优化器进行训练,每一轮完整的训练称为一次epoch,epoch中包括多个训练样本,每次epoch完成后,判断样本的累加损失值小于等于预设阈值,则训练结束,得到训练完成的transformer模型;否则,继续重复步骤(3)~(8)进行下一轮训练,直至样本的累加损失值小于等于预设阈值;

(10)、基于transformer模型的中文智能实时对话;

将待对话的输入序列输入至transformer模型,通过transformer模型实时输出期望输出序列,从而实现中文智能实时对话。

2.根据权利要求1所述的基于transformer的中文智能对话方法,其特征在于,所述步骤(6.1)中注意力矩阵z可以为多头注意力矩阵z*

将q、k、v通过线性映射分成若干组{qκ,kκ,vκ}κ=1,2,...,然后对每组进行步骤(6.1)操作,计算出多个zκ,最后将多个zκ拼接再进行线性投影,得到多头注意力矩阵z*


技术总结
本发明公开了一种基于Transformer的中文智能对话方法,先使用大规模的中文闲聊语料库LCCC(Large‑scale Cleaned Chinese Conversation)构建训练数据集,作为Transformer模型的输入,然后基于深度学习的方式对Transformer模型进行训练,直至Transformer模型收敛,最后,将待对话的输入序列输入至Transformer模型,通过Transformer模型实时输出期望输出序列,从而实现中文智能实时对话。

技术研发人员:杨波;巩固;郑文锋;刘珊
受保护的技术使用者:电子科技大学
技术研发日:2020.12.28
技术公布日:2021.04.06
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1