서론

논문에서는 Visual Storytelling이라는 테스크와 함께 벤치마크 데이터셋을 제시합니다. 기존의 Image Captioning을 vision-to-language 테스크라고 한다면 Visual Storytelling은 sequential vision-to-language 테스크라고 일컫을 수 있습니다. 즉, 연속성이 있는 이미지들(sequential vision)을 가지고 하나의 스토리(language)를 만드는 일입니다.

논문에서 Image-to-Text의 대응을 크게 세 가지로 분류로 하는데,

1) Descriptions of Images-in-Isolation(DII): one-to-one. 기존의 Image Captioning task와 동일.

2) Descriptions of Images-in-Sequence(DIS): many-to-one. 일련의 이미지를 단순 설명하는 task. Video Captioning과 유사.

3) Stories for Images-in-Sequence(SIS): many-to-one. DIS의 단순 설명을 넘어 인간적인 언어로 풀어내는 task.

여기서 DIS와 SIS의 차이에 주목해야 합니다. 인간적인 언어라 함은 단순히 이미지 속에 있는 사물과 현상을 나열하는 수준의 translation이 아닌, 감정과 상상력이 필요한 일입니다. 예를 들어, 아래의 그림에서 단순한 상황 설명(“sitting next to each other”, “sun is setting”)에 그치지 않고 고차원의 언어(“having a good time”, “sky illuminated with a brilliance…”)를 구사하는 것을 말합니다. 이는 “good time”이라 함이 무엇인지, “brilliance”라는 표현을 어떤 경우에 사용해야 하는지를 이해해야 한다는 것입니다.

1

따라서 정리하자면 Visual Storytelling은 human-like understanding을 풀려는 문제입니다. 비전의 측면에서 보면 일련의 이미지 속에서 일종의 맥락을 이해하고 이를 통해 비슷한 이미지 속 상황을 추론할 수 있게 되며, 자연어의 측면에서는 보다 추상적이고 고차원의 인간적인 언어를 구사할 수 있게 됩니다.


Vision과 Language을 연결하는 task는 크게 다음과 같이 추릴 수 있습니다.

1) Image Captioning

2) Visual Question Answering

3) Video Captioning

앞선 연구들은 Vision과 Language를 잇는 다리 역할을 했다는데 큰 의의가 있지만, 여전히 딱딱한 언어를 사용한다는 한계를 가집니다. 가령, 앞의 그림에서 “sitting in the room”과 “bonding(유대감을 형성하는)”은 같은 visual signal을 통해 추출되는 text이지만 전자는 사회적 관계나 감정적인 정보가 담겨져 있지 않습니다.

이와 같은 task를 해결할 수 있다면 향후 인공지능 시스템은 사용자가 “지루하다”라는 감정까지도 인지하고 그에 대한 피드백을 주는것도 가능해질 것입니다.


문제는 스토리텔링이 얼마만큼 잘되었는가를 평가할 수 있어야 하는데, 이것이 좀처럼 쉽지가 않습니다. 가장 좋은 방법은 사람이 직접 생성된 스토리를 보고 평가하는 것이지만, 사람마다 평가의 기준이 다를 수 있으며 노동집약적인 일입니다. 따라서 자동화된 메트릭을 기준으로 평가하는 것이 필요합니다. 어떤 지표가 사람이 평가하는 기준과 가장 부합하는지 알기 위해서 세 종류의 메트릭과 사람의 평가 간의 상관 계수를 계산합니다.

유사도를 계산하기 위한 Automatic metric의 후보는 아래와 같으며, 이 중 METEOR가 가장 높은 상관 계수를 보였습니다.

1) METEOR

2) smoothed-BLEU

3) Skip-Thoughts: Sentence2Vec. 소설 속 문장을 semantic space의 벡터 표현으로 임베딩하는 모델.

paraphrasing을 포함하는 METEOR가 사람의 평가 기준과 가장 부합함을 보였습니다.


실험

2

스토리 생성 모델은 Image encoder-Story decoder 형태를 띄고, Encoder와 Decoder 모두 GRU로 구성됩니다. Image sequence의 각 이미지를 fc7 벡터로 변환한 후 Encoder에 역순으로 입력하고 그 출력을 Decoder의 첫번째 hidden state로 사용합니다. 그러면 Decoder는 softmax loss를 이용하여 한번에 한단어씩 스토리를 만들어냅니다.

Image Captioning에서 자주 사용되는 beam-search(size=10)를 사용하였을 때 그다지 만족스럽지 못한 결과를 보이는데, 예를 들어, “This is a picture of a dog”와 같이 내재된 맥락을 표현하지 못하고 단순한 Object detection 수준에서 그칩니다.

논문에서는 이를 개선하기 위한 몇 가지 heuristic을 적용합니다.

1) Greedy Search(beam size=1) : 일반적으로 Image captioning 모델에서는 beam search를 사용하지만, Story generation 모델에 대해서는 Greedy search가 METEOR score에서 4.6의 성능 향상을 보였다고 합니다. 하지만 여전히 Greedy Search의 보편적인 문제인 duplication이 발생하게 됩니다.

2) 하나의 스토리 내에서 동일한 단어는 한 번만 등장하도록 한다 : 이를 통해 METEOR score에서 2.4의 성능 향상을 확인할 수 있습니다.

3) Visually Grounded Word: Story를 학습할 때 보다 Caption을 학습할 때 더 자주 등장하는 단어를 “Visually Grounded Word”로 정의합니다.

3

4) Licensed Word: caption annotation을 이용하여 별개의 모델을 학습하고, val-test set의 각 이미지에서 best caption list를 만듭니다. 100개의 best caption 중에서 적어도 10개의 문장에 등장하는 단어는 caption model에 의해 ‘license’를 획득한 단어로 표시됩니다.

3+4) Story Decoder은 “Visually Grounded Word”이면서 “license를 획득한 단어”만 생성할 수 있도록 제약을 둔다 : 이는 1.3의 METEOR score 향상을 가져옵니다.

앞선 heuristic들이 스토리를 생성하는 적절한 방법은 아니지만 Visual Storytelling에서 생성되는 story가 Image captioning가 생성하는 description과는 근본적으로 다르다는 것을 보여주며, 앞으로 등장할 Storytelling 모델에 대한 일종의 baseline을 제시합니다.


정리

Visual Storytelling implementation GitHub에 나오는 Visual Storytelling 결과들
4
5
6
7

Sequential images-to-story에 대한 baseline과 함께 Visual Storytelling이라는 새로운 화두를 던져주었습니다. 단순히 Visual concept을 Text로 풀어내는 것에서 그치지 않고 감정이나 맥락과 같은 추상적인 개념들을 이해하고 전반적인 상황을 추론할 수 있어야합니다. 최근 인스타그램이나 페이스북을 통한 사진 공유가 활발한 시대인만큼 매우 핫한 주제로 다루어질것 같습니다.

하지만 Visual Storytelling의 타겟이 human-like understanding인 만큼 기존에 image captioning 테스크에서 이용되던 metric을 스토리텔링의 평가 지표로 사용하기에는 다소 부적합해보입니다. 이와 관련해서는 앞으로 개선해야할 여지가 많을듯 합니다.

이후 Visual Storytelling에 대한 방법론을 제안하는 논문도 다루어볼 예정입니다.

데이터셋은 VIST에서 다운로드 받을 수 있습니다.