728x90
반응형

 

reference

 

Sentiment Analysis를 위한 Optimizing

sentiment, 감정과 같은 작업의 경우 단어 빈도보다 발생이 더 중요하다

 

binary NB(Binary multinominal naive bayes)

각 문서 내의 단어 수를 1로 제한한다 (단어 빈도보다 단어의 존재 여부가 더 중요하므로)

Bernoulli Naive Bayes(특징의 존재 여부를 고려)와는 다르다.

 

Learning $P(c_j)$ 계산

 

$P(c_j)$은 $c_j$의 사전 확률을 나타내며,

훈련 데이터에서 클래스 $c_j$의 문서 수를 전체 문서 수로 나누어 계산할 수 있다.

$$P(c_j) = \frac{docs_j}{total docs}$$

 

$P(w_k∣c_j)$ 계산

 

$P(w_k∣c_j)$는 클래스 $c_j$가 주어졌을 때 단어 $w_k$의 조건부 확률

클래스 $c_j$의 문서에서 단어 $w_k$의 출현 횟수를 클래스 $c_j$의 문서에서 모든 단어의 출현 횟수로 나누어 계산할 수 있다.

$$P(w_k | c_j) = \frac{N_{k,c_j} + 1}{N_{c_j} + |V|}$$

 

Test Document 

  1. document에서 모든 중복되는 단어를 제거
  2. NB를 계산

$$c_{NB} = \arg\max_{c_j \in C} P(c_j)\prod_{k \in positions} P(w_k | c_j)$$

 

Sentiment Classification

Negation 다루는 방법

Negation과 문장부호 사이의 모든 단어 앞에 “NOT_” 추가 (가장 간단한 방법)

“The movie is not great” → "The movie is not NOT_great”

 

Lexicons 기반 감정 분석

사전에 준비된 word lists를 사용하여 Sentiment 점수를 계산하는 방법

MPQA Subjectivity Cues Lexicon, The General Inquirer, Bing Liu Opinion Lexicon 등

Sentiment Classification에서는 word lists에서 발생하는 단어의 수를 계산하는 특징을 추가해,

모든 Positive 단어, Negative 단어의 특징을 계산한다.

1-2개의 특징만 사용하는 것은 모든 단어를 사용하는 것만큼 좋을 수는 없다.

하지만, training data가 test set을 대표하지 않거나 많이 없는 경우, lexicon features가 도움이 될 수 있다.

 

Bag of Words (BOW)

단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법

문서를 vector로 변환하여, 문서의 각 단어에 점수를 부여하는 식으로 Sentiment Classification을 진행한다.

 

  • "hate" -> bad
  • "love" -> good

 

하지만, "There’s nothing I don’t love about this movie" 라는 단어가 있을 때,

BOW는 해당 문장이 긍정적인 문장임에도 "nothing", "don't"와 같은 부정적인 단어가 포함되어 있기 때문에, 이 문장이 부정적인 것으로 판단한다.

 

결국, 어떠한 결정을 내리기 위해 서로 다른 feature를 결합해야하는 필요성이 나타난다.

 

 

Word2Vec

CBOW나 Skip-gram을 이용하면 단어의 문맥을 고려하여 단어의 벡터 표현을 학습한다.

 

CBOW (Continuous Bag-of-Words)

단어 임베딩을 빠르게 학습하는 데 사용되는 모델

주변 단어의 임베딩 합을 기반으로 타겟 단어를 예측한다.

 

Skip-gram

타겟 단어의 임베딩을 사용하여 주변 단어의 확률을 예측한다.

 

Sentiment Classifiers의 문제점

sentiment classifier는 편향된 데이터로 훈련될 수 있으며, 특정 인구 집단이나 문화적 배경에 대한 편견을 가질 수 있다.

이는 classifier의 성능에 부정적인 영향을 미칠 수 있다.

 

Model Cards

참고 : https://arxiv.org/abs/1810.03993

훈련된 기계 학습 모델과 함께 제공되는 짧은 문서로, 다양한 조건에서의 벤치마크 평가를 제공

인종, 지리적 위치, 성별, 피부 유형 등 다양한 문화적, 인구학적 등의 그룹과 교차 그룹에 걸쳐 모델의 성능을 평가

결국 Model Cards의 목적은 기계 학습 모델의 투명성을 높이고, 사용자가 모델을 올바르게 사용할 수 있도록 돕는 것이라 할 수 있다.

 

Probabilities to Sentences 

Count-based Language Models

Jane went to the store . (high score)

store to Jane went the . (low score)

 

위와 같이 score를 주는 방법으로 문장의 확률을 계산할 수 있다.

 

$$P(\text{Jane went to the store}) = P(\text{Jane}) \times P(\text{went}|\text{Jane}) \times P(\text{to}|\text{Jane went}) \times P(\text{the}|\text{Jane went to}) \times P(\text{store}|\text{Jane went to the})$$

 

문제점

  1. 유사한 단어들 간의 연관성을 공유할 수 없다.
    "good"과 "great"은 의미가 유사함에도 서로 독립적으로 취급된다.
  2. long-distance dependencies를 처리하는데 어려움이 있다. 이는 문장에서 떨어져 있는 단어들 사이의 의미적 관계를 의미하며,
    "I dropped my phone and it broke” 라는 문장에서 "dropped"와 “broke” 사이에는 의미적 관계 ("dropped"가 발생한 결과로 "broke"가 발생한다) 가 있음에도 Count-based Model에서는 쉽게 학습할 수 없다.

 

Count-based Language Models의 문제점 해결

Neural Language Models

CNN의 약점

short-distance의 feature extractors에 유용하다

문장에 대한 long-distance dependencies을 파악하기 어렵다

 

RNN의 약점

각 시간 단계에서 정보를 처리하므로 정보가 간접적으로 전달(long-distance dependencies 처리 어려움)되며,

각 시간 단계의 출력이 이전 시간 단계의 출력에 영향을 받기 때문에, 계산 과정이 복잡하여 학습이 어렵다.

각 시간 단계에서 정보를 처리하므로, 처리 속도 또한 느리다.

 

결론, Neural Language Models는 시간적인 정보와 공간적인 정보를 모두 처리할 수 있다.

728x90
반응형