基于深度学习的情绪感知与支持的对话系统构建方法技术方案

技术编号:34792082 阅读:20 留言:0更新日期:2022-09-03 19:55
本发明专利技术公开了一种基于深度学习的情绪感知与支持的对话系统构建方法,该方法包括构建对话策略选择模块、对话生成模块、心理状态认知模块和建议推荐模块。对话策略选择模块控制对话的过程,根据用户对话历史实时的选择对话策略;对话生成模块将用户对话历史、当前对话策略信息输入到解码器中,通过解码器生成回复语句;心理状态认知模块通过用户对话历史,对用户当前的心理认知状态进行分类;建议推荐模块根据用户心理认知状态以及对话历史,对知识库进行检索生成建议回复。该系统通过引入自适应对话策略选择模块,构建了多种对话策略,并能够根据上下文选择对话策略,引导模型生成更具有同理心的回复内容,给予用户更加有效的情感支持。感支持。感支持。

【技术实现步骤摘要】
基于深度学习的情绪感知与支持的对话系统构建方法


[0001]本专利技术涉及对话推荐系统
,具体来说是通过对话历史,确定用户的心理认知情况并选择合适的对话策略,来生成更富有同理心的回复,以及从问答建议知识库中推荐最为合适的答案反馈给用户的一种基于深度学习的情绪感知与支持的对话系统构建方法。

技术介绍

[0002]对话系统因其较高的商业价值而收到商业届以及学术届的广泛关注,近年来得益于网络数据的海量增长以及深度学习的发展,对话系统也得到了更进一步的发展。
[0003]在疫情全球蔓延的背景下,近年来出现焦虑或抑郁等心理疾病的人数,远高于19年之前。但是心理咨询的昂贵收费、专业的心理咨询师紧缺等原因,导致很多人不能及时的治疗心理疾病。通过人工智能与心理结合,可以在一定程度上缓解心理健康资源的有限性与心理疾病患者需求的无限性之间的矛盾。人工智能研究至今,在深度学习、自然语言处理、情绪识别、计算机视觉等方面都有极大的进展,在对话系统领域,尤其是智能问答和智能客服方面,已有广泛的应用。与此同时,以人工智能为核心技术的心理咨询系统逐渐进入人们的视野,实验证明,结合了人工智能的心理咨询机器人能够在交互过程中感知用户的心理状态,一定程度上纾解用户的心理压力。

技术实现思路

[0004]本专利技术的目的是针对现有的对话系统情感支持过程固定的问题,提出了一种基于深度学习的情绪感知与支持的对话系统构建方法,该方法在助人技术理论指导下,构建了多种对话策略,并能够根据上下文、用户画像与当前情绪自适应选择对话策略,引导系统生成更具有同理心的回复内容,给予用户更加有效的情感支持。
[0005]实现本专利技术目的的具体技术方案是:
[0006]一种基于深度学习的情绪感知与支持的对话系统构建方法,该方法包括如下步骤:
[0007]该方法包括如下步骤:
[0008]1)建立对话策略选择模块
[0009]对话策略选择模块通过对话上下文历史动态的选择对话策略,训练对话策略选择模块的对话策略选择模型,需要应用到对话数据集,数据集中要求有多轮的对话历史,标注出用户心理认知状态类型,如是“拖延症”、“职业烦恼”、“学校霸凌”、“酗酒”、“抑郁症”、“学业压力”、“外表焦虑”、“睡眠问题”、“家庭冲突”、“友谊烦恼”、“爱情烦恼”、“家庭烦恼”、“成长烦恼”13种心理认知状态类型,并且每轮对话中都需标注出该轮对话中回复时所使用的对话策略;在该对话系统中共设定“提问”、“情感反映”、“自我表露”、“肯定与安慰”、“给予建议”及“其他”6种对话策略;
[0010]对所述的对话数据集,设给定的对话上下文历史为{u1,r1,u2,r2,...,u
m
,r
m
},其中
i表示对话轮次,u
i
表示第i轮对话中的用户的语句,r
i
表示第i轮对话对中系统回复的语句,给定对话策略{S1,S2,...,,S
m
},给定用户心理认知状态O,给定当前的对话轮次i的条件下,选择最近的两轮对话作为用户当前对话历史,设为U={u
i
‑2,r
i
‑2,u
i
‑1,r
i
‑1,u
i
},不足两轮时则选择第1轮对话到当前轮次用户语句;
[0011]对当前对话历史U,按照对话历史顺序依次进行拼接,并通过独立标签[SEP]将不同的对话进行分隔,并在拼接的序列前添加标签[CLS],序列最后添加标签[SEP],得到拼接序列U
cat
=[CLS]u
i
‑2[SEP]r
i
‑2[SEP]u
i
‑1[SEP]r
i
‑1[SEP]u
i
[SEP];将拼接序列U
cat
作为输入,通过预训练好的TransformerEncoder模型对拼接序列U
cat
进行编码,得到 TransformerEncoder模型输出的编码序列具体过程如下:
[0012]U
E
=Embedding(U
cat
)
[0013][0014]Encoder(U
E
)=Add&Norm(MultiHead(U
E
,U
E
,U
E
))
[0015]Add&Norm(x)=LayerNorm[FFN(x)+x][0016]FFN(x)=Relu(xW1+b1)W2+b2[0017]MultiHead(Q,K,V)=LayerNorm(Concat(head1,

head
h
)W
O
+Q)
[0018][0019][0020]Embedding函数的功能是将输入序列转换成连续的嵌入矩阵,其中K
T
表示矩阵K的转置矩阵,d
k
是一个常数,大小取决于计算时矩阵Q的列数;W
iQ
、是Attention 模块可学习的参数矩阵,每种共有h个,h为Attention模块数量,W
iQ
、的下标i表示第i个Attention模块,上标Q、K、V表示分别对应矩阵是Q、K、V,W
O
是MultiHead 模块中一个可学习的参数矩阵,LayerNorm表示层归一化函数;W1、b1,W2、b2则分别表示两层前馈神经网络(Feed Forward Neural Networks,FFN)的可学习参数矩阵,选择 Relu作为激活函数;
[0021]得到编码序列后,根据拼接序列U
cat
中标签[CLS]的位置P
CLS
,取编码序列的第P
CLS
位置的向量表示,作为当前历史对话的特征表示,记为再将输入到两层FFN和Softmax 层进行分类,得到对话策略为i表示当前的对话轮次:
[0022][0023]最后训练对话策略选择模块的损失计算函数为多分类的交叉熵损失函数:
[0024][0025]其中i表示当前对话轮次,表示对话策略的总数量,表示第i轮对话中,预测第j种策略的得分,是第i轮对话的第j种策略的真实标签,正样本标签为1,负样本标签为0;
[0026]在所述的对话数据集中共定义6种对话策略为,分别是“提问”、“情感反映”、“自我
表露”、“肯定与安慰”、“给予建议”及“其他”;在对话策略预测为“提问”、“情感反映”、“自我表露”、“肯定与安慰”或“其他”时,转入对话生成模块给予回复,若对话策略预测为“给予建议”,则转入心理状态认知模块预测用户心理认知类型,并通过用户心理认知类型引导建议推荐模块进行回复;
[0027]2)建立对话生成模块
[0028]对话生成模块通过对话上下文历史和对话策略引导生成回本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于深度学习的情绪感知与支持的对话系统构建方法,其特征在于,该方法包括如下步骤:1)建立对话策略选择模块使用对话数据集,对话数据集要满足:每条数据要有多轮的对话历史,且在每轮对话中要标注出该轮对话中回复时所使用的对话策略,并且要标注出用户心理认知状态类型;对所述的对话数据集,设给定的对话上下文历史为{u1,r1,u2,r2,...,u
m
,r
m
},其中i表示对话轮次,u
i
表示第i轮对话中的用户的语句,r
i
表示第i轮对话对中系统回复的语句,给定对话策略{S1,S2,...,S
m
},给定用户心理认知状态O,给定当前的对话轮次i的条件下,选择最近的两轮对话作为用户当前对话历史,设为U={u
i
‑2,r
i
‑2,u
i
‑1,r
i
‑1,u
i
},不足两轮时则选择第1轮对话到当前轮次对话语句;对当前对话历史U,按照对话历史顺序依次进行拼接,并通过独立标签[SEP]将不同的对话进行分隔,并在拼接的序列前添加标签[CLS],序列最后添加标签[SEP],得到拼接序列U
cat
=[CLS]u
i
‑2[SEP]r
i
‑2[SEP]u
i
‑1[SEP]r
i
‑1[SEP]u
i
[SEP];将拼接序列U
cat
作为输入,通过预训练好的TransformerEncoder模型对拼接序列U
cat
进行编码,得到TransformerEncoder模型输出的编码序列具体过程如下:U
E
=Embedding(U
cat
)Encoder(U
E
)=Add&Norm(MultiHead(U
E
,U
E
,U
E
))Add&Norm(x)=LayerNorm[FFN(x)+x]FFN(x)=Relu(xW1+b1)W2+b2MultiHead(Q,K,V)=LayerNorm(Concat(head1,...head
h
)W
O
+Q)head
i
=Attention(QW
iQ
,KW
iK
,VW
iV
)Embedding函数的功能是将输入序列转换成连续的嵌入矩阵,其中K
T
表示矩阵K的转置矩阵,d
k
是一个常数,大小取决于计算时矩阵Q的列数;W
iQ
、W
iK
、W
iV
是Attention模块可学习的参数矩阵,每种共有h个,h为Attention模块数量,W
iQ
、W
iK
、W
iV
的下标i表示第i个Attention模块,上标Q、K、V表示分别对应矩阵是Q、K、V,W
O
是MultiHead模块中一个可学习的参数矩阵,LayerNorm表示层归一化函数;W1、b1,W2、b2则分别表示两层前馈神经网络(Feed Forward Neural Networks,FFN)的可学习参数矩阵,选择Relu作为激活函数;得到编码序列后,根据拼接序列U
cat
中标签[CLS]的位置P
CLS
,取编码序列的第P
CLS
位置的向量表示,作为当前历史对话的特征表示,记为再将输入到两层FFN和Softmax层进行分类,得到对话策略为i表示当前的对话轮次:最后训练对话策略选择模块的损失计算函数为多分类的交叉熵损失函数:
其中i表示当前对话轮次,表示对话策略的总数量,表示第i轮对话中,预测第j种策略的得分,是第i轮对话的第j种策略的真实标签,正样本标签为1,负样本标签为0;在所述的对话数据集中共定义6种对话策略,分别是“提问”、“情感反映”、“自我表露”、“肯定与安慰”、“给予建议”及“其他”;在对话策略预测为“提问”、“情感反映”、“自我表露”、“肯定与安慰”或“其他”时,转入对话生成模块给予回复,若对话策略预测为“给予建议”,则转入心理状态认知模块预测用户心理认知类型,并通过用户心理认知类型引导建议推荐模块进行回复;2)建立对话生成模块将最近的两轮对话作为对话历史与对话策略进行拼接,设为输入到预训练好的Transformer Decoder中,将Decoder每一步结果进行输出,得到完整的回复Response;US
E
=Embedding(U
cat
)Response=Decoder(US
E
)Decoder(US
E
)=Add&Norm(MaskedMultiHead(US
E
,US
E
,US
E
))MaskedMultiHead(Q,K,V)=LayerNorm(Concat(head1,,...head
h
)W
O
+Q)head
i
=MaskedAttenti...

【专利技术属性】
技术研发人员:杨燕谭振东孙宇翔张雨时陈妍贺樑
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1