这里写自定义目录标题
- 基于文本语义的智能问答
- 对话系统关键技术
- 相关工具
- 检索式相关技术介绍
- 生成式相关技术介绍
- 任务型相关技术介绍(重要,在实际生活中很多用到)
- 智能问答技术方案
- 传统匹配方法存在的问题
- 深度学习文本匹配
- 问答系统关键技术
基于文本语义的智能问答
FAQ,可以迁移,只需该改变导入的数据。
项目核心技术点∶
通过深度学习模型判断问题与答案的匹配得分
使用BERT模型特征提取并判断问题相似度
使用检索引擎Faiss索引构建和检索
构建在线FAQ问答系统
平台化思路建立,是一个通用的解决方案,只需要按照数据规范,不需要修改代码就可以运行系统。
一般处理流程:
1.问答对数据集的清洗
2.Embedding ( tf-idf , word2vec,doc2vec,elmo,bert…)
3.模型训练
4.计算文本相似度
5.在问答库中选出与输入问题相似度最高的问题
6.返回相似度最高的问题所对应的答案
任务型对话系统
对话系统关键技术
相关工具
1编程语言: python(模型或者服务),C++,Java , go在线服务
2.数据处理及机器学习相关库:pandas、scikit-learn、jieba
3.深度学习框架: tensorflow,pytorch(没有特殊要求)
4.开发工具:pycharm. visual studio code
5.其它工具:ElasticSearch搜索引擎、向量检索引擎Faiss/Milvus
检索式相关技术介绍
1、分词算法
传统算法:HMM隐马尔可夫模型、CRF条件随机场
深度学习:LSTM、Bi-LTSM
2、文本向量化表示
OneHot 、N-Gram 、TFIDF等词袋模型、Word2Vec、Doc2Vec、Glove
Bert(本课程文本向量化表示选择bert)。 XLNet等神经网络模型
3、文本相似度计算(本文采用余弦相似度,计算得分)
余弦相似度、欧式距离
4.检索引擎
ElasticSearch搜索引擎、向量检索引擎Faiss(本项目采用,是Facebook AI研究院开源)
生成式相关技术介绍
闲聊系统
1、Seq2Seq模型
2.Seq2Seq + Attention模型
3、Transformer
4、Bert模型
任务型相关技术介绍(重要,在实际生活中很多用到)
1、意图识别
2、填槽、对话管理
3、多轮对话
自然语言处理( NLP)是对话系统的核心部分
智能问答模块用来完成问答类任务(FAQ问答系同,可以基于语义匹配检索来完成)
智能聊天用来完成闲聊类任务
对话系统自然语言理解采用的是frame semantics表示的一种变形,即采用领域( domain )、意图( intent)和属性槽( slots )来表示语义结果
智能问答技术方案
传统匹配方法存在的问题
传统的文本匹配技术有BoW、VSM、TF-IDF、BM25、Jaccord、SimHash等算法主要解决字面相似度问题。
面临的困难:
由于中文含义的丰富性,通常很难直接根据关键字匹配或者基于机器学习的浅层模型来确定两个句子之间的语义相似度。
深度学习文本匹配
相比传统的模型优点∶
·能够节省人工提取特征的大量人力物力
·从大量的样本中自动提取出词语之间的关系,并能结合短语匹配中的结构信息和文本匹配的层次化特性,发掘传统模型很难发掘的隐含在大量数据中含义不明显的特征
本文采用相似问题匹配来实现一个FAQ问答系统。
问题:什么是相似问题匹配?
答案∶即对比用户问题与现有FAQ知识库中问题的相似度,返回用户问题对应的最准确的答案
深度语义匹配模型可以分为两大类,分别是representation-based method和interaction-basedmethod,这里我们针对Represention-based Method这种方法进行探索。
matching function :cos和mlp
问答系统关键技术
Google 的 BERT模型在NLP领域中具有巨大的影响力。它是一个通用的语言表示模型,可以应用于诸多领域。本文的项目是将Faiss与BERT模型结合搭建文本语义匹配检索系统,使用BERT模型将文本数据转成向量,结合Faiss特征向量相似度搜索引擎可以快速搜索相似文本,最终获取想要的结果。
BERT模型是Google 发布的一个新的语言表达模型(Language Representation Model ),全称是Bidirectional Encoder Representations from Transformers(基于transformers),即双向编码表征模型。BERT模型的优势体现在两方面。
·一方面,它使用基于特别设计的注意力机制(Attention Mechanism )的简单全连接网络取代了复杂的CNN和RNN网络。不但大大减少了训练时间,同时有效地提升了网络性能。
另一方面,BERT模型是第一个真正捕获上下文语义信息的预训练语言表示模型。这是因为BERT模型使用了Transformer作为算法的主要框架,而Transformer框架能更彻底地捕捉语句中的双向关系。