一種基于任務感知的報告自動生成方法及裝置與流程
1.本發明涉及醫學分析技術領域,尤其涉及的是一種基于任務感知的報告自動生成方法及裝置。
背景技術:
2.醫學圖像是反映解剖區域內部結構的圖像,常被用于醫學分析。在此基礎上撰寫的醫學報告,能夠進一步用于疾病診斷或者醫學研究。但由于有經驗的醫生數量的缺少以及就診者數量的增加,一個醫生會面臨大量的影像閱讀和報告書寫工作,勢必會造成工作質量的下降。因此通過計算機技術自動分析圖像并生成診斷報告,實現醫學圖像報告自動生成具有非常重要的意義。
3.隨著深度學習技術的快速發展以及相應大型的醫學圖像報告生成數據集的提出,醫學圖像字幕生成任務在近幾年受到了廣泛關注。大多數相關工作通常是將自然圖像字幕生成領域的方法轉移到醫學圖像報告生成任務上。這些方法基本采用了相似的框架,使用卷積神經網絡從圖像中提取視覺特征,并通過文本解碼器將視覺特征轉換為最終報告。與自然字幕生成類似,這些方法都直接將完整的報告作為了解碼器訓練的目標。早期的工作使用的文本解碼器是循環神經網絡,但該網絡存在難以對長文本建模的問題。而醫學圖像報告的長度通常遠大于自然圖像字幕。例如,在一般的圖像字幕數據集中,字幕文本的平均長度是10~15詞,而iu x-ray數據集中報告的平均長度約為30~40詞,最近提出的大型數據集mimic-cxr的報告長度則是50~60詞。因此,更多的方法則是選擇了分層長短時記憶網絡用于解碼。該網絡一方面用長短時記憶網絡代替循環神經網絡,緩解了長文本生成時信息損失的問題,另一方面逐句子生成的方式也降低了每次生成時處理的文本的長度,從而更好地實現了對醫學報告這種段落式文本的生成。但是,由于這種層次文本生成模型中缺乏上下文的連貫性,最終生成的段落中容易包含重復的句子。
4.因此,現有技術存在缺陷,有待改進與發展。
技術實現要素:
5.本發明要解決的技術問題在于,針對現有技術的上述缺陷,提供一種基于任務感知的報告自動生成方法及裝置,旨在解決現有技術中在自動生成報告時,生成的段落中容易包含重復的句子的問題。
6.本發明解決技術問題所采用的技術方案如下:
7.一種基于任務感知的報告自動生成方法,其中,包括:
8.將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;
9.對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;
10.將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏
狀態序列和分類標識序列;
11.將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。
12.在一種實現方式中,所述將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列,包括:
13.將原始報告輸入預先訓練的報告生成模型,利用基于卷積神經網絡的視覺提取器提取所述原始報告的圖像視覺特征,得到圖像視覺特征向量序列;
14.對所述圖像視覺特征向量序列中的各個圖像視覺特征向量進行線性投影處理,得到塊嵌入向量序列。
15.在一種實現方式中,將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列,包括:
16.將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中;
17.所述分類嵌入向量序列對應輸出分類標識,采用多層感知器對每個輸出的分類標識進行監督;
18.根據每個輸出的分類標識提取所述塊嵌入向量序列中的解剖結構信息,得到隱藏狀態序列和分類標識序列。
19.在一種實現方式中,將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告,包括:
20.將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到各個解碼器頭輸出的對應的解剖結構報告;
21.將各個解剖結構報告按照預設的拼接順序進行拼接,得到結構化報告。
22.在一種實現方式中,所述報告生成模型的訓練步驟包括:
23.獲取訓練數據集,所述訓練數據集中包括原始訓練報告;
24.對所述原始訓練報告進行預處理,得到結構化訓練報告,并將所述結構化訓練報告作為參考報告;
25.將所述原始訓練報告輸入初始報告生成模型中,對所述初始報告生成模型進行生成任務的訓練和分類任務的訓練,得到結構化生成報告;
26.當生成任務和分類任務的總損失函數達到平穩,訓練完成,得到已訓練的報告生成模型;
27.其中,所述初始報告生成模型為cnn-transformer模型。
28.在一種實現方式中,對所述原始訓練報告進行預處理,得到結構化訓練報告,并將所述結構化訓練報告作為參考報告,包括:
29.提取所述原始訓練報告中的報告關鍵詞;
30.獲取胸片知識圖譜,按照所述報告關鍵詞和所述胸片知識圖譜將不同的句子歸入到不同的解剖結構中,得到結構化訓練報告;
31.將所述結構化訓練報告作為參考報告。
32.在一種實現方式中,所述初始報告生成模型中包括基于卷積神經的視覺提取器和線性投影;將所述原始訓練報告輸入初始報告生成模型中,對所述初始報告生成模型進行生成任務的訓練和分類任務的訓練,得到結構化生成報告,包括:
33.利用基于卷積神經網絡的視覺提取器提取所述原始訓練報告中的圖像視覺特征,得到所述原始訓練報告對應的圖像視覺特征向量序列;
34.利用線性投影將所述原始訓練報告對應的圖像視覺特征向量序列中的各個圖像視覺特征向量的維度降低至512,得到所述原始訓練報告對應的塊嵌入向量序列;
35.對所述原始訓練報告中的各個解剖結構創建對應的分類嵌入向量,得到所述原始訓練報告對應的分類嵌入向量序列;
36.將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中,得到所述原始訓練報告的隱藏狀態序列和分類標識序列;
37.將所述原始訓練報告的隱藏狀態序列和分類標識序列輸入到多頭解碼器中,得到各個解碼器頭輸出的對應的解剖結構訓練報告;
38.將各個解剖結構訓練報告按照預設的拼接順序進行拼接,得到結構化生成報告。
39.在一種實現方式中,所述總損失函數的計算公式為:
40.其中,所述為生成任務的損失函數,所述為分類任務的損失函數,所述λ為用于調整生成任務與分類任務損失比例的超參;
41.所述生成任務的損失函數的計算公式為:
42.其中,所述m是解剖結構的個數,所述li是第i個解剖結構的參考報告的長度,所述r
ij
表示第i個解剖結構的參考報告中第j個單詞,所述y
ij
表示第i個解剖結構的結構化生成報告中第j個單詞;
43.所述分類任務的損失函數的計算公式為:
44.其中,所述gi為類別標簽,所述為pi為預測結果;
45.所述類別標簽包括每個解剖結構的正常標簽和異常標簽。
46.在一種實現方式中,所述拼接順序的獲取步驟包括:
47.獲取所述訓練數據集中原始訓練報告的語句序列集合s={s1,s2,
…
,sn},其中,所述n是所述訓練數據集中的原始訓練報告的數量;
48.構建所有可能的語句序列集合t={t1,t2,
…
,tm},其中,所述m是可能的語句序列數量;
49.將所有可能的語句序列與所述訓練數據集對應的語句序列進行比較,得到所有可能的語句序列與所述訓練數據集的語句序列之間的整體語句次序的相似程度;
50.根據所述相似程度得到所述拼接順序。
51.在一種實現方式中,將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中,得到所述原始訓練報告的隱藏狀態序列和分類標識序列,包括:
52.將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中;
53.所述原始訓練報告的分類嵌入向量序列對應輸出分類標識,采用多層感知器對每個輸出的分類標識進行監督;
54.根據每個輸出的分類標識提取所述原始訓練報告的塊嵌入向量序列中的解剖結構信息,得到所述原始訓練報告的隱藏狀態序列和分類標識序列。
55.本發明還提供一種基于任務感知的報告自動生成裝置,其中,包括:
56.輸入模塊,用于將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;
57.創建模塊,用于對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;
58.編碼模塊,用于將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;
59.報告生成模塊,用于將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。
60.本發明還提供一種終端,其中,包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的基于任務感知的報告自動生成程序,所述基于任務感知的報告自動生成程序被所述處理器執行時實現如上所述的基于任務感知的報告自動生成方法的步驟。
61.本發明還提供一種計算機可讀存儲介質,其中,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序能夠被執行以用于實現如上所述的基于任務感知的報告自動生成方法的步驟。
62.本發明所提供的一種基于任務感知的報告自動生成方法及裝置,所述方法包括:將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。本發明利用報告生成模型中的多頭解碼器對原始報告中的各個解剖結構進行拆分,每個解碼器頭都只關注對應解剖結構的報告生成,避免了生成的段落中出現重復的句子,也使得每個解碼器頭需要處理的文本長度大大下降,降低了長文本建模的難度,提高了報告生成的準確性。
附圖說明
63.圖1是本發明中基于任務感知的報告自動生成方法較佳實施例的流程圖。
64.圖2是任務蒸餾模塊和任務感知的報告生成模塊的原理框圖。
65.圖3是分類標識模塊的原理框圖。
66.圖4是本發明中基于任務感知的報告自動生成裝置的較佳實施例的功能原理框圖。
67.圖5是本發明中終端的功能原理框圖。
具體實施方式
68.為使本發明的目的、技術方案及優點更加清楚、明確,以下參照附圖并舉實施例對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
69.隨著深度學習技術的快速發展以及相應大型的醫學圖像報告生成數據集的提出,醫學圖像字幕生成任務在近幾年收到了廣泛關注。大多數相關工作通常是從將自然圖像字幕生成領域的方法轉移到醫學圖像報告生成任務上。這些方法基本采用了相似的框架,使用卷積神經網絡從圖像中提取視覺特征,并通過文本解碼器將視覺特征轉換為最終報告。與自然字幕生成類似,這些方法都直接將完整的報告作為了解碼器訓練的目標。早期的工作使用的文本解碼器是循環神經網絡,但該網絡存在難以對長文本建模的問題。而醫學圖像報告的長度通常遠大于自然圖像字幕。例如,在一般的圖像字幕數據集中,字幕文本的平均長度是10~15詞,而iu x-ray數據集中報告的平均長度約為30~40詞,最近提出的大型數據集mimic-cxr的報告長度則是50~60詞。因此,更多的方法則是選擇了分層長短時記憶網絡用于解碼。該網絡一方面用長短時記憶網絡代替循環神經網絡,緩解了長文本生成時信息損失的問題,另一方面逐句子生成的方式也降低了每次生成時處理的文本的長度,從而更好地實現了對醫學報告這種段落式文本的生成。但由于這種層次文本生成模型中缺乏上下文的連貫性,最終生成的段落中容易包含重復的句子。
70.最近的一些研究則利用transformer模型來解決醫學圖像報告因文本長度所導致的難以生成的問題。
71.盡管在利用更有效的模型后,能夠較好的解決長文本建模困難的問題,但這些研究都忽略了醫學報告生成與自然圖像字幕任務之間的本質區別。實際上,醫學報告比自然圖像字幕更有條理,說明醫學圖像報告生成是任務感知(task-aware)問題。具體而言,相同身體部位和模態的醫學圖像應該從相同的方面(通常基于解剖結構)進行描述,例如,胸部x射線圖像通常從心、胸、骨、肺、氣腔、動脈和外部設備等方面對圖像進行描述。此外,與自然圖像字幕主要是對圖像中的感興趣區域進行描述不同,醫學圖像報告會盡可能的包含醫學圖像上所有的信息,但表中的報告也能夠觀察到內容不完整的特點,這導致在這樣的數據集上直接訓練的模型可能會忽略某些結構的描述,從而生成內容不完整的報告。這有可能會忽略一些異常的結構,從而影響臨床實踐中的可用性。現有數據集的報告上,不同結構之間的順序也不相同,這是不同醫生書寫習慣不同導致的。盡管在實際中,診斷報告中的語句次序并不會改變報告反映的信息,但是將這些書寫規則不相同的報告直接用于網絡訓練時,必然會增加完整報告生成網絡對于文本信息的理解難度。此外,這樣訓練得到的網絡所生成的報告的可讀性也相對較差。
72.本實施例提出了一種基于任務感知的結構化報告生成方法,用于生成診斷準確的報告。本方法通過對完整報告按結構進行分解,并分別生成不同解剖結構的描述,降低了任務的難度。此外,本算法通過引入對解剖結構是否存在異常的預測,構建了一個多任務學習模型,進一步提高了生成報告的質量。
73.請參見圖1,圖1是本發明中基于任務感知的報告自動生成方法的流程圖。如圖1所示,本發明實施例所述的基于任務感知的報告自動生成方法包括如下步驟:
74.步驟s100、將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列。
75.具體地,所述原始報告中包括圖像及簡要文字描述,本實施例利用預先訓練的報告生成模型,利用嵌入向量生成器將圖像中的特征轉換為塊嵌入向量序列。
76.在一種實現方式中,所述步驟s100具體包括:
77.步驟s110、將原始報告輸入預先訓練的報告生成模型,利用基于卷積神經網絡的視覺提取器提取所述原始報告的圖像視覺特征,得到圖像視覺特征向量序列;
78.步驟s120、對所述圖像視覺特征向量序列中的各個圖像視覺特征向量進行線性投影處理,得到塊嵌入向量序列。
79.具體地,嵌入向量生成器由基于卷積神經網絡的視覺提取器fv和一個可訓練的線性投影f
p
構成,對于輸入的原始報告(如放射性圖像x),其計算過程為:{e1,e2,
…
,en}=f
p
(fv(x))。基于卷積神經的視覺提取器可以為resnet-101模型。在本算法框架中,卷積神經網絡最后的全連接層被移除,同時將最后一層卷積層輸出的特征圖通過自適應平均池化,得到固定大小為7
×7×
2048的輸出,并將其視為長度為49,維度是2048的圖像視覺特征向量序列,每個向量代表了圖像某一區域的視覺信息。隨后,線性投影將各個圖像視覺特征向量的維度降低至512,最終得到塊嵌入向量序列{e1,e2,
…
,en}。
80.如圖1所示,所述基于任務感知的報告自動生成方法還包括如下步驟:
81.步驟s200、對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列。
82.具體地,對不同的結構各自創建一個分類嵌入向量,其維度與塊嵌入向量相同。分類嵌入向量是可學習的,并與塊嵌入向量序列一起輸入到transformer模型的編碼器中。
83.在一種實施例中,所述步驟s200具體包括:
84.步驟s210、將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中;
85.步驟s220、所述分類嵌入向量序列對應輸出分類標識,采用多層感知器對每個輸出的分類標識進行監督;
86.步驟s230、根據每個輸出的分類標識提取所述塊嵌入向量序列中的解剖結構信息,得到隱藏狀態序列和分類標識序列。
87.也就是說,本實施例在每個輸出的分類標識之后添加了多層感知器進行監督,使其能夠提取塊嵌入向量中的有關特定結構的信息。
88.如圖1所示,所述基于任務感知的報告自動生成方法還包括如下步驟:
89.步驟s300、將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列。
90.具體地,任務感知的多頭transformer由一個共享的編碼器和多個單獨的解碼器組成。其中,共享編碼器由標準transformer編碼器塊堆疊,用于將塊嵌入向量轉換為隱藏狀態。共享編碼器的作用是利用transformer捕獲全局信息的能力,提取到更有效的視覺特征信息。
91.如圖1所示,所述基于任務感知的報告自動生成方法還包括如下步驟:
92.步驟s400、將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。
93.具體地,多頭解碼器的每個頭只負責生成特定解剖結構的描述,這一方面使得描述較少的結構不被忽視,另一方面也降低了生成模型對復雜報告理解的難度。
94.在一種實現方式中,所述步驟s400具體包括:
95.步驟s410、將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到
各個解碼器頭輸出的對應的解剖結構報告;
96.步驟s420、將各個解剖結構報告按照預設的拼接順序進行拼接,得到結構化報告。
97.具體地,每個解碼器頭都是transformer解碼器結構的修改版本,使用關系記憶和由記憶驅動的條件層來有效模擬醫生的臨床寫作并生成專業描述,得到對應的解剖結構報告。
98.在訓練過程中,本發明提出了任務感知的報告生成算法框架。首先根據先驗知識,將完整報告分解為對多個解剖結構的描述,將分解后的報告稱為結構化報告。與以往直接生成完整報告的方式不同,任務感知的報告生成算法通過不同的解碼器分別對任務感知報告中不同結構的描述進行生成。在這樣的框架中,一方面每個解碼器需要處理的文本長度大大下降,降低了長文本建模的難度,另一方面,每個解碼器都只關注特定結構的報告生成,因此訓練時能夠關注到圖像中相應位置的信息,減少多余信息的干擾。此外,本發明提出的任務感知報告生成方式由于采用了分別生成不同結構的報告的方式,因此不存在結構之間順序的影響,一定程度上也提高了生成報告的準確性。
99.在任務感知的報告生成算法框架的基礎上,本發明構建了一個分類任務,通過先對不同結構是否存在異常進行判斷,再根據這一語義信息并結合圖像信息去分別生成,進一步降低了醫學圖像報告生成任務的建模難度。
100.在一種實現方式中,所述報告生成模型的訓練步驟包括:
101.步驟s10、獲取訓練數據集,所述訓練數據集中包括原始訓練報告;
102.步驟s20、對所述原始訓練報告進行預處理,得到結構化訓練報告,并將所述結構化訓練報告作為參考報告;
103.步驟s30、將所述原始訓練報告輸入初始報告生成模型中,對所述初始報告生成模型進行生成任務的訓練和分類任務的訓練,得到結構化生成報告;
104.步驟s40、當生成任務和分類任務的總損失函數達到平穩,訓練完成,得到已訓練的報告生成模型。
105.其中,所述初始報告生成模型為cnn-transformer模型。
106.具體地,本實施例建立在基本的cnn-transformer架構上,可以將本發明的模型框架分為任務蒸餾模塊、任務感知的報告生成模塊,和分類標識模塊三個部分,如圖2和圖3所示。任務蒸餾模塊作用于訓練數據集中的原始訓練報告上,用于將原始報告拆分成不同部分的報告;報告生成模塊用于生成不同解剖結構的報告;分類標識模塊則利用不同部位的信息,輔助報告生成。
107.在一種實施例中,所述步驟s20具體包括:
108.步驟s21、提取所述原始訓練報告中的報告關鍵詞;
109.步驟s22、獲取胸片知識圖譜,按照所述報告關鍵詞和所述胸片知識圖譜將不同的句子歸入到不同的解剖結構中,得到結構化訓練報告;
110.步驟s23、將所述結構化訓練報告作為參考報告。
111.具體地,由于本實施例的核心思路是分別生成不同解剖結構的報告,而原始的報告是完整的一段話,因此,需要先對訓練數據集中的原始訓練報告進行分解處理,得到結構級別的報告。任務蒸餾模塊通過對報告關鍵詞的提取,并根據胸片知識圖譜將不同的句子歸入到不同結構中,從而得到結構化訓練報告。
112.在一種實現方式中,所述初始報告生成模型中包括基于卷積神經的視覺提取器和線性投影。所述步驟s30具體包括:
113.步驟s31、利用基于卷積神經網絡的視覺提取器提取所述原始訓練報告中的圖像視覺特征,得到所述原始訓練報告對應的圖像視覺特征向量序列;
114.步驟s32、利用線性投影將所述原始訓練報告對應的圖像視覺特征向量序列中的各個圖像視覺特征向量的維度降低至512,得到所述原始訓練報告對應的塊嵌入向量序列;
115.步驟s33、對所述原始訓練報告中的各個解剖結構創建對應的分類嵌入向量,得到所述原始訓練報告對應的分類嵌入向量序列;
116.步驟s34、將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中,得到所述原始訓練報告的隱藏狀態序列和分類標識序列;
117.步驟s35、將所述原始訓練報告的隱藏狀態序列和分類標識序列輸入到多頭解碼器中,得到各個解碼器頭輸出的對應的解剖結構訓練報告;
118.步驟s36、將各個解剖結構訓練報告按照預設的拼接順序進行拼接,得到結構化生成報告。
119.所述原始訓練報告中包括原始訓練圖像,如胸片圖像,原始訓練圖像會首先輸入到任務感知的報告生成模塊中。與一般的編碼器解碼器結構類似,任務感知的報告生成模塊中的編碼器部分用于提取圖像的視覺表征,而解碼器部分由多個解碼器頭組成,分別利用圖像的視覺表征生成不同結構的報告。這樣,一方面每個解碼器需要處理的文本長度大大下降,降低了長文本建模的難度,另一方面,每個解碼器都只關注特定結構的報告生成,因此,訓練時能夠關注到圖像中相應位置的信息,減少多余信息的干擾。
120.具體地,報告生成模塊由一個嵌入向量生成器模塊和一個任務感知的多頭transformer網絡組成,其中每個頭對應于特定結構的描述。嵌入向量生成器模塊由基于卷積神經網絡的視覺提取器fv和一個可訓練的線性投影f
p
構成,對于輸入的原始訓練報告(如放射性圖像x),其計算過程為:{e1,e2,
…
,en}=f
p
(fv(x))。
121.本實施例中選擇resnet-101模型用于提取視覺特征,即,基于卷積神經的視覺提取器可以為resnet-101模型。在本算法框架中,卷積神經網絡最后的全連接層被移除,同時將最后一層卷積層輸出的特征圖通過自適應平均池化,得到固定大小為7
×7×
2048的輸出,并將其視為長度為49,維度是2048的圖像視覺特征向量序列,每個向量代表了圖像某一區域的視覺信息。隨后,線性投影將各個圖像視覺特征向量的維度降低至512,最終得到塊嵌入向量序列{e1,e2,
…
,en},該序列將作為后續任務感知的多頭transformer網絡的源輸入。
122.任務感知的多頭transformer由一個共享的編碼器和多個單獨的解碼器組成。其中,共享編碼器由標準transformer編碼器塊堆疊,用于將塊嵌入向量轉換為隱藏狀態,這個過程可以表示為:{h1,h2,
…
,hn}=fe({e1,e2,
…
,en});其中,fe代表共享編碼器,{h1,h2,
…
,hn}表示隱藏狀態序列。共享編碼器的作用是利用transformer捕獲全局信息的能力,提取到更有效的視覺特征信息。
123.與現有文獻一次性生成整體報告不同,多頭解碼器的每個頭只負責生成特定解剖結構的描述,這一方面使得描述較少的結構不被忽視,另一方面也降低了生成模型對復雜報告理解的難度。具體來說,每個頭都是transformer解碼器結構的修改版本,其中,使用關
系記憶和由記憶驅動的條件層來有效模擬醫生的臨床寫作并生成專業描述。任務特定的描述y={y1,y2,
…
,ym}的生成可以表示為:其中表示第i個頭的transformer解碼器。
124.對于分類標識模塊,醫生在書寫放射學報告時,通常會采取先判斷再書寫的方式,即先查看當前區域是否存在異常,再去書寫相應正常或者異常的報告。受到這一機制啟發,多種分類與生成相結合的多任務模型被提出并用于醫學報告生成。目前已證明,這樣的多任務模型在醫學報告生成任務中是有效的,能夠生成診斷更加準確的報告。
125.此外,現有的方法通常將卷積神經網絡提取的全局圖像特征向量輸入到不同的多層感知器(multi-layer perceptron,mlp)中,實現多個二分類任務。這樣的方式并沒有考慮到不同的分類任務所需要的圖像信息是不同的。例如對骨骼疾病的診斷是不需要心臟部位的信息的。此外,單純的卷積神經網絡無法建立長范圍的建模。對此本發明的分類標識模塊的實現建立在transformer模型的編碼器端,同時利用了卷積神經網絡歸納偏置的特性以及transformer模型的全局歸納建模能力,其結構如圖3所示。
126.首先,對不同的結構各自創建一個分類嵌入向量,其維度與塊嵌入向量相同。分類嵌入向量是可學習的,并與塊嵌入向量序列一起輸入到transformer模型的編碼器中,其計算過程如下:
127.{h1,h2,
…
,hn},{t1,t2,
…
,tm}=fe({e1,e2,
…
,en},{c1,c2,
…
,cm});
128.其中,{c1,c2,
…
,cm}表示分類嵌入向量序列,{t1,t2,
…
,tm}表示輸出的分類標識(classification token)序列。
129.分類標識序列與隱藏狀態序列共同輸入到解碼器部分,為異常區域提供高級特征,報告生成過程可以修改為:
130.{h1,h2,
…
,hn},{t1,t2,
…
,tm}=fd({e1,e2,
…
,en},{c1,c2,
…
,cm});其中,fd表示解碼器。
131.在一種實現方式中,所述總損失函數的計算公式為:其中,所述為生成任務的損失函數,所述為分類任務的損失函數,所述λ為用于調整生成任務與分類任務損失比例的超參。
132.生成任務的損失函數是不同解剖結構生成的交叉熵損失函數的疊加,所述生成任務的損失函數的計算公式為:其中,所述m是解剖結構的個數,所述li是第i個解剖結構的參考報告的長度,所述r
ij
表示第i個解剖結構的參考報告中第j個單詞,所述y
ij
表示第i個解剖結構的結構化生成報告中第j個單詞。
133.分類任務的損失函數則是多個二分類任務的損失函數的疊加,所述分類任務的損失函數的計算公式為:其中,所述gi為類別標簽,所述為pi為預測結果;所述類別標簽包括每個解剖結構的正常標簽和異常標簽。
134.具體地,為了給分類部分的訓練提供相應標簽,本實施例提取了常見疾病的標簽,并結合常見無異常癥狀的關鍵詞,得到了每個解剖結構的正常標簽和異常標簽。為了模擬
醫生先診斷后撰寫報告的過程,本實施例提出了分類標識模塊用于對不同結構是否存在異常進行監督,并輔助報告生成模塊生成診斷更準確的報告。
135.在一種實施例中,所述拼接順序的獲取步驟包括:
136.獲取所述訓練數據集中原始訓練報告的語句序列集合s={s1,s2,
…
,sn},其中,所述n是所述訓練數據集中的原始訓練報告的數量;
137.構建所有可能的語句序列集合t={t1,t2,
…
,tm},其中,所述m是可能的語句序列數量;
138.將所有可能的語句序列與所述訓練數據集對應的語句序列進行比較,得到所有可能的語句序列與所述訓練數據集的語句序列之間的整體語句次序的相似程度;
139.根據所述相似程度得到所述拼接順序。
140.具體地,本實施例最終生成的報告是結構級別的,為了方便與參考報告計算相應指標并同其他算法進行比較,本實施例對不同結構的報告按一定順序進行拼接得到最終的報告。盡管實際中診斷報告的語句次序不會對報告的整體語義產生影響,但評價指標中的rouge-l是基于參考報告和生成報告之間的最長公共子序列計算的,會受到語句次序的影響。對此,本實施例簡單設計了一種基于最長公共子序列的方法,用于盡可能到一種合適的語句次序。
141.首先得到訓練集中所有報告的語句序列集合s={s1,s2,
…
,sn},其中,n是所述訓練數據集中的原始訓練報告的數量。然后構建所有可能的語句序列集合t={t1,t2,
…
,tm},其中,m是可能的語句序列數量,并且m=m!。對于任意一種可能的語句序列,通過將其與訓練集中所有的語句序列進行比較,從而得到其與訓練集整體語句次序的相似程度。
142.所述相似程度的計算公式為:lcs函數用于求出兩個序列之間的最長公共子序列的長度。通過這樣的方式,本實施例能夠一種與訓練集整體語句次序最接近的語句序列。最終,t
pos
就是本實施例最終采用的拼接順序。
143.在一種實現方式中,所述步驟s34具體包括:將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中;所述原始訓練報告的分類嵌入向量序列對應輸出分類標識,采用多層感知器對每個輸出的分類標識進行監督;根據每個輸出的分類標識提取所述原始訓練報告的塊嵌入向量序列中的解剖結構信息,得到所述原始訓練報告的隱藏狀態序列和分類標識序列。也就是說,本實施例在每個輸出的分類標識之后添加了多層感知器進行監督,使其能夠提取塊嵌入向量中的有關特定結構的信息,該過程表示為:pi=mlpi(ti),i∈1,2,
…
,m;其中,mlp代表多層感知器,并且不同的結構采用了單獨的多層感知器。pi是最后生成的二分類概率向量,即分類標識序列。
144.相比之前的方法,本實施例對監督目標進行了改進。現有的文獻主要利用了兩種監督信息,一種是對疾病標簽的預測,另一種是對報告中提取的關鍵詞進行監督。疾病標簽是通過一種名叫chexpert labeler的工具提取的,包含了12種胸片圖像上常見的疾病,得到疾病標簽和無異常標簽。對于疾病標簽的準確預測通常是比較困難的,同時由于報告數據集的不規范問題,網絡很難將疾病標簽與報告內容對應起來。而對于關鍵詞的監督則存下以下問題:從報告中提取出的關鍵詞主要包括結構、疾病類型以及相應描述詞,其中的結構關鍵詞例如“volume”等,通常會在多數報告中出現,因此對此進行監督并不能夠改善生
成報告的質量。而相應描述詞則包括“normal”、“left”等,網絡無法根據這樣的關鍵詞判斷出到底這些描述詞描述的是哪個結構。而本發明算法則是對不同結構是否存在異常進行了監督,相對于直接預測疾病而言,這個判斷更加簡單,也能夠使網絡關注到相應的圖像區域。同時,對不同結構是否存在異常的監督更加契合本發明算法對不同結構分別生成的方式,其分類得出的信息能夠直接指導生成網絡。
145.進一步地,如圖4所示,基于上述基于任務感知的報告自動生成方法,本發明還相應提供了一種基于任務感知的報告自動生成裝置,包括:
146.輸入模塊100,用于將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;
147.創建模塊200,用于對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;
148.編碼模塊300,用于將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;
149.報告生成模塊400,用于將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。
150.如圖5所示,本發明還提供一種終端,包括:存儲器20、處理器10及存儲在所述存儲器20上并可在所述處理器10上運行的基于任務感知的報告自動生成程序30,所述基于任務感知的報告自動生成程序30被所述處理器10執行時實現如上所述的基于任務感知的報告自動生成方法的步驟。
151.本發明還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序能夠被執行以用于實現如上所述的基于任務感知的報告自動生成方法的步驟。
152.綜上所述,本發明公開的一種基于任務感知的報告自動生成方法及裝置,所述方法包括:將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。本發明利用報告生成模型中的多頭解碼器對原始報告中的各個解剖結構進行拆分,每個解碼器頭都只關注對應解剖結構的報告生成,避免了生成的段落中出現重復的句子,也使得每個解碼器頭需要處理的文本長度大大下降,降低了長文本建模的難度,提高了報告生成的準確性。
153.應當理解的是,本發明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。
技術特征:
1.一種基于任務感知的報告自動生成方法,其特征在于,包括:將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。2.根據權利要求1所述的基于任務感知的報告自動生成方法,其特征在于,所述將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列,包括:將原始報告輸入預先訓練的報告生成模型,利用基于卷積神經網絡的視覺提取器提取所述原始報告的圖像視覺特征,得到圖像視覺特征向量序列;對所述圖像視覺特征向量序列中的各個圖像視覺特征向量進行線性投影處理,得到塊嵌入向量序列。3.根據權利要求1所述的基于任務感知的報告自動生成方法,其特征在于,將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列,包括:將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中;所述分類嵌入向量序列對應輸出分類標識,采用多層感知器對每個輸出的分類標識進行監督;根據每個輸出的分類標識提取所述塊嵌入向量序列中的解剖結構信息,得到隱藏狀態序列和分類標識序列。4.根據權利要求1所述的基于任務感知的報告自動生成方法,其特征在于,將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告,包括:將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到各個解碼器頭輸出的對應的解剖結構報告;將各個解剖結構報告按照預設的拼接順序進行拼接,得到結構化報告。5.根據權利要求1所述的基于任務感知的報告自動生成方法,其特征在于,所述報告生成模型的訓練步驟包括:獲取訓練數據集,所述訓練數據集中包括原始訓練報告;對所述原始訓練報告進行預處理,得到結構化訓練報告,并將所述結構化訓練報告作為參考報告;將所述原始訓練報告輸入初始報告生成模型中,對所述初始報告生成模型進行生成任務的訓練和分類任務的訓練,得到結構化生成報告;當生成任務和分類任務的總損失函數達到平穩,訓練完成,得到已訓練的報告生成模型;其中,所述初始報告生成模型為cnn-transformer模型。6.根據權利要求5所述的基于任務感知的報告自動生成方法,其特征在于,對所述原始
訓練報告進行預處理,得到結構化訓練報告,并將所述結構化訓練報告作為參考報告,包括:提取所述原始訓練報告中的報告關鍵詞;獲取胸片知識圖譜,按照所述報告關鍵詞和所述胸片知識圖譜將不同的句子歸入到不同的解剖結構中,得到結構化訓練報告;將所述結構化訓練報告作為參考報告。7.根據權利要求5所述的基于任務感知的報告自動生成方法,其特征在于,所述初始報告生成模型中包括基于卷積神經的視覺提取器和線性投影;將所述原始訓練報告輸入初始報告生成模型中,對所述初始報告生成模型進行生成任務的訓練和分類任務的訓練,得到結構化生成報告,包括:利用基于卷積神經網絡的視覺提取器提取所述原始訓練報告中的圖像視覺特征,得到所述原始訓練報告對應的圖像視覺特征向量序列;利用線性投影將所述原始訓練報告對應的圖像視覺特征向量序列中的各個圖像視覺特征向量的維度降低至512,得到所述原始訓練報告對應的塊嵌入向量序列;對所述原始訓練報告中的各個解剖結構創建對應的分類嵌入向量,得到所述原始訓練報告對應的分類嵌入向量序列;將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中,得到所述原始訓練報告的隱藏狀態序列和分類標識序列;將所述原始訓練報告的隱藏狀態序列和分類標識序列輸入到多頭解碼器中,得到各個解碼器頭輸出的對應的解剖結構訓練報告;將各個解剖結構訓練報告按照預設的拼接順序進行拼接,得到結構化生成報告。8.根據權利要求5所述的基于任務感知的報告自動生成方法,其特征在于,所述總損失函數的計算公式為:其中,所述為生成任務的損失函數,所述為分類任務的損失函數,所述λ為用于調整生成任務與分類任務損失比例的超參;所述生成任務的損失函數的計算公式為:其中,所述m是解剖結構的個數,所述l
i
是第i個解剖結構的參考報告的長度,所述r
ij
表示第i個解剖結構的參考報告中第j個單詞,所述y
ij
表示第i個解剖結構的結構化生成報告中第j個單詞;所述分類任務的損失函數的計算公式為:其中,所述g
i
為類別標簽,所述為p
i
為預測結果;所述類別標簽包括每個解剖結構的正常標簽和異常標簽。9.根據權利要求7所述的基于任務感知的報告自動生成方法,其特征在于,所述拼接順序的獲取步驟包括:獲取所述訓練數據集中原始訓練報告的語句序列集合s={s1,s2,
…
,s
n
},其中,所述n是所述訓練數據集中的原始訓練報告的數量;
構建所有可能的語句序列集合t={t1,t2,
…
,t
m
},其中,所述m是可能的語句序列數量;將所有可能的語句序列與所述訓練數據集對應的語句序列進行比較,得到所有可能的語句序列與所述訓練數據集的語句序列之間的整體語句次序的相似程度;根據所述相似程度得到所述拼接順序。10.根據權利要求9所述的基于任務感知的報告自動生成方法,其特征在于,將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中,得到所述原始訓練報告的隱藏狀態序列和分類標識序列,包括:將所述原始訓練報告的塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中;所述原始訓練報告的分類嵌入向量序列對應輸出分類標識,采用多層感知器對每個輸出的分類標識進行監督;根據每個輸出的分類標識提取所述原始訓練報告的塊嵌入向量序列中的解剖結構信息,得到所述原始訓練報告的隱藏狀態序列和分類標識序列。11.一種基于任務感知的報告自動生成裝置,其特征在于,包括:輸入模塊,用于將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;創建模塊,用于對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;編碼模塊,用于將所述塊嵌入向量序列和所述分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;報告生成模塊,用于將所述隱藏狀態序列和所述分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。12.一種終端,其特征在于,包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的基于任務感知的報告自動生成程序,所述基于任務感知的報告自動生成程序被所述處理器執行時實現如權利要求1~10任意一項所述的基于任務感知的報告自動生成方法的步驟。13.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序能夠被執行以用于實現如權利要求1~10任意一項所述的基于任務感知的報告自動生成方法的步驟。
技術總結
本發明所提供的一種基于任務感知的報告自動生成方法及裝置,方法包括:將原始報告輸入預先訓練的報告生成模型,利用嵌入向量生成器生成塊嵌入向量序列;對原始報告中的各個解剖結構創建對應的分類嵌入向量,得到分類嵌入向量序列;將塊嵌入向量序列和分類嵌入向量序列輸入到共享編碼器中,得到隱藏狀態序列和分類標識序列;將隱藏狀態序列和分類標識序列輸入到多頭解碼器中,得到拆分為各個解剖結構的結構化報告。本發明利用報告生成模型中的多頭解碼器對原始報告中的各個解剖結構進行拆分,每個解碼器頭都只關注對應解剖結構的報告生成,避免了生成的段落中出現重復的句子,也降低了長文本建模的難度,提高了報告生成的準確性。性。性。
