Jing B, Xie P, Xing E. On the Automatic Generation of Medical Imaging Reports[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018: 2577-2586.
論文導讀
醫(yī)學圖像在診斷和治療中廣泛應(yīng)用滔灶。但對于一個經(jīng)驗不豐富的醫(yī)生贤旷,寫報告可能會出錯(error-prone)香椎,對于經(jīng)驗豐富的醫(yī)生費時費力。因此需要自動生成醫(yī)學圖像報告矮冬,輔助醫(yī)生診斷。生成報告有如下挑戰(zhàn):
- 報告組成成分多,有findings和tags厢汹。
- 圖像中的異常區(qū)域難以辨別课舍。
- 報告長塌西,包含多句話。
為了解決上述的難題布卡,本文提出了如下方法雨让,并在兩個數(shù)據(jù)集上進行驗證:
- 構(gòu)建了多任務(wù)學習框架(multi-task learning framework),同時對tag預(yù)測和finding生成忿等。
- co-attention 機制栖忠,定位異常區(qū)域。
- 提出了層級的LSTM,生成長段落庵寞。
模型結(jié)構(gòu)
一份醫(yī)學報告長這樣狸相,findings里面是對醫(yī)學影像的描述,tags是報告中的關(guān)鍵詞捐川。任務(wù)需要輸入圖像脓鹃,輸出tags分類結(jié)果,并輸出報告古沥。(impression里面是對病例的診斷)瘸右。
模型結(jié)構(gòu)如下圖:
1. Encoder
輸入圖像后,使用CNN提取patch岩齿,作為visual features太颤,分兩條路徑:
- 進入MLC(multi-label classification),對tags進行預(yù)測盹沈。tags再word-embedding得到
龄章,作為semantic features。
2.visual features和semantic features
進入co-attention乞封,至此完成encoding過程做裙。
2. Decoder
報告是多個句子的,論文采用了先生成每個句子的high-level topic vector肃晚,之后再根據(jù)這個vector生成相應(yīng)的句子锚贱。從co-attention中輸出的context vector首先輸入sentence LSTM,生成每一個句子所對應(yīng)的topic vector陷揪,代表了每一個句子的語義信息。之后topic vector再輸入到word LSTM里生成整個句子悍缠。
Tag Prediction
多標簽分類任務(wù),把visual feature提取出來后飞蚓,輸入到MLC中,生成L個tags的分布:
對于每一個tag趴拧,都生成一個預(yù)測值,之后作用一個指數(shù)函數(shù)著榴??個人感覺是想表達softmax脑又,并通過一個閾值確定類別1和0锐借,代表有這個tag和沒有這個tag。與多類別分類任務(wù)不同往衷,多類別任務(wù)是對最終的輸出向量整體作用softmax钞翔。本文使用了VGG19的卷積層提取visual features,最后兩層FC用作MLC席舍。之后布轿,分類出來的tags被embedding為semantic features用于topic generation。
Co-Attention
Visual Attention 可以定位目標(ObjectRecognition)来颤,也可以幫助生成圖像說明文字(ImageCaption)汰扭,但可能不會提供高階的語義信息。然而tags總是可以提供高階語義信息脚曾,因此使用co-attention 機制同時注意visual和semantic模態(tài)(modalities)东且。
這里co-attention會利用,
以及sentence LSTM的第
步的hidden state
計算下一時間步
的 joint contest vector
本讥。
首先使用單層feed-forward network計算visual feature 和semantic feature的權(quán)重:
這里的正比符號,相當于是在feature channel維度上面做了softmax鲁冯,最終的 visual and semantic context vector分別是前面的attention和:
最后把兩個向量拼接在一起拷沸,在使用fully connected layer得到最終的輸入到sentence LSTM中的joint context vector :
這個地方最終的是有joint的意思了。還有一種思路薯演,在計算權(quán)重那個地方就都輸入撞芍,相當于提前joint在一起。
Sentence LSTM
這一部分是包含Sentence LSTM跨扮,topic generator和stop control component序无。Sentence LSTM 是一個單層的LSTM,接收并通過topic generator生成topic vector
衡创,由stop control component決定是否繼續(xù)生成帝嗡。
Topic generator
接收Sentence LSTM的hidden state和joint context vector
,計算當前第
步的topic vector
璃氢。
Stop control
以前一步和當前步的hidden state 和
為輸入哟玷,計算是否繼續(xù)生成的概率:
如果大于預(yù)定好的閾值,則停止一也,否則繼續(xù)生成巢寡。
Word LSTM
topic vector 和START token作為第一個和第二個輸入輸入到LSTM中,得到后續(xù)的word sequence椰苟。得到的hidden state
直接用到了詞的預(yù)測中:
損失函數(shù)
- 在multi-label classification任務(wù)中抑月,文中先對tag ground truth 一范數(shù)歸一化,然后和預(yù)測向量計算cross-entropy舆蝴。個人感覺菱皆,不對ground truth歸一化仇轻,預(yù)測向量使用sigmoid函數(shù)奶甘,然后再計算binary cross entropy效果會好一點。
- 在報告生成階段疲陕,損失函數(shù)由兩部分組成:停止損失和詞損失蹄殃。
最終的損失函數(shù)如下:
最后害加入了一個正則化項诅岩,是關(guān)于visual and semantic attentions矩陣的:
這個正則化鼓勵模型在不同的圖像區(qū)域以及不同的tags上面吩谦,都有相似的注意力式廷。