2007년 8월 9일 목요일

Turney의 논문을 통해 본 Opinion mining

Measuring Praise and Criticism : Inference of Semantic Orientation from Association


The evaluative character of a word is called its semantic orientation.

semantic orientation이라는 말은 text를 이용한 감정인식인 emotion detection of text, text mining, opinion mining 등에서 자주 볼 수 있는 단어이다. 지금 살펴 볼 논문은 이러한 이와 같은 분야에서 다루는 Gloss, valence, evaluative character 등에 대한 개념을 이해하고 opinion mining에 있어서 중요한 착수점이 되는 연구에 대한 것이다.

1. Introduction
subjective meaning에 대한 초창기 연구에서, Osgood 등은 사람들에게 어떤 단어에 대해 점수를 매기게 했다. 각각의 단어는 달콤한/신, 남루한/세련된, 신성한/불경스런 과 같은 대립되는 두 단어 사이에서 7단계로 나눠진 등급 중에 하나로 점수가 매겨진다. 많은 실험 data를 이용해 Osgood 등은 사람들이 점수를 매기는 두 형용사 쌍들에서 3가지 중요한 factor를 발견하였다.

사람들은 대부분 몇개의 형용사 싸에 점수를 매겼다.
첫번째 가장 주된 쌍은, good/bad beautiful/ugly kind/cruel honest/dishonest 였다. Osgood 등은 이 쌍들을 evaluative factor라고 불렀다.
두번째 쌍들은 potency factor라고 불렸는데, strong/week large/small heavy/light 였다.
세번째 쌍들은 activity라고 불렸으며, active/passive fast/slow hot/cold 였다.

evaluative factor는 이후 sematic orientation이라고 불리기도 하고, valence라고 불리기도 하며 언어학에 관련되어 중요한 factor로 쓰이게 되었다. semantic orientation은 positive, negative한 특성으로 분류할 수 있으며 또한 strong,mile와 같은 특성으로도 분류할 수 있다.

사실 각 단어들에 대해서 sematic orientation을 결정하는 것은 개개인의 주관적 관점에 의해서 다를 수 있다고 생각되지만, 여러 연구 결과에서 sematic orientation이 상당한 일치를 보이는 상황을 볼 수 있으며 이를 통해 어떤 단어들에 대해선 지배적인 sematic orientation이 존재함을 알 수 있다.

2. Application
semantic orientation을 이용한 Application은 여러 분야에 걸쳐 나타날 수 있다.
예를 들면,
1)자동적으로 동의어와 반대말을 찾는 시스템(Hatzivassiloglou and McKeown(1997)),
2)영화 감상평에 대해서 긍정적 반응, 부정적 반응을 구분하는 시스템(Turney 2002)),
3)검색에 반영할 수도 있고(예를 들면 파리 여행 : positive인 경우 목적에 더 부합하는 질의 결과를 얻을 수도 있을 것이다.(Hearst 1992)),
4)리뷰 요약으로 긍정 리뷰로 판명된 경우 가장 긍정적 문장을 보여줄 수도 있을 것이며,
5)악플에 대한 filtering 기능을 제공 할 수도 있을 뿐만 아니라(Spertus 1997),
6)Timelines에서 sentiment를 펼쳐 볼 수도 있다.(Tong 2001)) 이것은 advertiser, p0litician들이 여론을 파악하거나 광고 효과를 파악하는데 도움을 줄 수 있다.
7)게임이나 chatbot같은 application에도 보다 더 현실적인 느낌을 주는데 이용될 수도 있다.
8)마지막으로 survey resplonse들에 대한 분석에도 이용될 수 있다.

3.Semantic orientation from association
논문에서는 semantic association으로 부터 semantic orientation을 추론하고자 한다.
한 단어의 semantic orientation은 positive한 단어들 집합과의 연관 정도에서 negative한 단어들 집합과의 연관 정도를 뺀것으로 계산된다.


여기서 pword, nword는 문맥에 관계하지 않고 일반적으로 positive한, 또는 negative한 의미를 지니는 단어들을 선별할 필요가 있다.

여기서 사용된 positive한 단어들 집합은
good, nice, excellent, positive, fortunate, correct, superior이다.
그리고 negative한 단어들 집합은
bad, nasty, poor, negative, unfortunate, wrong, inferior이다.

그렇다면 이 연관정도를 나타내는 A(Word1, Word2)는 어떻게 계산하는 걸까? 이 계산 방법엔 여러가지 알고리즘들이 있다. 본 논문에서는 2가지 알고리즘을 소개하고 있다.

1)Sematic orientation from PMI
Turney2001은 Pointwise Mutual Information이라는 방법을 이용해 연관 정도를 측정하였는데, 이 방법의 성능은 TOEFL에서 동의어 80개를 찾아내는 문제에서 74% 정확도를 보였다.

sematic orientation, 즉 그 단어가 가지고 있는 근원적 의미(여기서는 positive한 단어들과 netgative한 단어들과의 상관 관계이지만...)를 어떻게 찾을 수 있을까? 직관적으로 sematic orientation을 정의할 수 있는 또 다른 언어들(good, nice등등)이 있을 것이며, 아마도 이러한 단어들은 전혀 관계없는 단어들보다 더 자주 같이 쓰일 것이라고 생각할 수 있다. PMI는 이러한 직관에 의거하여 연관 정도를 계산한다.

P(word1&word2)는 word1, word2가 동시에 발생할 확률이다. 이것을 측정하기 위해 Turney는 Altavista 검색 엔진을 이요했다. 알타비스타는 350만개의 웹 페이지를 가지고 있다.(영어로 씌여진...) 각 페이지 마다 300개 정도의 단어가 있다고 가정할 때 적어도 척억개 이상의 단어가 있다고 할 수 있다. 알타 비스타를 쓴 이유는 이 당시 이 검색 엔진에서 NEAR 연산자를 쓸 수 있었는데, NEAR 연산자는 가까운 거리에 2 단어가 쓰여진 웹 페이지를 검색한다. 상대적으로 먼 거리에서 같이 씌여진 2단어는 연관성이 없을 수 있음을 감안한 것이라고 볼 수 있다.

Hit수를 이용해 p(word1, word2)를 계산하면 다음과 같은 식을 생각할 수 있다.
N은 웹 검색 엔진이 indexing한 전체 document숫자이고 hit함수는 해당 질의어로 검색된 web page 수이다. 이를 이용해 SO-PMI(word)를 계산해보면
과 같이 유도 될 수 있다.
14개의 postive, negative word를 이용한 질의를 통해 SO-PMI가 계산되며 hits(nword), hits(pword)는 상수값이다. 다른 연관정도 계산 방법으로 Maniing과 Schutze(1999)방법이 있을 수 있고, Dunning(1993)이 제안한 likelihood ratio사용 방법이 있을 수 있다.(Z-score) 그러나 이 두 방법의 성능은 PMI보다 좋지 않은 것으로 알려져 있다.
0으로 나누지 않기 위해 여기서는 hits함수 결과에 0.01을 더하는 방법을 취했고 이는 laplace smoothing효과를 가져온다고 한다.
2)Sematic orientation from LSA
SO-LSA방법은 연관 정도를 계산하기 위해서 Latent Semantic Analysis(LSA)를 이용한다. LSA는 corpus내의 단어들 사이의 통계적 관계를 분석하기 위해 Singular Value Decomposition을 이요한다.(아직은 무슨 말인지 알 수 없을 것이다.)
먼저, Matirx X를 만들기 위해서 text를 이용하는데 X의 row vector는 단어들을 나타내고 column vector는 단어 묶음(즉, sentences, paragraphs, documents)를 나타낸다. 각각의 cell은 한 chunk of text에 대한 한 단어의 가중치(weight)이다. 이 weight는 전형적으로 if-idf score로 계산된다.
그 다음으로, singular value decomposition을 Matrix X에 적용시킨다.

LSA는 PCA(Principal components analysis)와 유사하다. LSA는 original Matrix X대신에 축소형태로 smoothed matrix를 사용해(SVD를 이용) 단어들의 유사도를 측정한다.이 유사도는 LSA(Word1, Word2)로 표현되고 SVD가 적용된 Matrix의 row vector들 사이의 cosine of the angle을 취해 측정된다. 즉!!! 앞서 단어들 사이의 연관 정도가 단어들 사이의 유사도라는 개념으로 측정되는 것이다. 직관적으로 방법은 다르지만 일견 비슷해 보이는 면이 있어 보이지 않는가?
LSA방법은 유사도를 consine of angle로 측정하기 때문에 값이 작을수록 더욱 유사한 값이 나오게 된다.
따라서, PMI와는 반대로, PMI값이 양일때 단어가 positive했던것과는 달리 LSA에서는 negarive하다고 볼 수 있다.
값이 음으로 나올때는 그 반대의 경우이다.
4.Related work
관련 연구는 크게 3가지 그룹으로 나눌수 있다.
단어를 positive, negative semantic orientation으로 분류하는 연구
리뷰들을 positive, negative로 분류하는 연구
text내에서 주관성을 인식하는 연구들이 그것이다.
1)Classifying Words
Hatzivassiloglou and McKeown(1997)은 앞에서 연관 정도, 유사성에 대해서 살펴본 것처럼 semantic orientation을 결정하는 문제가 곧 단어를 분류하는 문제라고 생각했다. 그들은 4 단계의 supervised learning algorithm을 세웠는데 HM이라고 불리는 알고리즘이다.
-1 : adjectives의 모든 conjunctions들이 주어진 corpus에서 추출된다.
-2 : supervised learning algorithm이 단어들을 같은 semantic orientation을 갖는 것 끼리 묶고, 다른 semantic orientationd을 갖는 것들을 분류하는 방법으로서 label 쌍으로 된 adjectives들과 연관시킨다. 결과적으로 adjectives이 노드가 되고 link들은 같거나 다른 semantic orientation을 가리키는 graph가 된다.
-3 : clustering algorithm을 통해 같은 semantic orientation을 갖는 것들끼리 묶어서 크게 2가지 묶음(same, different)으로 묶는다.
-4 : positive adjectives가 보다 더 빈번하게 나타나기 때문에 higher average frequency를 갖는 cluster를 positive semantic orientation을 갖는 그룹이라고 한다.

evaluation결과 training set이 늘어날 수록 HM의 accuracy는 향상 되었다. 이 결과를 볼때 큰 corpora에서 HM의 성능은 더욱 만족할 만할 것이라고 예측했다. 하지만, HM은 and나 or를 이용한 단어를 분류를 하기 때문에 동사나 명사에 대해서는 성능이 좋지 않을 것이다. 예를 들면 "나는 달리기가 빠르지만 걸음은 느리다."를 영어로 풀어볼때, but으로 묶이는 단어가 fast, slow이므로 adjective에는 만족할 만하지만 "사랑과 죽음", "로마제국의 성장과 몰락"같은 경우 전혀 이상한 점이 없지만 and로 묶인 두 단어들이 positive, negative한 반대 양상을 띈다. 이 경우에 효과적으로 대처하지 못하는 맹점이 있다.
2)Classifying Reviews
Turney(2002)는 리뷰를 분류하기 위해 3단계 알고리즘을 세웠다.
-1 : 한 단어는 형용사나 부사로 이루어진 두 단어구를 찾는다.(ex romantic ambience, horrific events)
-2 : 찾아진 구들에 대해서 각각 semantic orientation을 SO-PMI를 이용해 계산한다.
-3 : 계산된 값들의 평균을 취해 분류한다.

연구 결과가 한 단어나 구들에 SO-PMI를 적용했을때 어떤 작용이 일어나 효과를 일으키는지 원리를 밝혀주지는 못하지만, 성능 면에서는 유용하다고 할 수 있다.
한 단어만을 고려한다고 볼때는 각 단어에 대해서 manual하게 semantic orientation을 주석을 다는 것도 효과적인 방법일 수 있겠지만, 두 단어 이상을 함께 고려한 semantic orientation을 application에 응용하게 될 때는 그 노력의 크기가 비교할 수 없을 정도로 커지게 된다. 그러한 의미에서 Tuney의 So-A 방법은 automatic한 측면에서 의미가 있다. 또한 두 단어 이상의 semantic orientation의 필요성은 각 domain에 따라 같은 단어의 semantic orientation이 다를 수 있음을 생각해 보면 알 수 있다. 예를 들면, unpredictable이란 단어는 자동차에 대한 리뷰에서는 negative한 semantic orientation을 갖는다. "unpredictable steering"과 같은 경우를 생각해 보자. 한편, 영화 리뷰에서는 "unpredictable plot"처럼 unpredictable이 positvie한 semantic orientation을 갖는다고 볼 수 있다.
Pang 일행(2002)은 movie review를 positive, negative한 종류로 구분하는 방법에 있어서 고전적인 text classification 방법들을 적용했다. Pang일행은 세개의 supervised learning algorithm과 8개의 feature set들을 비교하였다. 총 24번의 조합 중에서 가장 좋은 결과를 낸 것은 feature집합이 한 단어들로 이뤄져 있고, 각 단어가 있고 없고에 상관하여(출현횟수와는 상관없이) SVM(Support vector machine)을 적용했을때였다. Pang의 알고리즘이 Tuney에 비해 더 정확할 것이라고 기대하는 이유는 Pang의 알고리즘이 supervised learning algorithm이기 때문이다. 한편, 각각의 domain에 따라 retraining이 필요할 것이라고 예상되는데 그 이유는 앞에서 본 자동차 리뷰와 영화 리뷰를 생각해 보면 알 수 있을 것이다.

3)Subjectivity Analysis
subjectivity analysis는 글자 그대로 주관이 들어간 글과, 사실을 전하는 글을 구별하는 일을 의미한다.[wiebe 2000; wiebe et al.2001] wiebe등은(2001) 자동적으로 주관이 들어간 글을 구별하는 작업은 매우 다양한 응용 분야에 쓰일 수 있다고 언급했다. flames를 인식하는 것(Spertus, 1997), email을 분류하는 것, radio 방송에서 speaker 역할을 분류하는 것, review들을 분류하는 것 등등이 그 예이다.
물론 위에서 언급한 application들이 sematic orientation과 직접적으로 관련이 있을 수 있다고 할 수도 있지만, 일반적으로 2 단계 방법을 취한다. 먼저 subjectivity를 확인하고 그 다음 positive, negative한 것들로 구분하는 것이다.
논문에는 Experiments결과도 상세히 적혀 있고, opinion mining이나 text mining 을 연구하고자 하는 사람들은 주의 깊게 살펴볼 내용도 있다. 하지만, 일단은 개략적으로 opinion mining이 뭔지, semantic orientation이 뭔지, 기본 개념에 충실하기 위해 이 정도 까지 살펴보도록 하자. 뭔가 신기한 개념들이 보이지 않는가? 적어도 재미있는 application으로의 활용 가능성은 볼 수 있지 않을까?

댓글 없음: