rainbow/논문

[논문] A new topic modeling based approach for aspect extraction in aspect based sentiment anlysis: SS-LDA

윌_ 2023. 8. 16. 16:43

 

 

정리한 논문:

https://www.sciencedirect.com/science/article/abs/pii/S0957417420309519

 
 

 

지난 번 작성한 논문의 주제가 흥미로워서 이용수도 많이 나오니 뿌듯하다. 

학회에 제출한 연구는 LDA topic modeling으로 각 리뷰를 토픽 기준으로 나누고

Logistic regression을 통해 (감성 사전을 활용해 회귀계수 값을 바탕으로) 긍부정으로 분류하였다.

 

나는 리뷰 하나를 한 document로 활용했는데,

LDA 짧은 텍스트에서는 두 가지 문제가 존재한다.

 

리뷰들을 토픽으로 묶기 위해서는 동시발생 빈도가 높은 단어들끼지 묶어주어야하는데,

문서 길이가 비교적 짧은 '리뷰' 특성 상

동시 발생 패턴(co-occurence)이 부족하고 data sparcity 문제가 발생한다.

 

그래서 연구과정에서도 전처리 방법을 다양하게 바꾸어보아도

토픽들의 coherence값을 높이는데 큰 차이를 내기 어려웠었다.


 

논문 핵심
본 논문은 두 가지 방법으로 이 문제를 해결한다.

 

 

1. sentence segmentation

 

먼저, 기존 LDA에서는 문장에서 aspect terms를 찾아

이를 가지고 동시 발생 빈도를 활용해 토픽 분류를 진행하는데,

 

SS-LDA는 문장에서 단어들을 추출하는 것이 아닌, 먼저 문장을 세분화한다.

single aspec를 가지도록 문장을 자르는 것이다.

 

ex. '카메라의 포토샷이 좋고, 타이머의 시간 설정이 자유롭다'

 

기존 LDA는 [ 카메라, 포토샷, 타이머, 시간, 설정 ] 과 같이 추출을 하는데,

SS-LDA는 먼저 [ 카메라의 포토샷이 좋고 / 타이머의 시간 설정이 자유롭다]는 식으로

문장을 single aspect를 가지도록 분리한다.

 

기존 LDA는 BOW 모델을 활용하기에 저렇게 추출하는 것인데,

저렇게 되면 카메라 포토샷 유사한 의미를 지니는 토픽을 분류되어야 하지만,

토픽 할당 독립적이기에 다른 토픽에 분류될 수 있다.

즉, aspect-related 단어들의 관계가 고려되지 못하는 것이다.

 

 

 
2. Grouping- sentence segment LDA ( SS-LDA )

 

sentence segmentation을 거치고 분리된 문장 세그먼트들을 그룹화하는 과정이다.

기존 LDA는 BOW 모델을 활용된다.

SS-LDA는 문장 세그먼트(SS)가 토픽에 할당되면 문장 세그먼트에 포함된 모든 단어가 그 토픽에 할당된다.


 

LDA공식 정리

 

‘문서 D의 단어 W에 대한 토픽을 지정하는 과정에서 단어 W에 대한 토픽 Z를 선택할 확률’

 

 각 깁스 샘플링에서 아래와 같은 방법으로 반복한다

 

 

공식의 논리: 문서의 단어에 대한 새로운 토픽 Z를 선택할 때 다음과 같은 두 문제를 고려한다.

 

1. (곱셈 왼쪽 공식) 이 문서에서 토픽 Z는 얼마나 일반적인가

이 문서(리뷰)에서 토픽 Z가 일반적인 경우, 이 단어가 항목 Z에 할당될 확률 증가

 

2. (오른쪽 공식) 다른 문서에서 주제 Z는 얼마나 자주 등장하는가

단어 W가 모든 문서에서 토픽 Z에 자주 할당되는 경우, 이 W가 토픽 Z에 할당될 확률 증가


 
SS-LDA 공식 정리

 

 LDA에서와 같이 ‘단어’가 아닌, 문장 세그먼트를 통과하고 각 ‘문장 세그먼트’에 새로운 토픽을 할당함

 

▶ LDA에서 수정 사항

기존 LDA에서 수정 1 (곱셈 왼쪽 수식)

 (LDA) 이 문서에서 토픽 Z가 얼마나 일반적인지

(SS-LDA) 모든 리뷰에서 토픽 Z가 얼마나 일반적(general)인지로 전환

 

 짧은 문서 내에서는 prodect aspect(=토픽)가 한 번만 나타나는 경우도 많기에

기존 LDA기준은 무의미해지기 때문에 ‘모든 리뷰 내’로 수정

 

기존 LDA에서 수정 2 (곱셈 오른쪽 수식)

 (LDA) 토픽 Z 외 다른 토픽 내에서 단어 W가 얼마나 자주 나타나는지

(SS-LDA) ‘문장 세그먼트 내 각 단어’에 대해 토픽 Z 외 다른 토픽 내에서 단어 W가 얼마나 자주 나타나는지

 

 문장 세그먼트는 한 단어가 아니라 몇 개의 단어로 구성되어있기 때문

→ 따라서 문장 세그먼트 내 각 단어마다 ‘토픽 Z 외 다른 토픽 내에서 단어 W가 얼마나 자주 나타나는지(기존 LDA 방식)’을계산한 후 값들을 곱함

 


 

 
정리

토픽을 단일 단어가 아닌 문장 세그먼트에 할당하면 그룹화 성능이 크게 향상됨

전통적 LDA에서는 단어 간의 연관 관계나 단어의 coexistence 패턴이 고려되지 않기 때문

반면, SS-LDA는 단어의 공존 패턴과 그들 사이의 연관 관계를 고려함

 

< 예시 >

‘카메라’와 ‘촬영’이라는 단어가 있다고 가정

 

‘카메라’와 ‘촬영’이라는 단어는 종종 함께 존재하기에 이 두 단어는 동일한 문장 세그먼트로 나뉘게 됨

 

이에 따라 동일한 문장 세그먼트에 있으니, 동일한 토픽으로 할당됨

 

그리고 ‘촬영’이라는 단어가 ‘카메라’없이 어딘가에 존재할 때, SS-LDA가 ‘카메라’와 같은 문장 부분에 있는 ‘촬영’단어들이 모두 해당 토픽에 할당되었기에 ‘카메라’와 같은 주제에 할당할 확률이 커짐