본문 바로가기

Papers/SSL

[짧은 논문 리뷰] Motivation of ConVIRT

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을 얻는 방법

      1. 의료 전문가: 비용이 많이 듭니다.
        1. 데이터 크기도 너무 작기 때문에 general domain 모델의 pre-trained weights를 그대로 가져와서 medical downstream task에 fine-tune 했습니다.
        2. 한계: ImageNet의 이미지와 medical image는 특성이 매우 다릅니다. (e.g. medical image: monochrome)
      2. Expert-crafted rules
        1. Image와 짝이 되는 textual report에서 rule-based label extraction을 통해 이걸 label로 씁니다.
        2. Large-scale 데이터 확보가 가능하지만 퀄리티는 보장하지 못합니다.

Heuristic rules의 한계

  1. Rule이 적합하지 않는 경우도 있습니다. (e.g. disease는 무조건 labeling할 것인지? 단어 앞에 붙는 수식어는 어떻게 예측할 것인지? report에 disease가 여러 개 나오면 어떻게 할지? 등의 문제)
  2. Domain-specific, style of text(문체)에 민감합니다. (의사마다 같은 소견에 대해 다른 언어로 서술할 것입니다.)

→ cross-domain / cross-institution (여기서는 병원) generalzation이 어려움!

 

Image 분류 문제에 text를 쓰려는 이유

"Efficient use of unlabeled image data"

  1. Data efficiency
  2. 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을 뽑기 위한, 또는 유사한 이미지를 구별하기 위한 보조 수단으로만 여겨지는 듯하여 아쉽다. 
반응형