谷歌開源ActiveQA,教會AI會「問」更會「答」

天然語言理解是谷歌人工智能研究的一個重要且持續關注的領域,並已應用於機器翻譯、句法和語義分析等。重要的是,會話技術對直接回答用戶問題的能力要求愈來愈高,谷歌致力於研究的領域之一,即是人類對話的基本組成部分——問答(QA)。git

因爲開源代碼是可重複研究的關鍵,谷歌發佈了一個用於主動問答(ActiveQA)的 TensorFlow 軟件包(https://github.com/google/active-qa) ,此項目使用強化學習來訓練 AI 代理進行問答。在谷歌的 ICLR 2018 論文 Ask the Right Questions: Active Question Reformulation with Reinforcement Learning (https://ai.google/research/pubs/pub46733)中首次引入這一律念,ActiveQA 使用天然語言與 QA 系統進行交互,以提供更優答案。github

主動問答算法

在傳統的 QA 中,監督學習技術與標記數據一般結合使用,以訓練響應任意輸入問題的系統。這種方法雖然有效,但缺少處理人類重組提問、進行多個搜索、評估和彙總回答等不肯定性的能力。受人類「提出正確問題」能力的啓發,ActiveQA 引入了一個反覆詢問 QA 系統的代理。如此,代理能夠屢次從新組成原始問題以找到最可能答案。谷歌稱這種方法是主動的,由於代理與 QA 系統進行動態交互,以提升返回答案的質量。網絡

例如,面對「特斯拉什麼時候出生?」這一問題,代理會以兩種不一樣的方式從新提出問題:「特斯拉的生日是何時」和「特斯拉出生於哪一年」,從系統中檢索這兩個問題的答案。綜合全部這些信息,它決定返回「1856 年 7 月 10 日」這一答案。app


圖片

ActiveQA 系統的特色是它可以學會提出能夠給出更好答案的問題。可是,因爲以一個原始問題和更優化的變體對組成的訓練數據並不容易得到,ActiveQA 使用強化學習,最大化獎勵積極行動,同時與環境互動。ide

學習過程在 ActiveQA 代理與 QA 系統交互時即開始進行;根據相應答案的質量來評估每一個從新造成問題的優劣,造成獎勵。若是是優質答案,學習算法將調整模型的參數,以提升再次產生相似答案的問題重構的可能性,反之亦然。學習

谷歌的論文中代表,經過提出更好的問題,能夠訓練這些代理的表現優於基礎 QA 系統,該系統經過提出更好的問題以提供重組問題的答案。此研究的另外一結論一樣引人注意,即 ActiveQA 代理能夠學習一種至關複雜的,可解釋的重組策略(強化學習中的策略)。此學習策略會使用你們耳熟能詳的信息檢索技術,例如 tf-idf 查詢術語從新加權,經過這一過程,能夠獲得比通用術語更多的加權信息性術語。優化

動手構建本身的 ActiveQA 系統google

谷歌發佈的 TensorFlow ActiveQA 包由三個主要組件組成,包括訓練和運行 ActiveQA 代理所需的全部代碼。人工智能

  • 通過預訓練的序列模型,它將問題做爲輸入並返回重組問題。此任務相似於機器翻譯中的英語 - 英語翻譯,初始模型可用於通常性釋義。谷歌經過重組 TensorFlow 神經機器翻譯教程代碼(https://github.com/tensorflow/nmt) 來實現它。此外,谷歌使用策略梯度方法調整代碼,以支持強化學習訓練。

  • 答案選擇模型。原始問題、重組和答案三個爲一組,答案選擇器使用卷積神經網絡爲其打分。選擇器使用預先訓練的、公開可用的單詞嵌入(GloVe https://nlp.stanford.edu/projects/glove/)。

  • 問答系統(環境)。爲此,谷歌使用一種流行的問答系統 BioF,此文有介紹(https://openreview.net/forum?id=HJ0UKP9ge&noteId=HJ0UKP9ge)。天然語言理解是谷歌人工智能研究的一個重要且持續關注的領域,並已應用於機器翻譯、句法和語義分析等。重要的是,會話技術對直接回答用戶問題的能力要求愈來愈高,谷歌致力於研究的領域之一,即是人類對話的基本組成部分——問答(QA)。

    因爲開源代碼是可重複研究的關鍵,谷歌發佈了一個用於主動問答(ActiveQA)的 TensorFlow 軟件包(https://github.com/google/active-qa) ,此項目使用強化學習來訓練 AI 代理進行問答。在谷歌的 ICLR 2018 論文 Ask the Right Questions: Active Question Reformulation with Reinforcement Learning (https://ai.google/research/pubs/pub46733)中首次引入這一律念,ActiveQA 使用天然語言與 QA 系統進行交互,以提供更優答案。

    主動問答

    在傳統的 QA 中,監督學習技術與標記數據一般結合使用,以訓練響應任意輸入問題的系統。這種方法雖然有效,但缺少處理人類重組提問、進行多個搜索、評估和彙總回答等不肯定性的能力。受人類「提出正確問題」能力的啓發,ActiveQA 引入了一個反覆詢問 QA 系統的代理。如此,代理能夠屢次從新組成原始問題以找到最可能答案。谷歌稱這種方法是主動的,由於代理與 QA 系統進行動態交互,以提升返回答案的質量。

    例如,面對「特斯拉什麼時候出生?」這一問題,代理會以兩種不一樣的方式從新提出問題:「特斯拉的生日是何時」和「特斯拉出生於哪一年」,從系統中檢索這兩個問題的答案。綜合全部這些信息,它決定返回「1856 年 7 月 10 日」這一答案。


    圖片

    ActiveQA 系統的特色是它可以學會提出能夠給出更好答案的問題。可是,因爲以一個原始問題和更優化的變體對組成的訓練數據並不容易得到,ActiveQA 使用強化學習,最大化獎勵積極行動,同時與環境互動。

    學習過程在 ActiveQA 代理與 QA 系統交互時即開始進行;根據相應答案的質量來評估每一個從新造成問題的優劣,造成獎勵。若是是優質答案,學習算法將調整模型的參數,以提升再次產生相似答案的問題重構的可能性,反之亦然。

    谷歌的論文中代表,經過提出更好的問題,能夠訓練這些代理的表現優於基礎 QA 系統,該系統經過提出更好的問題以提供重組問題的答案。此研究的另外一結論一樣引人注意,即 ActiveQA 代理能夠學習一種至關複雜的,可解釋的重組策略(強化學習中的策略)。此學習策略會使用你們耳熟能詳的信息檢索技術,例如 tf-idf 查詢術語從新加權,經過這一過程,能夠獲得比通用術語更多的加權信息性術語。

    動手構建本身的 ActiveQA 系統

    谷歌發佈的 TensorFlow ActiveQA 包由三個主要組件組成,包括訓練和運行 ActiveQA 代理所需的全部代碼。

    • 通過預訓練的序列模型,它將問題做爲輸入並返回重組問題。此任務相似於機器翻譯中的英語 - 英語翻譯,初始模型可用於通常性釋義。谷歌經過重組 TensorFlow 神經機器翻譯教程代碼(https://github.com/tensorflow/nmt) 來實現它。此外,谷歌使用策略梯度方法調整代碼,以支持強化學習訓練。

    • 答案選擇模型。原始問題、重組和答案三個爲一組,答案選擇器使用卷積神經網絡爲其打分。選擇器使用預先訓練的、公開可用的單詞嵌入(GloVe https://nlp.stanford.edu/projects/glove/)。

    • 問答系統(環境)。爲此,谷歌使用一種流行的問答系統 BioF,此文有介紹(https://openreview.net/forum?id=HJ0UKP9ge&noteId=HJ0UKP9ge)。

相關文章
相關標籤/搜索