Title: Contrastive Learning of Medical Visual Representations from Paired Images and Text
Venue: arxiv
Authors: Yuhao Zhang et al.
Date: 2 Oct 2020
Venue: Machine Learning for Healthcare (MLHC) 2022
ConVIRT는 CLIP의 base architecture로 언급되어 읽어 보았습니다.
Text-image pair: Medical image (X-ray, CT) 등에 짝이 되는 textual report가 있다고 가정합니다.
Pre-training에 사용한 데이터셋
- MIMIC-CXR : chest (흉부) radiograph paired with textual reports
- Bony : muscluoskeletal (근골격계) image with textual reports
- Pair 당 image 수와 text 문장 수가 더 많습니다. (더 많은 정보를 주는지, 샘플 간 agreement가 잘될지가 궁금해집니다.)
Medical image에서 annotation을 얻는 방법
- 의료 전문가: 비용이 많이 듭니다.
- 데이터 크기도 너무 작기 때문에 general domain 모델의 pre-trained weights를 그대로 가져와서 medical downstream task에 fine-tune 했습니다.
- 한계: ImageNet의 이미지와 medical image는 특성이 매우 다릅니다. (e.g. medical image: monochrome)
- Expert-crafted rules
- Image와 짝이 되는 textual report에서 rule-based label extraction을 통해 이걸 label로 씁니다.
- Large-scale 데이터 확보가 가능하지만 퀄리티는 보장하지 못합니다.
Heuristic rules의 한계
- Rule이 적합하지 않는 경우도 있습니다. (e.g. disease는 무조건 labeling할 것인지? 단어 앞에 붙는 수식어는 어떻게 예측할 것인지? report에 disease가 여러 개 나오면 어떻게 할지? 등의 문제)
- Domain-specific, style of text(문체)에 민감합니다. (의사마다 같은 소견에 대해 다른 언어로 서술할 것입니다.)
→ cross-domain / cross-institution (여기서는 병원) generalzation이 어려움!
Image 분류 문제에 text를 쓰려는 이유
"Efficient use of unlabeled image data"
- Data efficiency
- Unlabeled image의 annotation 문제
여러 view-based contrastive method가 미미한 성능 향상을 보였던 이유는, medical image는 다른 class에 속하더라도 다 고만고만하게 생겼기 때문입니다. (inter-class similarity)
방법론
결국 목적은 "visual representation"을 개선하는 것입니다.
- 풍부한 text 데이터 이용: 이미지는 고만고만한데 text는 완전 다를 수 있어 pairing만 잘하면 좋은 데이터가 됩니다
- InfoNCE loss로 학습: Postive sample인 text-image pair는 negative sample(random pair)에 비해 높은 similarity(agreement)를 보일 것입니다.
- Bidirectional: Image → text loss만 학습하는 것 뿐만 아니라 text → image loss도 학습
- 두 가지 loss($u \to v, v \to u$)를 $\lambda$로 가중치를 조절하여 학습
성능: 10%의 labeled data 만 가지고 실험을 했더니 ImageNet으로 초기화된 network 보다 좋은 성능을 보이며 "data efficiency"가 뛰어납니다.
이 논문의 weak point (ICLR 2021 forum)
- 아이디어의 독창성: 기존 연구들(e.g. SimCLR)에서 활용되고 있는 InfoNCE loss만 활용한 것은 독창성이 떨어진다고 생각하는 듯하다.
- 메디컬 데이터에 특화된 image augmentation 외에 추가된 것이 많지 않다.
- 기존의 framework를 그대로 적용하고자 하면, biomedical language model을 사용하여 medical report를 이루는 여러 문장 중 샘플링된 하나의 문장만을 encoder에 넣어줄 것이다. 저자들은 이러한 구현을 선택했다.
- 실험의 설득력이 떨어진다: Baseline이 약하다. (e.g. SOTA, triplet loss, image 또는 text만을 입력으로 사용한 모델)
- Image-text pair의 agreement를 최대화하는 경우, 한 이미지에 대해 같은 문서의 다른 의미를 가진 문장이 짝지어지면서 pair 끼리 충돌할 수 있다.
- Postive image-sentence pair에 대해 agreement가 높으면 목적을 달성하는 것이라고 반박했다.
- (의견1) 같은 문서 내에 문장 간 semantic이 다르더라도 서로 support/negate 하는 관계일 수 있는데(=도움이 될 수 있는데), 단순히 image와 유사한 semantic을 가지는 sentence를 positive로 매치하는 게 목적이라는 설명은 잘 이해가 안가기는 하다.
- (의견2) 연구를 진행하면서 얻은 관찰 결과는 randomly selected sentence도 모든 문장을 사용하는 것 만큼이나 downstream 성능을 뽑아낸다는 것이다.
- 두 가지 가설로 이해할 수 있다:
- Randomly selected sentence도 이미지를 잘 설명한다.
- 현재의 SOTA 방법론들이 전체 (여러) 문장을 적절히 사용하지 못하고 있기 때문에 문장을 하나만 사용하는 것과 유사한 성능을 내는 것이다. (나는 후자에 힘을 싣고 있고, 이를 증명하려면 실험 디자인부터 필요하겠다.)
- 요즘에는 여러 개의 문장 중에서 이미지를 설명하는 문장만을 사용하기 위해 "sentence representation"을 학습하고 "attention mechanism"을 활용해 중요 문장에만 attend하는 image representation을 배우도록 한다.
- 두 가지 가설로 이해할 수 있다:
- Text encoder에 대해서
- BERT를 쓴 것 외에 text와 image 간 차별점이나 text의 특성(앞서 이야기한 문장 간 관계 등)은 고려하지 않았고,
- 유사한 연구들에서 text는 label을 뽑기 위한, 또는 유사한 이미지를 구별하기 위한 보조 수단으로만 여겨지는 듯하여 아쉽다.