[논문리뷰] From Image to Text in Sentiment Analysis via Regression and DeepLearning
개요
이 논문 이전에는 Image에 대한 description을 만들어내는 연구들이 존재했지만, 객관적인 사실들을 나열하는 데에 그쳤습니다. 이 연구는 이미지에 대한 감성 분석을 바탕으로 특정한 템플릿 없이 Social Network에서 이뤄질만한 주관적인 impression을 generate하는 것을 목적으로 합니다.
Training
데이터셋은 <Cross-media learning for image sentiment analysis in the wild> (Vadicamo, L et al. 2017.) 논문에서 수집한 twitter post들을 활용하고 있습니다. 해당 연구에서는 LSTM-SVM 모델을 사용해 각 포스트들을 positive, neutral, negative 3가지 감정 분류를 진행했는데요, 본 논문에서는 각 감정별로 10000개의 데이터를 활용했습니다. 추가적으로, input으로 image 데이터를 받아 output으로 text를 출력하는 모델을 위해 Kernel Ridge Regression을 사용했음을 밝히고 있습니다. 목적함수는 다음과 같습니다.
Image
이미지에서 Feature를 추출해내는 데에 있어서 2가지 방법을 시도해봤음을 밝히고 있습니다. 첫 번째는 RGB pixel-value를 이용한 traditional한 방식인데, 3 channel RGB value를 변환해 2352(28 X 28 X 3)-dimensional feature vector로 가공해내는 방식을 취했습니다.
두 번째는 DeepLearning을 이용한 방식인데 pretrained VGG-16 모델을 사용하여 feature를 추출했으며, 이전의 연구 논문들을 통한 배경지식을 바탕으로 feature extraction을 classification layer 바로 이전에 배치하였습니다. 또한,모든 image를 3232 pixel size로 reshape하여 사용했으며 ImageNet으로 initialize된 모델을 사용했습니다.
feature를 추출해내기 위해 이미지에서 어떤 부분이 주로 사용되었는지 파악하기 위해 class activation의 heatmap을 visualize하는 테크닉을 사용했습니다. VGG-16 네트워크는 위에서 highlight된 부분을 바탕으로 classification 판단을 진행했음을 알 수 있고, 추가적으로 각 이미지에 대해 가장 대표적인 caption 5개가 선별되었습니다.
Text
텍스트에서 feature을 추출해낼 때는 BoW(Bag of Words) 모델을 사용하였습니다. 크롤링한 트위터 데이터를 전처리하여 string들을 넣으면 vocabulary에 있는 단어들이 1로 표시되는 sparse matrix를 출력해내는 방식으로 설계하였고, 최대 5000개의 feature를 가질 수 있도록 initialize하였습니다. 그리고 각 감정별로 해당되는 vocabulary를 추출해내었으며, 각 text sample마다 0-1 사이의 feature vector를 할당하였습니다.
각 모델의 output은 거의 5000개 가까이의 확률 값을 담은 vector인데, 이는 각 단어가 해당 이미지의 descriptor가 될 확률을 나타냅니다. 연구진들은 output vector의 절댓값들을 내림차순으로 정렬시킨 후에 앞의 50개의 vector만을 slice한 뒤, actual output vector와의 euclidean distance를 구했습니다. 여기서 actual output vector는 정말로 해당 단어가 description에 포함되어있었는지를 나타내는 sparse vector이며, 이렇게 구한 euclidean distance의 평균값이 prediction의 error가 됩니다.
Results
연구진들은 다음과 같은 3가지 질문에 답을 줄 수 있는 expermental protocol을 만들었다고 합니다.
- 우리가 제안한 Kernel Ridge Regression이 image와 natural language descriptor를 잘 맵핑해줄 수 있을까?
- 과연 더 복잡한 deep learning feature가 단순한 RGB pixel-values feature 보다 더 좋은 성과를 보일까?
- 감정에 따라 image-text sample의 performance 차이가 발생할까?
해당 프로토콜은 각 감정별로 데이터를 train과 test로 7:3으로 나누고, train dataset 사이즈를 50~7000까지 50씩 늘리면서 이에 대한 test error를 구하는 것입니다. 공정성을 위해 evaluation에 사용된 test set은 일정하게 유지한 상태로 감정별로 5번씩 random split 후에 train했다고 합니다. error는 그 5번 중 mean value입니다.
위의 질문 3개 중 1번은 감정별 mean error 그래프에서 training set의 크기가 늘어날 수록 error가 줄어드는 것으로 미루어보아 학습이 잘 진행됨을 확인할 수 있습니다. 또한 2번의 경우에도 전반적으로 RGB feature보다 DeepLearning feature가 더 좋은 성과를 보이고 있습니다. 마지막으로 3번 질문의 경우에는 위 그래프를 보았을 때, positive sentiment가 다른 감정들보다 error가 더 적음을 알 수 있습니다. 연구진은 이를 주관적인 impression을 생성하기 때문에, positive한 감정과 달리 다른 두 감정은 사람에 따라 다르게 받아들일 수 있는 여지가 있기에 이런 결과가 나오는 것이라고 해석했습니다.