Hey Tech
[NLP] 언어모델(Language Model)의 개념 및 특징 본문
📌 Text 빅데이터분석 플랫폼 베타테스트 참가자 모집 중!(네이버페이 4만 원 전원 지급)
👋 안녕하세요, 코딩이 필요 없는 AI/빅데이터 분석 All in One 플랫폼 <DATA101> 개발팀입니다.
😊 저희 서비스를 사용해 보시고 경험담을 들려주세요 :)
💸 참여해 주신 "모든" 분들께 네이버페이 4만 원 쿠폰을 지급해 드립니다.
👨💻 참여 희망 시 카톡플러스친구 1:1 채팅 or 인스타그램 DM 부탁드립니다 :)
📆 참여기간 : 11/25(월)~11/29(금) 11:00~21:00 중 택1 (1시간 1타임)
👉 참여장소 : 강남역 인근 스터디카페 미팅Room
📍 소요시간 : 총 40분 내외(서비스 체험 및 인터뷰 포함)
✅ 참가조건 : Text 빅데이터 분석 업무 경험자
👉 참가 가능일정 조회하기 : https://url.kr/n8k8gu
- 카톡플친 : http://pf.kakao.com/_SxltHG/chat
- 인스타그램 : https://www.instagram.com/data101.official/
본 포스팅에서는 통계학적 언어 모델의 개념 및 특징에 대해 알아봅니다.
📚 목차
1. 개념
2. 확률적 표현
3. 적용분야
1. 개념
1.1. 개요
언어 모델(Language Model)은 문장이 얼마나 자연스러운지 확률적으로 계산함으로써 문장 내 특정 위치에 출현하기 적합한 단어를 확률적으로 예측하는 모델입니다. 더욱 쉽게 설명하자면, 언어 모델은 문장 내 앞서 등장한 단어를 기반으로 뒤에 어떤 단어가 등장해야 문장이 자연스러운지 판단하는 도구입니다.
언어 모델은 크게 통계학적 언어 모델과 인공신경망 기반의 언어 모델이 있습니다. 최근에는 BERT, GPT-3와 같은 인공신경망 기반의 언어 모델의 성능이 뛰어나 대부분의 자연어처리 문제에서는 인공신경망 기반의 언어 모델을 사용합니다. 본 포스팅에서는 통계학 기반의 언어 모델에 대해 다루고, 향후에 인공신경망 기반의 언어 모델에 대해 다룹니다.
1.2. 예시
예시를 통해 언어 모델의 개념에 대해 더욱 쉽게 알아봅니다.
"비행기를 타기 위해 공항을 가는데 차가 너무 막혀서 결국 비행기를 ???"
사람은 이 문장에서 '비행기를' 단어 뒤에 이어질 물음표(???)에 들어갈 단어로 '놓쳤다'를 쉽게 예측할 수 있습니다. 왜냐하면 우리는 수많은 단어와 문장을 듣고 쓰고 말하며 언어능력을 학습해왔기 때문에, 확률적으로 '놓쳤다'라는 단어가 가장 적합하다고 판단할 수 있는 것이죠.
마찬가지로, 해당 문장을 기계(=언어 모델)에게 보여주고 물음표에 올 적합한 단어를 예측하라고 하면 어떻게 될까요? 기계 역시 사람과 같은 프로세스로 동작합니다. 먼저, 언어 모델은 텍스트 기반의 수많은 문장을 통해 어떤 단어가 어떤 어순으로 쓰인 것이 가장 자연스러운 문장인지 학습합니다. 이를 통해 언어 모델은 문장이 주어졌을 때 앞뒤에 주어진(=어순) 단어 조합을 기반으로 가장 높은 확률로 등장할 만한 단어를 출력해 주는 것이죠.
2. 확률적 표현
확률적 표현을 통해 언어 모델의 개념에 대해 더욱 자세히 알아봅니다. 먼저, 단어 여러 개가 주어졌을 때 뒤이어 등장할 단어를 확률적으로 표현하는 방법을 다루고, 이어서 문장 자체를 확률적으로 표현하는 방법을 알아봅니다.
2.1. 단어 예측의 확률적 표현
총 \(n\)개의 단어로 구성된 문장에서, \((n-1)\)개의 단어가 주어졌을 때, \(n\)번째 위치에 출현할 단어의 예측을 확률적으로 표현하면 다음과 같습니다.
$$ P(w_n | w_1, w_2, w_3, ...., w_{n-1}) $$
여기서 \(P\)는 확률(Probability)을, \(|\)는 조건부 확률(Conditional Probability)을, \(w\)는 하나의 단어(Word)를 의미합니다.
2.2. 문장 자체의 확률적 표현
수학에서 시퀀스(Sequence)는 순서를 고려하여 나열된 여러 객체들의 묶음을 의미한다는 점에서, 문장은 어순을 고려하여 여러 단어로 이루어진 단어 시퀀스(Word Sequence)라고도 부릅니다. \(n\)개의 단어로 구성된 단어 시퀀스\((W)\)를 확률적으로 표현하면 다음과 같습니다.
$$ P(W) = P(w_1, w_2, w_3, ...., w_n) $$
단어 시퀀스 자체의 확률은 모든 단어\((w_1, w_2, w_3, ...., w_n)\)의 예측이 완료되었을 때, 즉 문장이 완성되었을 때 알 수 있습니다. 즉, 첫 번째 단어가 주어졌을 때 2번째 단어가 등장할 확률, 2번째 단어까지 주어졌을 때 3번째 등장할 단어의 확률, ..., \((n-1)\)번째 단어까지 주어졌을 때 \(n\)번째 단어가 등장할 확률을 모두 곱한 것이 단어 시퀀스 자체의 확률입니다. 따라서 단어 시퀀스를 확률적으로 표현하면 다음과 같습니다.
$$ P(W) = P(w_1)*P(w_2|w_1)*P(w_3|w_1, w_2)*P(w_4|w_1, w_2, w_3)*...*P(w_n | w_1, w_2, w_3, ...., w_{n-1}) $$
위 식을 곱연산(product operator)을 활용해 표현하면 다음과 같습니다.
$$ \displaystyle\prod_{i=1}^{n} P(w_i | w_1, w_2, w_3, ...., w_{i-1}) $$
3. 활용분야
언어 모델의 활용 분야는 무궁무진합니다. 예를 들어, 기계 번역(Machine Translation), 오타 교정(Spell Correction), 음성인식(Speech Recognition), 검색어 추천(Keyword Search Recommendation) 등에 활용되고 있습니다. 간단한 사례와 함께 몇 가지 활용 예시를 알아봅니다.
3.1. 기계 번역(Machine Translation)
아래와 같이 번역기를 돌린 2가지 문장이 있다고 가정했을 때, 좌측 문장이 우측 문장보다는 자연스러운 문장이죠. 즉, 언어 모델은 좌측 문장이 우측 문장보다 높은 확률을 갖는다고 판단합니다.
\(P\)("나는 지하철을 탔다") > \(P\)("나는 지하철을 태웠다")
3.2. 오타 교정(Spell Correction)
키보드 자판의 위치로 인해 아래와 같이 '알아갔다'를 '랄아갔다'로 오타가 발생할 수 있죠. 문장을 보면 오타가 발생한 우측 문장보다는 좌측 문장이 자연스러운 문장임을 알 수 있죠. 즉, 언어 모델은 좌측 문장의 확률이 우측 문장보다 높다고 판단합니다.
\(P\)("자연어처리 방법론을 알아갔다") > \(P\)("자연어처리 방법론을 랄아갔다")
3.3. 음성 인식(Speech Recognition)
"신라"는 소리 내어 발음하면 [실라]입니다. 언어 모델은 이처럼 실제 텍스트와 발음 간의 차이를 교정해 주는 데 활용할 수 있습니다.
\(P\)("신라의 달밤") > \(P\)("실라의 달밤")
3.4. 검색어 추천(Keyword Search Recommendation)
네이버나 구글 검색 시 위와 같이 자동완성 기능을 한 번쯤은 꼭 보셨을 겁니다. 이 역시 언어 모델을 통해 사용자가 입력한 단어를 기반으로 뒤이어 입력할 만한 단어를 추천해 줄 수 있습니다.
📚 참고할 만한 포스팅
1. [NLP] Bag of Words(BoW) 개념 및 실습
2. [NLP] 문서 단어 행렬(DTM) 개념 이해
3. [NLP] TF-IDF 개념 및 계산 방법
4. [NLP] Word Embedding의 이해: (1) 희소표현 및 밀집표현
5. [NLP] 언어모델(Language Model)의 개념 및 특징
6. [NLP] N-gram 언어 모델의 개념, 종류, 한계점
7. [NLP] 언어모델의 평가지표 'Perplexity' 개념 및 계산방법
8. [NLP] Word2Vec: (1) 개념
9. [NLP] Word2Vec: (2) CBOW 개념 및 원리
10. [NLP] Word2Vec: (3) Skip-gram
11. [NLP] Word2Vec: (4) Negative Sampling
12. [NLP] 문서 유사도 분석: (1) 코사인 유사도(Cosine Similarity)
13. [NLP] 문서 유사도 분석: (2) 유클리디안 거리(Euclidean Distance)
14. [NLP] 문서 유사도 분석: (3) 자카드 유사도(Jaccard Similarity)
👨💻 맞춤 서비스
저희 AI/BigData 분석 솔루션 전문 브랜드 <데이터워너원 DATA101>에서는
맞춤형 데이터 수집부터 통계분석, 텍스트마이닝, AI 모델링, 논문작성을 지원해 드립니다 :)
자세한 내용은 아래 링크를 참고해 주세요!
오늘은 통계학 기반 언어 모델의 개념과 특징에 대해 알아봤습니다.
포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :)
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다.
고맙습니다😊
'AI & 빅데이터 > 자연어처리(NLP)' 카테고리의 다른 글
[NLP] 언어모델의 평가지표 'Perplexity' 개념 및 계산방법 (0) | 2022.04.05 |
---|---|
[NLP] N-gram 언어 모델의 개념, 종류, 한계점 (0) | 2022.04.04 |
[NLP] TF-IDF 개념 및 계산 방법(+Python 코드) (6) | 2022.03.25 |
[NLP] 문서 단어 행렬(DTM) 개념 이해 (0) | 2022.03.24 |
[NLP] Bag of Words(BoW) 개념 및 실습 (0) | 2022.03.23 |