ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #[논문리뷰] Multiple Instance Learning Networks for Fine-Grained Sentiment Analysis
    Data miner/Information Retrieval 2019. 12. 11. 15:49
    728x90

    읽게된 동기? 원래 쓰던 논문에 가볍게(?) Sentiment anlaysis부분을 넣으려고 했다가. 이와 관련해 잘 써진 논문을 발견해서 이에 대해서 리뷰하고자 한다. 

    - Document-level에서의 label data는 별점평가등을 활용하여 상대적으로 쉽게 얻을 수 있었던 반면에, 그보다 작은 단위인Sentence- 와 Phrase-level sentiment labels는 얻기가 힘들다. 하지만 Document level에서 Sentiment anlaysis를 할 경우, 간과하는 부분이 많다. 어떤 제품이나 서비스가 2점 평가(5점 만점)를 얻었다고 해서 그것에 대한 전반적인 평가가 부정적이지는 않다. 논문에 대한 예시는 어떤 식당에 대한 리뷰 평가였는데, 2점을 얻은 리뷰였지만 2점의 원인이 주차장 서비스와 주문 후 음식을 받는 데까지 걸리는 시간이 오래걸린다는 이유였다.

    - Sentiment anlaysis의 주된 연구 흐름; 1) Unsupervised : lexicon based analysis 가 그 예 이며, general한 단어집 혹은 분석하고자 하는 도메인의 단어집 sentiment score를 참고하여 리뷰의 감성 점수를 계산한다.

    2) Supervised : label정보를 참고하여 Nerual network model를 활용하여 sentiment analysis 하는 경우이다.

    - Multiple Instance Learning : 이 논문에서는 특히 multiple instance learning이라는 프레임워크를 따랐는데, 이는 특히 document-level에서의 label된 데이터셋을 그 document의 세부 instance, 이를 테면 문장 단위에서 개별 문장들의 sentiment를 찾는 것을 다룬다. Instance를 하나의 단위로 여겨서 instance들의 정보들을 활용하여 Document의 label을 예측하는 문제를 다루기도 하고, 개별 Instance의 sentiment의 label을 예측하기도 한다. 

    - Problem Formulation : 논문에서는 Multiple Instance Learning으로 학습을 하는데 있어서, 기존의 document-level 으로 document의 sentiment를 예측하는 방식과 비교해가며 서술한다. 기존에는 document를 instance(segment)의 일련의 연속 집합이라고 보고, 이 segments을 function에 넣어서, 이것의 Label(긍/부정 정서)을 예측하는 방식이다. 한편으로, MIL classifier는 각 segment(segment)들의 확률값들을 예측을 한 뒤에, 이후에 이 instance(segment)의 확률값을 조합하여(aggregate), document의 label을 예측한다. 

         이 논문에서 제안한 모델이 MILNET(오른쪽)이고 왼쪽은 비교모델이다. 먼저 밑에 단에서 보듯이, 하나의 word matrics는 segment, 문장 단위의 matrics다. 즉, "불고기 스파게티의 맛은 꽤나 좋았다" 의 문장을 나타내는 메트릭스이며, 한 문장 최대 길이 * k dimensional 으로 표현되어 있다. 이를 CNN을 거쳐서 V1로 표현이 되면, segment classification부분에서 softmax classifier을 통해서 각각의 segment sentiment가 표현이 된다. 이 논문에서는 1~5점에 대한 확률값을 보여주었다.  그리고, 이 확률값을 조합하는데 있어서 attention 을 활용하였고, 이에 대한 그림은 위의 점선 박스 안에 있는 것이다. ha와 각각의 hidden state 별로 내적값이 높은 segment에 대해서 더 attention score값을 높여주는 역할을 한다. ha는 training 초기에는 random값을 가지다가, 이후에는 document의 감성분석을 하는데 있어서 중요한 segment에 대해서 더 weight를 키워주게 된다. 이후에는 각각의 segment들의 1~5점의 확률값(아래의 수식서 pi(c) 부분)과 attention score을 곱한 것을, 모두 더해주는 역할을 하게 된다.  아마도 총 c개의 클래스에 대한 각각의 document-level에서의 확률값이 도출되는 듯하다. 

     

    학습할 때 있어서는 Document-level sentiment classification dataset을 사용하였다. 그리고 이 큰 데이터셋을 활용하여, 자체적으로 segment 단위의 데이터셋을 구축하였는데, 각각의 class에 대해서 random으로 균일하게 sample하여서 sentence-level, 그리고 EDUs level(문장 단위와 유사한) 데이터셋을 만들었다. 이를 SPoT dataset라고 명명하였는데 이 경우, Amazon annotator의 도움으로 (부정,중립,긍정) class로 구축했다고 한다.

     

    x축은 document class를, 세로축은 부정/중립/긍정 sentence에 대한 분포를 보여주고 있다. 흥미로운 점은, 모든 클래스에 대해서 중립적인 문장이 거의 균등하게 분포하고 있다는 점이다. 

Designed by Tistory.