質疑応答システム (QA) の研究

導入

インテリジェントな質疑応答システムは、人々の質問に自然言語で答えるために広く使用されています。古典的なアプリケーション シナリオには、インテリジェントな音声対話、オンライン カスタマー サービス、知識の獲得、感情的なチャットなどが含まれます。QAのタスクに応じて、QAは
テキストベースのQA(TBQA)、
ナレッジベースの質問応答(KBQA)、
コミュニティ質問応答(CQA)の
テーブル質疑応答(Table Question Answering、TQA)、
ビジュアル質問の5つのカテゴリに大別されます。回答 (VQA)
. 以下は、タスク (回答は何か)、方法 (回答方法、深層学習部分のみを整理し、従来のアルゴリズムはスキップします)、サンプル プロジェクト (実践またはオンライン体験)、結論 (個人的な考察) です。および測定)。

テキストベースの QA (TBQA)

1: タスク

与えられたテキストに基づいて、質問に対応する回答を生成することを機械読解 (MRC) と呼ぶこともできます。
処理プロセス:
ここに画像の説明を挿入します
1) 記事位置決めモジュール テキスト
読み取り:
ユーザーの質問に応じて、テキスト分類、検索などのアルゴリズムを使用して、高確率で段落の集合を取得します。 2)
前処理モジュール
文章のベクトル化、形式正規化、特徴量計算など3
) DNN サービス モジュール
深層学習モデルをロードし、回答スコアを予測します
4) 後処理モジュールは、
動的プログラミングに基づいて最良の回答出力を選択します

タスクに応じて、次の状況に分類できます。

Cloze と同様に、空白に答えを埋めてください。

与えられたテキストの内容をもとに、質問に含まれていない単語やフレーズを予測します。このタイプの質問のデータ セットの形式は、ほとんどが次のような [背景、質問、回答] のトリプルです。
ここに画像の説明を挿入します

回答の選択は多肢選択式の質問に似ています。

给定文本内容,并给定问题对应的若干答案候选,对这些答案候选进行排序并选出可能性最大的答案候选.这类问题的数据集,通常是英语考试阅读理解,比如:
ここに画像の説明を挿入します
3)答案抽取,片段抽取。
根据给定的问题从文本中抽取答案。这里的答案可能是文本中的任意片段。这类问题的数据集形态大多数为【原文,问题,答案】三元组。
ここに画像の説明を挿入します

答案摘要,自由问答。

根据给定问题和文本,生成一段可以回答问题的摘要,这里的答案片段可能并没有出现在对应的文本中。这类问题的数据集形态大多数为: ID 文本 ID 文本 ID 问题 [标签] 答案 [标签]
ここに画像の説明を挿入します

基于知识的机器阅读理解(Knowledge-Based MRC)

需要借助外部知识才能获取到的答案。这里问题的数据集形态通常为:一个领域若干条文本概述,围绕给出的文本进行对话问答,对话比较短,通常只有一两对对话。比如:
ここに画像の説明を挿入します

不可答问题的机器阅读理解(MRC with Unanswerable Questions)

根据上下文以及外部知识也无法获得的答案。
ここに画像の説明を挿入します

对话型问题回答(Conversational Question Answering)

给定一个问答,A提问题,B回复答案,然后A根据答案继续提问题。这个方式有点类似多轮对话。
ここに画像の説明を挿入します
总之,不管哪一种任务,都是需要阅读和理解给定的文本段落,然后根据其回答问题。

二:方法

事前学習モデルに基づく手法
(1) 近年、NLP分野は大量の一般領域データを用いて学習され、ELMO、GPT、BERT、ENRIEなどの優れた事前学習済み言語モデルが多数登場している。生まれました。特定の読解タスクでは、ドメイン微調整、データ微調整、タスク微調整を実行することで、学習した文章特徴情報を特定のタスクに適用できます。(BERT: GPT と ELMO の利点を組み合わせ、Transformer コーディング モデルを導入し、双方向言語モデルを使用し、マスク言語モデルとトレーニング中に文の順序を判断するタスクを追加することで、より多くの言語表現を取得できます)クエリとコンテキストの
ここに画像の説明を挿入します
連結入力 BERT の各トークンのベクトル表現を取得します。入力形式は次のとおりです: CLS "クエリ" SEP コンテキスト。BERT トレーニング後、抽出する必要があるスパンを見つけます。 (2) コントラスト プロンプト調整フレームワーク (KECP
) ) 知識強化に基づく学習は、小規模サンプル学習の一種です。このアルゴリズムは、基本的な学習パラダイムとして Prompt-Tuning を使用し、非常に少量のトレーニング データのみが必要な場合に、指定された記事から要件を満たすテキストを回答として抽出します。注釈付き。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

3: サンプルプロジェクト

1:easyNLP

プロジェクトアドレス: https://github.com/alibaba/EasyNLP
プロジェクトの説明: 1.4K コレクション、179 クローン、維持されています。数時間前に更新されました。これは、Alibaba Cloud チームのプロジェクトであり、 EMNLP2022、トップカンファレンス。
論文: KECP: Knowledge-Enhanced Contrastive Prompting for Few-shot Extractive Question Answering https://arxiv.org/abs/2205.03071
説明: アルゴリズム KECP は EMNLP に含まれており、非常に少ないトレーニング データで機械読解を達成できます
https:/ /zhuanlan.zhihu.com/p/590024650

2:デュリーダー

プロジェクトのアドレス: https://github.com/baidu/DuReader/tree/master/DuReader-2.0
プロジェクト コレクション 998、クローン 312 は、かつて定慧の ACL2022 に含まれていた Baidu チームのプロジェクトです。ただし、これはオープン ドメインの質問応答システムであり、データ セットの形状は複雑で、データ セットにはノイズが多く、大量のデータが必要です。
論文: DuReadervis: オープンドメイン ドキュメントのビジュアル質問応答用の中国語データセット https://aclanthology.org/2022.findings-acl.105/説明
: ACL2022 | 中国語の実際の検索シナリオ用のオープンドメイン ドキュメントのビジュアル質問応答データセット
https: //blog.csdn.net/qq_27590277/article/details/125326071
このプロジェクトは自動車業界で実施されています:「自動車説明書のクロスモーダル インテリジェントな質問と回答」
アドレス: https://aistudio.baidu.com/aistudio /プロジェクト詳細/4049663

4. 結論

机器阅读理解问答(MRCQA)是一种给出文章,然后根据文章提问并解答作为标签,去训练。在训练过程中,
首先,为了获得更准确的与问题相关的词与句子,很多Attention机制被提出,这块是很值得研究的一个点。
其次,从任务细分的几种情况来看,大多是的MRC解决方案都是从原文档中匹配检索答案,这其实与人的阅读理解不一样的(人或多或少会用上先验知识),所以,如何使得模型获得先验知识也是我们值得研究的地方。
切入到我们目前实际的问答任务,个人认为:
数据集形态的确定,我们借鉴kecp,输入不是常规的Q+P,而是Qprompt +P,这里的Qprompt
相对于Q,已经可以看作是在数据层面做了Attention。

知识图谱问答(Knowledge Base Question Answering,KBQA)

一:任务

知识图谱(Knowledge Base / Knowledge Graph)中包括三类元素:实体(entity)、关系(relation),以及属性(literal)。实体代表一些人或事物,关系用于连接两个实体,表征它们之间的一些联系。KBQA,就是将问题解析、转换成在知识图谱中的查询,查询得到结果之后进行筛选、翻译成答案输出。
应用场景:多应用于结构化数据场景,比如电商,医药等,最具有代表性的知识图谱问答系统是各种搜索引擎,比如百度,谷歌等。
下面是一个简单的例子:
ここに画像の説明を挿入します
问题:”商鞅变法”发生在哪个朝代?
知识图谱问答系统分5步得出答案:
1:确定问题中提到的实体;2:将问题的其他部分分段;3:通过web接口获取包含该实体的所有三元组;4,计算“关系”和分割词之间的相似度,5:基于相似性结果对那些三元组进行排序以返回正确答案;

二:方法

1:知识图谱的构建

What:KBQA,首先在知识图谱的构建,也就是数据集构建上,是非常重要的过程。根据不同领域,构建不同领域的知识图谱,比如阿里巴巴商品知识图谱,zego元宇宙知识图谱等,数据集构建好之后,为其增加一个 QA 系统,就成了一个能解答XX相关问题的机器人。
How: (1)可以通过Neo4j简单构建自己的知识图谱数据集
具体实操过程,可参考:https://blog.csdn.net/jesseyule/article/details/110453709
(2)通过OpenNRE构建
实操参考:http://pelhans.com/2019/01/04/kg_from_0_note9/
ccks2019_sample subset:结构化三元组形态,是目前应用最广的。
ここに画像の説明を挿入します

2:所提问题到图谱查询的转化

这一步可以通过语义分析,从而构建这个问题的图谱查询,得到答案;也可以基于信息抽取,从问题中抽取实体,再去已有的知识图谱中匹配问题,最后排序选择结果。
这里有一篇美团知识图谱问答解析:https://tech.meituan.com/2021/11/03/knowledge-based-question-answering-in-meituan.html

三:示例工程

1: NBA 関連の質問に対する質疑応答システム: https://github.com/wey-gu/nebula-siwi/
2: KBQA-BERT
プロジェクトのアドレス: https://github.com/WenRichard/KBQA-BERT
プロジェクト コレクション1.3K 、クローン 342、最終更新日は 4 年前、文書特徴抽出と文類似度計算に bert を使用。古い方法。
3: 医療知識グラフに基づくインテリジェントな質疑応答システム QASystemOnMedicalKG プロジェクト アドレス
: https://github.com/liuhuanyong/QASystemOnMedicalKG
プロジェクト コレクション 4.7K、クローン 1.8K、最終更新は 3 年前。同様に、犯罪知識グラフに基づくインテリジェントな質問と回答システム、軍事知識のグラフに基づくインテリジェントな質問と回答システムなどがあります。これらは比較的人気がなく、エンジニアリングの人気も低いです。
4: haystack
プロジェクトのアドレス: https://github.com/deepset-ai/haystack
プロジェクト コレクション 6.9K、クローン 1K、人々によって維持されています。ドキュメントベースのセマンティック分析と質問を実装するために数時間前に更新されましたChatgpt のような質問回答、セマンティック検索、テキスト生成などを構築するためのエンドツーエンドのフレームワークです。参考ドキュメント:https://docs.haystack.deepset.ai/docs/knowledge_graph
5:intelligent_question_answering_v2
プロジェクトアドレス:https://github.com/milvus-io/bootcamp/tree/master/solutions/nlp/question_answering_system
工程收藏 1.1K,clone 442,最近更新在3个月前。用Milvus做相似度计算和搜索,找到所问问题与数据集中相似问题,然后匹配相似问题的答案,fastAPI做交互式界面,搭建比较简单。

四 结论:

(1)KBQA与MRC相比,MRC的语料是一问一答式,容易获取,KBQA需要有结构化的知识库,获取比较难。
(2)KBQA流程是识别出问题的实体,然后构建图谱查询,而MRC需要理解一堆非结构化的语料,两者不管是在速率还是效率上,都是KBQA优于MRC。
(3)切入到我们目前实际的问答任务,个人认为:
①如果想算法快速落地,推荐使用MRC,因为其数据集容易获取且清洗。
②如果想追求响应时间快,准确率高,推荐使用KBQA,那构建我们自己的知识图谱尤为重要,后面模型出的答案是否准确,跟知识图谱有很大关系。

社区问答(Community Question Answering,CQA)

一:任务

技术点在于语义文本匹配问题,计算文本与文本之间的相似度和关联度的问题。根据任务划分,可以将CQA还分为:

1.FAQ

用户频繁会问到的业务知识类问题的自动解答。
https://github.com/Bennu-Li/ChineseNlpCorpus
例如法律文书匹配样例:
ここに画像の説明を挿入します

2.CQA

问答对来自于社区论坛中用户的提问和回答,较为容易获取,没有人工标注,相对质量较低。

二:方法

常用孪生网络,比较两个输入的相似度
ここに画像の説明を挿入します
可以当分类任务,输出sentenceA 与sentenceB是否相似,也可以当回归任务,输出sentenceA 与sentenceB相似的程度。

四 结论:

CQA主要用于语义相似度匹配,比如医疗问答匹配,某某客服问题匹配,某某需求与成果匹配等,跟我们目前实际问答任务相关性较弱,没有过多调研。

表格问答(Table Question Answering,TQA)

一:任务:

ここに画像の説明を挿入します
TQA任务流程分为以上5步,分别为:
(1)表格检索:从一堆表格中检索出跟问题相关性较大的表格
(2)语义解析:将非结构化的文本问题,转化为SQL语句
(3)问题生成:围绕上述语义解析,产生相关问题输出。同时对这些问题与所提问题做相似度排序。
(4)对话:对上述产生的问题进行解答。
(5)文本生成:将上述排列最考前的问题与答案,用自然语言描述出来,作为答案输出。

视觉问答(Visual Question Answering,VQA)

一:任务

VQA(Visual Question Answering)指的是,给机器一张图片和一个开放式的的自然语言问题,要求机器输出自然语言答案。这是目前比较新也比较火的方向。VQA细分,还可以分为图片问答,视频问答,图片文本问答,图表问答等。
ここに画像の説明を挿入します

三:示例工程

1: ERNIE-Layout: レイアウト知識によって強化された文書理解のための事前トレーニング
1: 論文アドレス: https://arxiv.org/pdf/2210.06155v2.pdf
2: プロジェクトアドレス: https://github.com/PaddlePaddle/ PaddleNLP/tree/develop/model_zoo/ernie-layout
3: エクスペリエンス: https://huggingface.co/spaces/PaddlePaddle/ERNIE-Layout
画像を入力し、その画像に基づいて質問します。例:
Q: これは何ですか?素材?
システムは、不動産情報照会結果通知フォームに自動的に回答し
、アップロードされた地図上に情報の位置を自動的にマークします。
ここに画像の説明を挿入します
2: ビルト
エクスペリエンス: https://huggingface.co/tasks/visual-question-answering
ここに画像の説明を挿入します

4 つの結論:

VQA コーパスはイメージであり、現在の実際の質疑応答のタスクとの関連性は低いですが、個人的には、この領域は応用の可能性が高く、研究する価値があると感じています。

おすすめ

転載: blog.csdn.net/jiafeier_555/article/details/129197985
QA