主頁 >  其他 > 自然語言處理 Paddle NLP - 檢索式文本問答-理論

自然語言處理 Paddle NLP - 檢索式文本問答-理論

2023-06-26 09:55:18 其他

問答系統(Question Answering System,QA) 是資訊檢索系統的一種高級形式,它能用準確、簡潔的自然語言回答用戶用自然語言提出的問題,其研究興起的主要原因是人們對快速、準確地獲取資訊的需求,問答系統是人工智能.

抽取式閱讀理解:它的答案一定是段落里的一個片段,所以在訓練前,先要找到答案的起始位置和結束位置,模型只需要預測這兩個位置,有點像序列標注的任務,對一段話里的每個字,都會預測兩個值,預測是開始位置還是結尾位置的概率,相當于對每個字來講,都是一個二分類的任務

image
image
image
image
image
機器閱讀技術:2011年7月20日,姚明正式宣布退役 => 姚明哪一年退役
image
500萬的維基百科檔案
image
檢索式問答:先欄位落檢索、再做答案抽取
image
image
image

閱讀理解:
image
郭鶴年 => 郭鶴,3個字里面對了2個 => 2/3, 完全匹配 => 1,f1(2/3,1) => 0.8
image
SQuAD(2016) 只能做抽取,資料量是訓練深度神經網路的關鍵要素,資料集有著很大的影響力很多精典的閱讀理解模型,也是基于SQuAD做的
image
DuReader(2017) 百度2017年發布的,迄今為止最大的中文閱讀理解資料集,相比較 SQuAD,除了物體類、描述類和事實類的問題,還包含了是非類和觀點類的問題
image

image
image
image
抽取式閱讀理解,它的答案一定是段落里的一個片段,所以在訓練前,先要找到答案的起始位置和結束位置,模型只需要預測這兩個位置,有點像序列標注的任務,對一段話里的每個字,都會預測兩個值,預測是開始位置還是結尾位置的概率,相當于對每個字來講,都是一個二分類的任務
image
基于LSTM+注意力機制,核心思想就是如何對問題和段落進行互動和語意理解,一般就是在模型里面加各種 attention,各種復雜的模型結構基本上能總結成圖中的形式,一般分為四層,

  • 向量表示層:主要負責把問題和段落里的token映射成一個向量表示
  • 語意編碼層:使用RNN來對問題和段落進行編碼,編碼后,每一個token的向量都包含了背景關系的語意資訊
  • 互動層:最重要的一層,也是大多數研究作業的一個重點,負責捕捉問題和段落之間的互動資訊,把問題的向量,和段落的向量做各種互動,一般使用各種注意力機制,最后它會輸出一個融合了問題的語意資訊的段落表示,
  • 答案預測層:會在段落表示的基本上,預測答案的位置,也就是預測答案的開始位置和結尾位置
    LSTM 是一個比較基本的模型結構
    image
    注意力機制,來源于影像,在看一張圖片的時候,就會聚焦到圖片上的某些地方,通過圖片上一些重點地方,獲取到主要的資訊,
    比如圖片里是小狗,看到了狗的耳朵、鼻子就能判斷出這是小狗,這時候注意力就集中在狗的臉部上,
    對于文本也一樣,文本的問題和段落匹配程序中,也會聚焦到不同的詞上面,比如:香格里拉酒店老板是誰?段落:香格里拉是香港上市公司品牌隸屬于郭氏集團,
    對于問題香格里拉這個詞,在段落文本中更關心香格里拉這個詞,帶著問題讀本文時,所關注點是不一樣的,如:老板這個詞,關注力在隸屬于上,
    如果問題是:香格里拉在哪里上市的,那么對于文本的關注點就在“上市公司”上了
    注意力機制,就是獲取問題和段落文本互動資訊的一個重要手段

理論形式:給定了一個查詢向量Query,以及一些帶計算的值Value,通過計算查詢向量跟Key的注意力分布,并把它附加在Value上面,計算出 attention 的值,

  • Query 向量是問題,
  • Value 對應段落里面編碼好的語意表示,
  • key 是問題向量和文本向量做內積之后做歸一化,代表了每個詞的權重
    最后對這些 Value 根據這些權重,做加權求和,最后得到了文本經過attention之后的值

一般會事先定義一個候選庫,也就是大規模語料的來源,然后從這個庫里面檢索,檢索出一個段落后,再在這個段路上做匹配,
image
基于預訓練語言模型(eg.BERT)
image
image
領導A訓練好的模型,在領域B應用

  • 通過多任務學習、遷移學習等提升模型的泛化能力
  • MRQA 2019 Shared Task
    image

過穩定:對于不同的提問,給出相同的答案
過敏感:對于相同語意的提問,給出不同的答案
提高閱讀模型魯棒性的方法:

  • 通過對抗樣本生成、復述生成等方法提升模型的魯棒性
  • DuReader-Robust、DuReader-Checklist
    千言資料集:https://aistudio.baidu.com/aistudio/competition/detail/49

image

段落檢索

image
稀疏向量檢索:雙塔

  • 基于詞的稀疏表示
  • 匹配能力有限,只能捕捉字面匹配
  • 不可學習

把文本表示成 one hot (拼寫可能有錯)的形式,常見的有 TFDF、BM?
文章編碼成向量,向量的長度和詞典的大小一致,比如詞典的大小是3W,稀疏向量表示3W,
每個位置表示這個詞有沒有在問題中出現過,出現過就是1

倒排索引,一般采用稀疏向量方式,只能做字面匹配

稀疏向量,幾百、上千萬的檔案都支持

稠密向量檢索:單塔

  • 基于對偶模型結構,進行稠密向量表示
  • 能夠建模語意匹配
  • 可學習的

把文本表示成稠密向量,也就是 Embedding,需要通過模型,對文本的語意資訊進行建模,然后把資訊記錄在向量里,這邊的向量長度,一般是128、256、768,相較于稀疏向量檢索小很多,每個位置的數字是浮點數

一般通過對偶模型的結構進行訓練,來獲得建模的語意向量,
例:
Q:王思聰有幾個女朋友
P:國民老公的戀人A、B、C......
如果通過 稀疏向量檢索,可能完全匹配不到
稠密向量檢索,可以學習到,國民老公=>王思聰,戀人=> 女朋友
image
兩者可以互補,一個字面匹配,一個是語意匹配
image
文本匹配中的兩種模型結構

  • 對偶式模型結構:問題、段落分別編碼,得到各自的 Embedding,然后通過內積或者 cosin 來計算向量之間的相似度,這個相似度代表了問題和段落之間的匹配程度
    問題和段落之間難以互動,因為他們是分別編碼的,底層沒有互動,所以邏輯會弱些
    可以快速索引,可以提前把段落向量這邊計算好
  • 互動式模型結構:輸入把問題和段落拼一起,在中間互動層問題的文本和段落的文本會有個完全的互動,最后輸出一個來表示問題和段落的匹配程度

對偶模型的引數可以共享,共享引數對字面匹配效果好些,不共享效果也差不了太多
實際應用中,把所有的檔案都計算完,把向量存盤下來,在線計算時,直接去檢索

image
DPR
image
正例和強負例 1:1 ,弱負例 越多越好
強負例:和檔案有些關系
弱負例:和檔案內容不相關的,

一般做檢索,不會把正例表得那么完整,在標注時,也是通過一個query,先去檢索出一些候選的段落,在候選段落里,去標正例和負例,這樣因為檢索能力的限制,可能沒有檢索回來的一些段落就沒有標注,這樣會導致資料集中漏標,所以實際上在訓練程序中會對這些漏標的資料集進行處理,有些資料集只標了正例,并沒有負例,這時候負例只能通過一些方式去構造
image

image

推薦閱讀

  • Reading Wikipedia to Answer Open-domain Questions
  • Bi-DirectionalAttentionFlowForMachineComprehension
  • Machine Comprehension UsingMatch-LSTMand Answer Pointer
  • Dense Passage Retrieval for Open-Domain Question Answering
  • Latent Retrieval for Weakly Supervised Open Domain Question Answering
  • Sparse, Dense, and Attentional Representations for Text Retrieval
  • REALM:Retrieval-Augmented Language Model Pre-Training
  • RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555984.html

標籤:其他

上一篇:自然語言處理 Paddle NLP - 檢索式文本問答-理論

下一篇:返回列表

標籤雲
其他(161620) Python(38248) JavaScript(25513) Java(18260) C(15238) 區塊鏈(8272) C#(7972) AI(7469) 爪哇(7425) MySQL(7269) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4606) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2437) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1985) HtmlCss(1972) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 自然語言處理 Paddle NLP - 檢索式文本問答-理論

    問答系統(Question Answering System,QA) 是資訊檢索系統的一種高級形式,它能用準確、簡潔的自然語言回答用戶用自然語言提出的問題。其研究興起的主要原因是人們對快速、準確地獲取資訊的需求。問答系統是人工智能. 抽取式閱讀理解:它的答案一定是段落里的一個片段,所以在訓練前,先要 ......

    uj5u.com 2023-06-26 09:55:18 more
  • 自然語言處理 Paddle NLP - 檢索式文本問答-理論

    問答系統(Question Answering System,QA) 是資訊檢索系統的一種高級形式,它能用準確、簡潔的自然語言回答用戶用自然語言提出的問題。其研究興起的主要原因是人們對快速、準確地獲取資訊的需求。問答系統是人工智能. 抽取式閱讀理解:它的答案一定是段落里的一個片段,所以在訓練前,先要 ......

    uj5u.com 2023-06-26 09:48:27 more
  • Note of Introduction to Bioorganic Chemistry and Chemical Bi

    ## Chapter 1: The Fundamentals of Chemical Biology (第 1 章 化學生物學基礎) ### 1.0 INTRODUCTION (引子) #### 1.0.1 Why organize a book on chemical biology around ......

    uj5u.com 2023-06-26 08:55:31 more
  • Python控制流程盤點及高級用法、神秘技巧大揭秘!

    在這篇文章中我們將全面深入地介紹 Python 的控制流程,包括條件陳述句、回圈結構和例外處理等關鍵部分,尤其會將串列決議、生成器、裝飾器等高級用法一網打盡。此外,我還將分享一些獨特的見解和研究發現,希望能給你帶來新的啟發。文章的結尾,我們將有一個 "One More Thing" 環節,我會分享一個 ......

    uj5u.com 2023-06-26 08:55:07 more
  • C++ 核心指南之資源管理(中)

    > C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup、Herb Sutter 等頂尖 C++ 專家創建的一份 C++ 指南、規則及最佳實踐。旨在幫助大家正確、高效地使用“現代 C++”。 > > 這份指南側重于介面、資源管理、記憶體管理、并發等 Hig ......

    uj5u.com 2023-06-26 08:55:01 more
  • 用coredns加etcd,搭建跨平臺動態服務發現

    coredns被我喜愛的原因:跨平臺,支持win,linux版同時使用。同時支持組態檔和etcd。用它來搭建動態服務發現極其簡單。 ......

    uj5u.com 2023-06-26 08:54:56 more
  • KubeSphere 社區雙周報 | OpenFunction 發布 v1.1.1 | 2023.6.9-

    KubeSphere 社區雙周報主要整理展示新增的貢獻者名單和證書、新增的講師證書以及兩周內提交過 commit 的貢獻者,并對近期重要的 PR 進行決議,同時還包含了線上/線下活動和布道推廣等一系列社區動態。 本次雙周報涵蓋時間為:2023.6.9-6.22。 ## 貢獻者名單 ![](https ......

    uj5u.com 2023-06-26 08:54:34 more
  • Java 反序列化之 XStream 反序列化

    XStream 是一個簡單的基于 Java 庫,Java 物件序列化到 XML,反之亦然(即:可以輕易的將 Java 物件和 XML 檔案相互轉換)。如何使用 XStream 進行序列化和反序列化操作? ......

    uj5u.com 2023-06-26 08:48:25 more
  • Python 中的 JSON 操作:簡單、高效的資料交換格式

    > 在現代的資料交換和存盤中,JSON(JavaScript Object Notation)作為一種輕量級的資料交換格式,備受青睞。它不僅易于閱讀和理解,還可以靈活地表達和存盤高維資料。本文將介紹如何在 Python 中操作 JSON 檔案,實作資料的序列化和反序列化。 ## 1. JSON 資料 ......

    uj5u.com 2023-06-26 08:41:53 more
  • 如何重繪 DNS 快取 (macOS, Linux, Windows)

    如何重繪 DNS 快取 (macOS, Linux, Windows) Unix Linux Windows 如何重繪 DNS 快取 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 請訪問原文鏈接:,查看最新版。原創作品,轉載請保留出處 ......

    uj5u.com 2023-06-26 08:41:49 more