從會議、醫患溝通和客服對話三大場景看對話文字摘要技術

語言: CN / TW / HK

©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

這篇文章提出了一個 H ierarchical M eeting summarization Net work(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 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是 最新論文解讀 ,也可以是 學術熱點剖析科研心得競賽經驗講解 等。我們的目的只有一個,讓知識真正流動起來。

:memo:  稿件基本要求:

• 文章確係個人 原創作品 ,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標註 

• 稿件建議以  markdown 格式撰寫,文中配圖以附件形式傳送,要求圖片清晰,無版權問題

• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供 業內具有競爭力稿酬 ,具體依據文章閱讀量和文章質量階梯制結算

:mailbox_with_mail:  投稿通道:

• 投稿郵箱: [email protected] 

• 來稿請備註即時聯絡方式(微信),以便我們在稿件選用的第一時間聯絡作者

• 您也可以直接新增小編微信( pwbot02 )快速投稿,備註:姓名-投稿

△長按新增PaperWeekly小編

:mag:

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

進入知乎首頁搜尋 「PaperWeekly」

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

·