problem : VLM은 general한 object에 대한 질답은 할 수 있지만 좀 더 fine-grained한 visual concepts을 뽑아낼 수 없을까?
idea : wikipedia 기반으로 entity를 만들고 {image, query}가 주어졌을 때, 이 query의 answer 해당하는 Entity를 찾는 문제를 정의하자.
input/output : context image + text query + knowledge base(wikipedia) -> wiki page
architecture : dual-encoder의 경우 CLIP. 1) 4가지(context image, query <-> wiki page image, text)에 대한 cosine similiarity에 대한 가중이 학습되는 CLIP2CLIP. 2) image encoder와 text encoder 위에 정보를 fusion하는 두 레이어의 Transformer를 한 CLIP fusion 3) PALI로 finetune 한 뒤에 PALI의 output을 BM25로 wikipedia에서 retrieval. 구체적인 arch는 CLIP based ViT-L14 / PaLI-3B와 PaLI-17B
objective : dual encoder의 경우 similiarity기반이니까 InfoNCE 같은게 쓰였을 듯? PaLI는 CE loss.
baseline : 벤치마크를 제안한거라 이 논문자체가 베이스라인
data : 14개의 벤치마크 데이터셋을 가지고 wiki랑 mapping을 해서 만듦. 정제도 좀 거치고 human annotation도 좀 쓴듯
evaluation : 정확도로 예측. seen entity에 대한 정확도와 unseen entity에 대한 정확도의 조화평균.
result : PALI가 생각보다 성능이 매우 좋다. 즉 모델 안에 entity를 잘 담고 있다. 특히 query split(VQA 기반으로 만든거)가 성능이 좋았다. CLIP Fusion이나 CLIP2CLIP의 경우에도 성능이 파라미터수 대비 PaLI랑 비슷하니 꽤 강력한 basline이다!
contribution : 새로운 벤치마크 및 베이스라인 제시.
etc. :
Details
Task set-up
처음 제안한거라 setup자체가 중요한데
잘보면 context image와 이에 대한 질문이 있음. 즉 걍 image retrieval이 아님!
image와 query를 잘 조합해서 wikipedia에서 답에 해당되는 entity page를 찾아내는게 문제 셋업임.
Data
두 가지로 나눌 수 있는데,
Entity Setup : 분류나 retrieval 기반의 데이터셋들 -> 질문을 templated query generation으로 만듦
Query Setup : VQA 기반의 데이터셋들 -> 질문에 대한 답이 entity에 대한게 아니면 정제함
Dual encoder
CLIP 사용. 걍 retrieval 문제로 바꿔서 풀면?
CLIP2CLIP의 경우 $(x^p, t(e)), (x^t, p(e)), (x^p, p(e)), (x^t, t(e))$의 cosine similiarty를 구한 뒤에 이의 가중치인 4개의 파라미터만 학습하는 형태.
CLIP Fusion 두개의 encoder위에 이걸 잘 fusion 하는 Transformer를 학습.
Encoder-Decoder model
그냥 oven training dataset을 PALI loss로 학습. PALI가 내뱉는 output에 대해 BM25로 wiki page 찾은걸로 최종 output으로
Result
CLIPFusion의 경우 query split에 대한 seen entity 성능이 아주 좋았다. 이는 VQ2A objective가 들어있어서 그런 것 같았다. 그러나 unseen이 매우 안좋음
CLIP2CLIP은 전반적으로 성능이 좋음.
PALI가 놀랍게도 생각보다 아주 잘했다. 얘는 CLIP과 달리 entity에 대한 접근이 infer 상황에선 안되는건데 성능이 Unseen에도 좋은걸보니 안에 내부적으로 그런 정보를 잘 담고 있는 것 같았다.
overall 성능이 CLIP -> CLIP Fusion으로 가면서 파라미터가 2배 늘었지만 성능이 2배정도 됐는데 PALI는 그만큼 성능이 훅 늘지는 않았다.
human evaluation 보다는 성능이 많이 못미쳤다.
두개를 비교해보면 PALI는 질문을 더 잘 이해하지만 더 generic하게 답변하는 경우가 있었다.
paper
TL;DR
Details
Task set-up
처음 제안한거라 setup자체가 중요한데 잘보면 context image와 이에 대한 질문이 있음. 즉 걍 image retrieval이 아님! image와 query를 잘 조합해서 wikipedia에서 답에 해당되는 entity page를 찾아내는게 문제 셋업임.
Data
두 가지로 나눌 수 있는데,
그리고 뭐 사람 써서 label disambiguation 같은걸 했다고 하넹
evaluation
seen entity / unseen entity에 대한 정확도의 조화평균
Baseline
$x^t$ : input intent $x^p$ : input content $p(e)$ : entity images $t(e)$ : entity text
Dual encoder CLIP 사용. 걍 retrieval 문제로 바꿔서 풀면? CLIP2CLIP의 경우 $(x^p, t(e)), (x^t, p(e)), (x^p, p(e)), (x^t, t(e))$의 cosine similiarty를 구한 뒤에 이의 가중치인 4개의 파라미터만 학습하는 형태. CLIP Fusion 두개의 encoder위에 이걸 잘 fusion 하는 Transformer를 학습.
Encoder-Decoder model 그냥 oven training dataset을 PALI loss로 학습. PALI가 내뱉는 output에 대해 BM25로 wiki page 찾은걸로 최종 output으로
Result
두개를 비교해보면 PALI는 질문을 더 잘 이해하지만 더 generic하게 답변하는 경우가 있었다.