从会议、医患沟通和客服对话三大场景看对话文本摘要技术
?PaperWeekly 原創 ·作者 | 海晨威
研究方向 | 自然語言處理
文本摘要是 NLP 領域一個重要的任務,它以凝練的語句去描述原始文本中的主要信息。文本的形式是多種多樣的,其中,對話文本是人們在不同交流場景下產生的交互式文本。提取對話中的主要信息,在實際應用中可以減少人理解的時間,也可以更好地輔助后續可能的任務。
本篇文章會探究對話文本的特點和對話摘要的實現,基于三個不同的對話場景(會議、醫患溝通、客服對話),分別介紹一篇有代表性的近期頂會 paper,并在最后總結不同對話文本特點對應的解決方案。
引言
當前,對文本摘要的研究主要集中在新聞領域,而從廣泛的對話文本(包括會議、訪談、辯論、醫患溝通、客服對話和日常聊天等)中提取關鍵信息,也有著重要的價值和應用場景。但直接把新聞摘要的模型和方法移植到對話文本上,并不能獲得期望的效果,因為對話文本有著它不一樣的特點:
1. 角色交互:對話文本是有兩個或多個角色參與的交互式文本,每個角色差異較大,有著各自的觀點和態度;
2. 文本超長:對話文本很長,一般都比新聞文本要長;
3. 話題跳轉:對話過程中,經常會有話題的跳轉;
4. 數據匱乏:相比新聞摘要數據集,公開的對話摘要數據集太少。
以上是對話文本的特點,其實也是對話摘要方案要解決的難點。不同對話場景下的側重點不一樣,下面會在會議、客服和醫患場景下,介紹對應論文如何去解決該場景下的難點問題。
會議場景
會議場景下的對話摘要,其實就是會議紀要,讓參會者和未參會者都可以快速回顧和了解會議的主要內容。
會議文本,一般都很長很長,角色眾多且不固定,又因為會議的私密性,公開數據集很少。下面這篇 EMNLP 2020 的文章 [1] ,在一個模型中,通過針對性的設計來嘗試解決這些問題。
論文標題:
A Hierarchical Network for Abstractive Meeting Summarization with Cross-Domain Pretraining
論文來源:
EMNLP2020
論文鏈接:
https://arxiv.org/abs/2004.02016
代碼鏈接:
https://github.com/microsoft/HMNet
這篇文章提出了一個 Hierarchical Meeting summarization Network(HMNet)模型,它的模型結構圖如下:
HMNet 是一個 Hierarchical Transformer,能夠融合整個對話文本和角色信息,端到端地生成會議摘要。
它包括兩個 Encoder,一個是 Word-level Encoder,輸入是一輪對話,指某一個角色連續說的話,并會在最前面加上一個 [BOS] 開始標志位,其在最后一層的輸出作為本輪對話的語義向量,這一點和 BERT 一樣;另一個是 Turn-level Encoder,它的輸入是每輪對話的語義向量,也就是上一個 Encoder [BOS] 位向量,并會在后面 concat 上這輪對話說話者的角色向量。
不同于一般的 Transformer Decoder, 在 HMNet ?Decoder 中,每一個 Block 塊會有兩個 Cross-Attention 層,先對 Word-level 信息做 Attention,再對 Turn-level 信息做 Attention,以此去融合整個對話的信息。
針對角色交互問題,HMNet 對每一個會議參與者都設計了一個角色向量(role vector),如產品經理和開發人員... 讓模型去感知不同角色的差異,文中的消融實驗也驗證了,角色向量的增加對摘要生成效果,有著不錯的提升。
針對文本超長問題,HMNet 對文本進行層次化的理解,先表征每輪對話,再理解整通對話,不需要做截斷,也不會因為 Attention ?O() 的復雜度而要求過高的內存資源。但因為不同輪次之間沒有 token 級別的 Attention ,token 表示上會不及完全的 Attention 。
HMNet 所有參數都是隨機初始化,并完全從 0 開始訓練的,因此對訓練數據量有著較大的要求,而公開的會議數據集并不多。論文通過將公開的新聞摘要數據構造成對話文本的形式,對 HMNet 進行預訓練,再在會議數據集上微調的方式,解決數據匱乏的問題。
具體構造方式是 concat M 篇新聞文章變成一個 M 人的會議文本,每篇文章中的每句話,作為當前角色的一輪,并將 M 篇文章的每輪隨機地交織在一起,模擬對話的交互結構,同時,將每篇文章的摘要合在一起作為最終的對話摘要。雖然這樣得到的文本不是真正的對話,但讓模型去學會摘要任務,去感知角色信息,能給后面基于會議數據的微調起到不錯的預熱效果。
HMNet 在一個模型中,采用層次結構、角色向量和跨領域預訓練的設計,針對性地解決了會議對話文本的多個難點問題。
客服場景
客服場景,一般是用戶和客服兩個人的對話,去解決一個或多個問題,會涉及話題的跳轉,還有很多無意義的口水句,客服對話摘要則需要去捕捉每一個話題的核心內容。
下面這篇 AAAI 2021 的文章 [2],從名字也可以看出來,主要是去解決客服對話過程中話題跳轉的問題。
論文標題:
Topic-Oriented Spoken Dialogue Summarization for Customer Service with Saliency-Aware Topic Modeling
論文來源:
AAAI 2021
論文鏈接:
https://arxiv.org/abs/2012.07311
代碼鏈接:
https://github.com/RowitZou/topic-dialog-summ
論文引入了神經主題模型去捕捉對話中的主題信息,如下圖(a)所示,基礎的神經主題模型本質是一個無監督的變分自編碼器,通過重構輸入,獲取中間的隱層向量作為主題向量,更多細節可以參考:基于深度學習的主題模型研究 [5]。
論文則改進了神經主題模型,如上圖(b)所示,使其能區分有價值主題和無意義主題。上面那條通路是去重構參考摘要中的詞 s,對應有價值主題;下面的通路是去重構對話內容中除開參考摘要的詞 d-s,對應無意義主題。這也使得改進后的神經主題模型變成了一個有監督的學習過程。
同時,論文將改進的神經主題模型分別應用到客服對話,用戶對話和完整對話,用不同的主題向量去表征不同角色的主題信息,并 concat 到一起去輔助抽取(utterance extractor)和生成(abstractive refiner)兩階段的對話摘要模型。
上圖中間部分的 Topic-Informed Attention Mechanism 是融合了主題信息的 Cross Attention,通過類似 Pointer Network 的方式讓模型學到對 query-based attention 和 topic-guided attention 的自動選擇,前者的 Q 是來自 Decoder 的輸入,后者的 Q 是來自 Topic Model 的主題向量,改造后的 Cross Attention 會替換原始 Transformer Decoder 中的 Cross Attention。
為了讓模型感知角色交互信息,抽取階段會在對話的每一句前面加上一個角色 token ,去表示這句話的說話者。為了讓兩階段模型能夠聯合訓練,使用了策略梯度的方法,這樣第一階段的抽取就不需要標注,但也會增加模型訓練的難度。
神經主題模型的加入,對于往往包含多個主題的客服對話摘要有很好的加成作用,讓模型能夠感知主題的跳轉,識別無意義的話術,并捕捉每一個主題的核心內容。
醫患場景
醫患場景下的對話摘要,和上面的會議與客服場景有一些差異,它不是去得到一個歸納性的摘要,而是有確定性的訴求,比如摘要中需要包括:用戶的病情,醫生的診斷等。
實際上與 query-based summarization 有點類似,只不過醫患場景下的 query 并不是多種多樣的,而是確定性的訴求。下面這篇 ACL 2021 的論文 [3] 就是用模塊化的摘要技術去生成醫患對話的不同訴求摘要。
論文標題:
Generating SOAP Notes from Doctor-Patient Conversations Using Modular Summarization Techniques
論文來源:
ACL 2021
論文鏈接:
https://arxiv.org/abs/2005.01795
代碼鏈接:
https://github.com/acmi-lab/modular-summarization
醫患對話摘要包括四個部分,SOAP:(Subjective information)患者報告的主觀信息;(Objective observations)客觀觀察,例如實驗室結果;(Assessments)醫生的評估和診斷;(Plan)未來的治療計劃,包括診斷測試、藥物治療。而且,這四部分還會被再細分為 15 個 subsection,但這個在論文中沒有具體描述。
論文中的醫患對話參考摘要,是 SOAP 四個部分的 concat,并且摘要中的每個句子都在對話中標注了它的支撐句,也就是這個句子的歸納來源。而基于如此的數據集結構,論文把醫患對話摘要任務分解成了先抽取后生成兩個子任務,并實驗了四種對話摘要方案,按照對生成模型的依賴排序如下:
CONV2NOTE:沒有抽取階段,直接端到端地從對話生成摘要。
EXT2NOTE:抽取模塊會預測出所有的關鍵句,但不區分關鍵句對應哪一個訴求,生成模塊基于抽取出的關鍵句產生完整摘要。
EXT2SEC:抽取模塊在預測關鍵句的同時,會分類到具體的訴求,生成模塊再用這部分關鍵句去生成對應訴求的摘要,有幾個摘要訴求,生成模塊就對應生成幾次。
CLUSTER2SENT:在 EXT2SEC 抽取模塊基礎上,還會對每個類別下的關鍵句再進行聚類分割,用聚類得到的每個片段,去生成摘要中的一句話。
下圖就是使用 CLUSTER2SENT 生成的一個醫患對話摘要示例:
圖中第二列的紫色框被抽取模塊分類為一個子訴求片段,第三列它又被聚類分割為了兩個子片段,每個片段對應生成摘要中的一句話。
這篇論文沒有提出新穎的模型,都是選用現有的模型去實現它描述的四種對話摘要方案。這四種對話摘要方案實際上可以看作是對現有非純抽取式摘要方法的一個歸類總結:
CONV2NOTE 是純生成式;EXT2NOTE 可以看作是過濾了無意義句之后的生成式;EXT2SEC 是在抽取關鍵句的同時,還對關鍵句做了分類,像一個序列標注任務,只不過標注的對象不是 token,而是 sentence;CLUSTER2SENT 則是 EXT2SEC 的更精細化版本。
可以看出,四種方案的抽取模塊越來越精細,論文實驗也驗證了效果的逐步提升。相比生成,抽取是更簡單,更可控,也更有解釋性的模塊。當抽取做的越好時,對生成的依賴就會越小,但這對標注的要求也會越高。
總結
相比于新聞文本,對話文本有著角色交互、文本超長、話題跳轉、數據匱乏等特點,在不同的對話場景下,對話摘要方案的側重點可能不一樣,但都會對上述(部分)對話摘要特點去做針對性的設計,下面嘗試做一個簡單的總結:
角色交互:在對話摘要任務中,讓模型去感知角色信息,分辨不同角色的內容,是一個很重要也很必要的設計。
一般原始對話文本中,就包含 “xx:” 這樣的角色標識,如果加到模型的輸入中,實則是對角色的一個軟編碼,不過有可能會在一定程度上影響句子的連貫性。而像上面客服場景介紹的論文,在每句話前面加上自定義角色 token,和 “xx:” 這樣的角色標識其實是基本相同的效果。
對每個角色設計對應角色向量,如上面會議場景介紹論文一樣,或在 BERT 中,使用 Segment Embedding 作為角色向量,都是一種硬編碼方式,不影響句子連貫性,但對角色的擴展性較差,適用于確定性角色場景,如客服場景。
文本超長:對話文本一般很長,其中也有較多無意義的話,如果把整通對話一次性輸入模型,對硬件資源和模型能力都是一個考驗。
常見的解決方案包括:規則方案,兩階段方案,兩層次方案,長輸入模型方案
規則方案可以通過正則、常見口語表述等人工規則去掉對話中的無意義話術,一般做為預處理層,無法完全解決文本超長的問題。
兩階段方案一般將任務分為抽取和生成兩階段,抽取模塊提取關鍵句,去除無意義句,然后交由生成模塊,抽取模塊完成的越精細,生成模塊的負擔就會越小。
兩層次方案是將長文本做層次化分解,可分為 word-level, sentence-level, turn-level 和 section-level 等,讓模型先做層次化理解,再做融合或直接取最上層的表征用于后續模塊。
長輸入模型方案是采用能接受長輸入的模型,如將 self attention 改造成 sliding window attention + global attention 的 Longformer,能接受長達 16K tokens 長度的輸入。
在來自 EMNLP2021 的文章 [4] 中,基于長文本對話摘要數據集,對上述后三個方案做了實驗對比,表明兩階段方案有最好的效果。
話題跳轉:這是對話類數據一個比較顯著的特點,而摘要一般需要去捕捉每一個主題的核心內容。
融合主題模型,可以較好的感知主題的跳轉,但對整個摘要模型的訓練和復雜度會是一個不小的負擔。
通過兩階段的方式,讓抽取模塊對文本進行分類和切割,可以在一定程度上將不同主題內容分割開,但一般需要對應數據上的標注。
數據匱乏:因為對話文本的私密性,開源的數據很少,在一定程度上限制了對話摘要技術的發展。
盡量避免模型從 0 開始訓練,充分利用預訓練模型,也可以利用相似領域的數據進行 post training。
跨域數據的構造,公開的新聞摘要數據集很多,改造使其匹配對話文本并用于預訓練,會是一個不錯的模型預熱方式。
對話摘要,是文本摘要的一個子方向,在近幾年受到了越來越廣泛的關注,在各大頂會中也有了不少相關的 paper,本文是對對話摘要的一個簡單概述,希望能給大家帶來一點啟發和幫助。
其實,哈工大 SCIR 實驗室已經有過對話摘要相關的概述分享 [6],它是大而全的,能讓你看到對話摘要的過去、現在和未來。而本文是從技術實現的角度,在三個典型對話場景中,各選擇了一篇有代表性的論文,介紹了其基于對話文本不同特點做的針對性的解決方案,并做了對應的方案總結。兩篇概述分享并不重復,會是一個互補的形式,共同食用效果更佳。
參考文獻
[1] EMNLP 2020: A Hierarchical Network for Abstractive Meeting Summarization with Cross-Domain Pretraining
[2] AAAI 2021:Topic-Oriented Spoken Dialogue Summarization for Customer Service with Saliency-Aware Topic Modeling
[3] ACL 2021:Generating SOAP Notes from Doctor-Patient Conversations Using Modular Summarization Techniques
[4] EMNLP 2021: An Exploratory Study on Long Dialogue Summarization: What Works and What's Next
[5] 基于深度學習的主題模型研究:http://cjc.ict.ac.cn/online/onlinepaper/hjj-2020514180351.pdf
[6] 賽爾筆記| 對話摘要簡述:https://zhuanlan.zhihu.com/p/380959946
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的从会议、医患沟通和客服对话三大场景看对话文本摘要技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一键启动怎么安装教程 快速学会一键启动的
- 下一篇: xp怎么用usb进pe xp如何通过US