Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-05 03:02
관리 메뉴

Hey Tech

LDA 토픽 모델링 개념 설명 본문

AI & 빅데이터/데이터 분석 with 통계

LDA 토픽 모델링 개념 설명

Tony Park 2022. 3. 11. 00:13
728x90
반응형

👨‍💻 들어가며

본 포스팅에서는 LDA 토픽 모델링의 개념, 가정, 알고리즘 프로세스에 대해 알아봅니다. 특히, 수학적인 수식 없이 LDA 토픽 모델링의 메커니즘을 쉬운 예시와 함께 빠르게 이해하는 데 초점을 둡니다. LDA 토픽 모델링 관련 실습은 아래 포스팅을 참고해 주시길 바랍니다.

https://heytech.tistory.com/401

 

[NLP] LDA 토픽 모델링을 활용한 앱 리뷰 분석 프로젝트

📚 목차 1. 개요 2. 데이터셋 3. LDA 토픽 모델링 개념 4. LDA 토픽 모델링 시각화 5. 전체 코드 6. 코드 설명 7. 결과 해석방법 8. 인사이트 도출 1. 개요 본 프로젝트는 건강관리 앱 리뷰 텍스트마이닝

heytech.tistory.com

📝 목차

1. LDA 토픽 모델링의 개념
2. LDA 토픽 모델링의 분석 예시
3. LDA 토픽 모델링의 가정
4. LDA 토픽 모델링 프로세스

🔍 LDA 토픽 모델링의 개념

토픽 모델링이란 텍스트 기반의 문서 데이터에서 핵심 주제(Topic)를 찾는 데이터 분석 방법론입니다. 특히, 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)은 토픽 모델링의 가장 대표적인 알고리즘입니다. 구체적으로, LDA 토픽 모델링은 확률 기반의 모델링 기법을 통해 방대한 양의 문서 데이터를 분석함으로써 문서 내에 어떤 토픽이, 어떤 비율로 구성되어 있는지 분석합니다[1]. 또한, 토픽별로 어떤 키워드가 구성되었는지 정보를 제공하기 때문에, 키워드 조합을 통해 인사이트를 도출하는 데 효과적인 장점이 있습니다. 최근에는 LDA 토픽 모델링을 통해 SNS에서 유사한 토픽을 자동으로 분류하거나[2] 항공사 온라인 리뷰를 분석하여 고객 니즈를 도출하는[3] 등 다양한 분야에서 연구가 활발히 진행되고 있습니다.

📊 LDA 토픽 모델링의 분석 예시

이번 섹션에서는 추상적인 개념보다는 간단한 예시와 함께 LDA 토픽 모델링이 어떤 절차를 통해 어떤 결괏값을 도출하는지 알아봅니다. LDA 알고리즘을 일종의 블랙박스로 간주하고, 문서 데이터를 알고리즘에 입력하였을 때 어떤 출력을 내는지 간단한 예시와 함께 알아보겠습니다. 다음과 같이 음식점에 관한 3개의 리뷰가 있고 토픽의 총개수는 2개라고 가정하겠습니다. 참고로, 토픽의 개수는 사용자가 직접 지정해야 하는 하이퍼파라미터입니다.

구분 내용
리뷰 1 여긴 삼겹살이랑 냉면 맛집으로 추천
리뷰 2 이집 미남 사장님 친절하시고 최고
리뷰 3 사장님 친절하시고 삼겹살이랑 된장찌개 맛집이라 추천

불필요한 조사나 주어를 제거하는 전처리 과정을 모두 마쳤다고 가정하겠습니다. 또한, 문장에서 각 단어들이 몇 회씩 등장했는지 표현하는 DTM(Document Term Matrix)를 LDA 토픽 모델링의 입력 값으로 주었다고 가정하겠습니다. LDA 토픽 모델링 결과, 크게 2가지 결괏값을 얻을 수 있습니다. 첫째, 리뷰별 토픽 분포, 둘째, 해당 토픽별 단어 분포입니다. 각각 알아봅니다.

리뷰별 토픽 분포

LDA 토픽 모델링은 토픽별로 어떤 단어들이 구성되어 있는지 알려주지만, 해당 토픽의 제목은 알려주지 않습니다. 즉, 우리가 직접 토픽별로 구성된 단어의 조합을 보고 토픽의 제목을 정해야 합니다.  지금은 문서 개수가 3개이고 문서 내 단어 구성이 단순하기 때문에 쉽게 문서별 토픽을 구분할 수 있습니다. 즉, 추출할 토픽의 개수를 2로 임의로 설정하였기 때문에 전체 문서(리뷰 3개)는 크게 음식과 사장님과 관련한 토픽으로 구성된 것을 알 수 있습니다. 하지만, 수백, 수천만 건의 문서 데이터가 주어졌을 때 토픽 분포를 과학적으로 파악하려면 반드시 LDA가 필요합니다. 특히, 토픽별 제목은 이어지는 섹션에서 다룰 토픽별 단어 구성과 분포를 참고하여 지정해야 합니다.

리뷰 구분 내용
리뷰 1 토픽 A 100%
리뷰 2 토픽 B 100%
리뷰 3 토픽 A 60% 토픽 B 40%

토픽별 단어 분포

모든 문서(리뷰 3개)의 모든 단어는 2개의 토픽에 아래와 같은 비율로 할당됩니다. 전처리 후 전체 문서에는 총 9개의 단어가 등장했고 각 토픽 내 단어들이 등장한 비율을 단어마다 출현 횟수를 고려해 계산할 수 있습니다. 예를 들어, 음식 토픽에는 삼겹살, 맛집이라는 단어가 가장 많이 출현하였고, 사장님 관련 토픽에는 사장님, 친절이라는 단어가 빈출 된 것을 알 수 있습니다.

토픽 구분 내용
토픽 A
(음식 Topic)
삼겹살 25%, 냉면 12.5%, 맛집 25%, 추천 25%, 된장찌개 12.5%, 미남 0%, 사장님 0%, 친절 0%, 최고 0%
토픽 B
(사장님 Topic)
삼겹살 0%, 냉면 0%, 맛집 0%, 추천 0%, 된장찌개 0%, 미남 16.5%, 사장님 33%, 친절 33%, 최고 16.5%

🤝 LDA 토픽 모델링의 가정

이처럼 LDA 토픽 모델링은 여러 문서 데이터에서 토픽을 추출하기 위해 다음과 같은 가정이 있습니다. 고객이 리뷰를 작성하는 상황을 계속해서 예시로 활용해 보겠습니다. 리뷰어는 리뷰를 작성할 때 언급하고 싶은 주제를 선정하고, 이런 주제에 관해 이야기하기 위해 어떤 단어를 쓸지 결정한다는 가정입니다. 조금 더 구체적으로 각 리뷰는 아래와 같은 과정을 통해 작성되었다고 가정합니다.

순서 과정 예시
1 문서 작성 시 사용할 최대 단어 개수 지정 리뷰 데이터에서 최대 50개의 단어만 추출하여 분석
2 확률 분포를 기반으로 전체 문서 내 토픽별 비율 산출 음식점 리뷰 데이터를 예를 들었을 때, 음식 맛에 관한 토픽이 60%, 직원 태도에 관한 토픽이 40%로 구성되어 있다고 산출 가능
3 단어가 토픽 분포에서 특정 토픽을 선택할 확률 산출 어떤 단어는 60% 확률로 음식 맛에 관한 토픽을 선택할 수 있고, 40% 확률로 직원 태도에 관한 토픽 선택 가능
4 선택된 토픽에서 특정 단어가 출현할 확률 분포에 기반해 단어 선택 '음식 맛'에 관한 토픽을 선택했다면, x% 확률로 '맛집'이라는 단어 선택 가능
5 3, 4번 과정을 반복하며 문서 완성 어떤 내용의 리뷰를 쓸지 확률적으로 선택하고, 해당 주제의 리뷰에 적합한 단어를 확률적으로 선택하는 과정을 반복하여 문서를 작성했다는 가정

⚙️ LDA 토픽 모델링 프로세스

LDA 알고리즘의 프로세스는 다음과 같습니다.

Step 1. 토픽 개수 결정

전체 문서 데이터셋에서 추출할 토픽의 총 개수는 하이퍼파라미터로써 사용자가 직접 지정해야 합니다. 일반적으로 토픽 모델링에서 토픽의 개수는 k로 표현하고, 전체 문서의 개수는 M으로 표현합니다.

Step 2. 단어의 토픽 할당

LDA 알고리즘에서는 M개의 모든 문서 내 모든 단어는 k개의 토픽 중 하나로 임의로 할당하는 작업을 수행합니다. 이 작업을 마치면 모든 문서는 토픽을 갖게 되며 각 토픽은 단어 분포를 갖습니다. 모든 단어를 각각 임의의 토픽에 할당하였기 때문에 토픽 내 단어 분포의 결과는 틀린 상태입니다.

Step 3. 확률분포 기반 토픽 재할당

모든 단어에 대해 토픽을 재할당하기 위해, 모든 할당이 완료될 때까지 Step 3-1과 Step 3-2를 반복 수행합니다. LDA는 문서 내 어떤 단어가 자신은 잘못된 토픽에 할당된 상태이지만, 다른 모든 단어들은 모두 올바른 토픽에 할당되어 있다고 가정합니다. 즉, 아래 Step 3-1과 Step 3-2와 같은 기준에 따라 토픽을 재할당합니다. 아래와 같이 2개의 문서를 예로 들어보겠습니다.

문서 1

단어 사과 비행기 자동차
토픽 B B ??? A A

문서 2

단어 바나나
토픽 B B B B B

Step 3-1. 같은 문서 내 단어의 토픽 분포 비교

문서 1에서 3번째 단어인 '배'의 토픽을 할당하려고 합니다. 첫 번째 조건은 단어가 속한 문서의 단어들은 어떤 토픽에 할당되었는지 확인하는 것입니다. 문서 1 내 모든 단어들은 토픽 A와 토픽 B에 50:50의 비율로 할당되어 있기 때문에, '배'라는 단어는 토픽 A와 B 어디에도 할당될 수 있습니다. 이 조건으로는 단어를 올바르게 재할당하기 어렵기 때문에 Step 3-2로 넘어갑니다.

Step 3-2. 타 문서 내 단어의 토픽 분포 비교

2번째 기준은 재할당하려는 단어 '배'가 다른 문서까지 포함한 전체 문서에서 어떤 토픽에 할당되었는지 확인하는 것입니다. 문서 1과 문서 2에 '배'라는 단어는 모두 토픽 B에 할당되어 있기 때문에, 이 기준을 고려하면 '배'라는 단어는 토픽 B에 재 할당될 가능성이 높습니다. 이처럼 Step 3-1과 Step 3-2의 기준을 활용하여 모든 문서의 모든 단어를 하나씩 재할당합니다.

📚 참고문헌

[1] Blei, D. M., Ng, A. Y., & Jordan, M. I. (2003). Latent dirichlet allocation. Journal of machine Learning research, 3(Jan), 993-1022.
[2] Lu, F., Shen, B., Lin, J., & Zhang, H. (2013, January). A method of SNS topic models extraction based on self-adaptively LDA modeling. In 2013 Third International Conference on Intelligent System Design and Engineering Applications (pp. 112-115). IEEE.
[3] Kwon, H. J., Ban, H. J., Jun, J. K., & Kim, H. S. (2021). Topic modeling and sentiment analysis of online review for airlines. Information, 12(2), 78.

LDA 토픽 모델링 실습 코드는 아래의 포스팅을 참고해 주시길 바랍니다.

https://heytech.tistory.com/401

 

[NLP] LDA 토픽 모델링을 활용한 앱 리뷰 분석 프로젝트

📚 목차 1. 개요 2. 데이터셋 3. LDA 토픽 모델링 개념 4. LDA 토픽 모델링 시각화 5. 전체 코드 6. 코드 설명 7. 결과 해석방법 8. 인사이트 도출 1. 개요 본 프로젝트는 건강관리 앱 리뷰 텍스트마이닝

heytech.tistory.com


오늘은 LDA 토픽 모델링의 개념, 가정, 프로세스에 대해 알아봤습니다.

포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)
고맙습니다😊

728x90
반응형
Comments