日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

万能的Seq2Seq:基于Seq2Seq的阅读理解问答

發布時間:2024/10/8 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万能的Seq2Seq:基于Seq2Seq的阅读理解问答 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者丨蘇劍林

單位丨追一科技

研究方向丨NLP,神經網絡

個人主頁丨kexue.fm

今天給 bert4keras [1] 新增加了一個例子:閱讀理解式問答(task_reading_comprehension.py [2]),語料跟之前一樣,都是用 WebQA 和 SogouQA [3],最終的得分在 0.75 左右(單模型,沒精調)。

方法簡述

由于這次主要目的是給 bert4keras 增加 demo,因此效率就不是主要關心的目標了。這次的目標主要是通用性和易用性,所以用了最萬能的方案——seq2seq 來實現做閱讀理解。

用 seq2seq 做的話,基本不用怎么關心模型設計,只要把篇章和問題拼接起來,然后預測答案就行了。此外,seq2seq 的方案還自然地包括了判斷篇章有無答案的方法,以及自然地導出一種多篇章投票的思路。總而言之,不考慮效率的話, seq2seq 做閱讀理解是一種相當優雅的方案。

這次實現 seq2seq 還是用 UNILM 的方案,如果還不了解的讀者,可以先閱讀從語言模型到Seq2Seq:Transformer如戲,全靠Mask了解相應內容。

模型細節

用 UNILM 方案搭建一個 seq2seq 模型在 bert4keras 中基本就是一行代碼的事情,所以這個例子的主要工作在并不在模型的建立上,而是在輸入輸出的處理上面。?

輸入格式

首先是輸入,輸入格式很簡單,一張圖可以表達清楚:

▲?用seq2seq做閱讀理解的模型圖示

輸出處理

如果輸入單個篇章和單個問題進行回答,那么直接按照 seq2seq 常規的處理方案——即 beam search——來解碼即可。?

但是,WebQA 和 SogouQA 面對的是搜索場景,即同時存在多篇文章來對同一個問題進行回答,這就涉及到投票方案的選擇了。一種樸素的思路是:每個篇章結合問題單獨用 beam search 解碼,并且給出置信度,最后再按照基于CNN的閱讀理解式問答模型:DGCNN的投票方式進行。這種方式的困難之處在于對每個答案給出一個合理的置信度,它相比我們后面給出的思路則顯得不夠自然,并且效率也稍低些。?

這里我們給出一種跟 beam search 更加“契合”的方案:先排除沒有答案的篇章,然后在解碼答案的每一個字時,直接將所有篇章預測的概率值(按照某種方式)取平均。?

具體來說,所有篇章分別和問題拼接起來,然后給出各自的第一個字的概率分布。那些第一個字就給出 [SEP] 的篇章意味著它是沒有答案的,排除掉它們。排除掉之后,將剩下的篇章的第一個字的概率分布取平均,然后再保留 topk(beam search 的標準流程)。預測第二個字時,每個篇章與 topk 個候選值分別組合,預測各自的第二個字的概率分布,然后再按照篇章將概率平均后,再給出 topk。依此類推,直到出現 [SEP]。其實就是在普通的 beam search 基礎上加上按篇章平均,如果實在弄不明白,那就只能去看源碼了。

此外,生成答案的方式應該有兩種,一種是抽取式的,這種模式下答案只能是篇章的一個片段,另外一種是生成式的,即不需要考慮答案是不是篇章的片段,直接解碼生成答案即可。這兩種方式在本文的解碼中都有相應的判斷處理。

實驗代碼

代碼鏈接:


https://github.com/bojone/bert4keras/blob/master/examples/task_reading_comprehension.py

最終在 SogouQA 自帶的評估腳本 [4]?上,valid 集的分數大概是 0.75,單模型成績輕松超過了之前的《開源一版DGCNN閱讀理解問答模型(Keras版)》[3] 模型。當然,提升是有代價的——預測速度大大降低,每秒只能預測 2 條數據左右。

模型沒精細調優,估計還有提升空間,當前還是以 demo 為主。

文章小結

本文主要是給出了一個基于 bert 和 seq2seq 思路的閱讀理解例子,并且給出了一種多篇章投票的 beam search 策略,供讀者參考和測試。

相關鏈接

[1]?https://github.com/bojone/bert4keras

[2]?https://github.com/bojone/bert4keras/blob/master/examples/task_reading_comprehension.py?

[3] https://kexue.fm/archives/6906

[4]?https://github.com/bojone/dgcnn_for_reading_comprehension

點擊以下標題查看作者其他文章:?

  • 當Bert遇上Keras:這可能是Bert最簡單的打開姿勢

  • 玩轉Keras之Seq2Seq自動生成標題 | 附開源代碼

  • 一文讀懂「Attention is All You Need」| 附代碼實現

  • 基于CNN的閱讀理解式問答模型:DGCNN

  • 基于DGCNN和概率圖的輕量級信息抽取模型

  • ICLR 2019最佳論文 | 用有序神經元表達層次結構

#投 稿 通 道#

?讓你的論文被更多人看到?

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術干貨。我們的目的只有一個,讓知識真正流動起來。

?????來稿標準:

? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?

? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?

? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志

???? 投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨在附件中發送?

? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

▽ 點擊 |?閱讀原文?| 查看作者博客

總結

以上是生活随笔為你收集整理的万能的Seq2Seq:基于Seq2Seq的阅读理解问答的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。