2023. 7. 12. 13:47ㆍ자연어처리
자연어란? )
자연어란 우리가 일상생활에서 사용하는 언어이다. 자연어처리란 이러한 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일을 말한다.
자연어처리는 음성인식, 내용요약, 번역, 사용자의 감성분석, 텍스트분류작업,질의응답시스템,챗봇 같은 곳에서 사용되는 분야임.
최근 딥 러닝의 뛰어난 성능이 괄목할만한 성과를 얻으면서, 인공지능이 IT 분야의 중요 키워드로 떠오르고 있습니다. 자연어 처리는 기계에게 인간의 언어를 이해시킨다는 점에서 인공지능에서 가장 의미있는 연구 분야이면서도 아직도 정복되어야 할 산이 많은 분야이다.
언어 모델이란?)
언어모델이란 단어 시퀀스에 확률을 할당하는 모델을 말함. 어떤 문장들이 있을 때, 기계가 이 문장은 적절하다고 사람처럼 판단할 수 있다면 기계의 자연어 처리의 성능이 뛰어나다고 할 수 있을 것이다.
언어 모델은 언어라는 현상을 모델링하고자 단어 시퀀스에 확률을 할당하는 모델이다.
언어 모델을 만드는 방법은 크게는 통계를 이용한방법과 인공신경망을 이용한 방법으로 구분 할 수 있다.
최근에는 통계를 이용한 방법보다 인공신경망을 활용한 방법이 더욱 좋은 성능을 보여주고있는 추세이다.
최근 핫한 자연어 처리의 기술인 GPT나 BERT 또한 인공 신경망 언어 모델의 개념을 사용하여 만들어졌다.
1. 언어 모델(Language Model)
언어 모델은 단어 시퀀스에 확률을 할당(assign) 하는 일을 하는 모델입니다. 이를 조금 풀어서 쓰면, 언어 모델은 가장 자연스러운 단어 시퀀스를 찾아내는 모델입니다. 단어 시퀀스에 확률을 할당하게 하기 위해서 가장 보편적으로 사용되는 방법은 언어 모델이 이전 단어들이 주어졌을 때 다음 단어를 예측하도록 하는 것입니다.
다른 유형의 언어 모델로는 주어진 양쪽의 단어들로부터 가운데 비어있는 단어를 예측하는 언어 모델이 있습니다. 이는 문장의 가운데에 있는 단어를 비워놓고 양쪽의 문맥을 통해서 빈 칸의 단어인지 맞추는 고등학교 수험 시험의 빈칸 추론 문제와 비슷합니다. 이 유형의 언어 모델은 BERT 챕터에서 다루게 될 예정이고, 그때까지는 이전 단어들로부터 다음 단어를 예측하는 방식에만 집중합니다.
언어 모델에 -ing를 붙인 언어 모델링(Language Modeling)은 주어진 단어들로부터 아직 모르는 단어를 예측하는 작업을 말합니다. 즉, 언어 모델이 이전 단어들로부터 다음 단어를 예측하는 일은 언어 모델링입니다.
자연어 처리로 유명한 스탠포드 대학교에서는 언어 모델을 문법(grammar)이라고 비유하기도 합니다. 언어 모델이 단어들의 조합이 얼마나 적절한지, 또는 해당 문장이 얼마나 적합한지를 알려주는 일을 하는 것이 마치 문법이 하는 일 같기 때문입니다.
2. 단어 시퀀스의 확률 할당
자연어 처리에서 단어 시퀀스에 확률을 할당하는 일이 왜 필요할까요? 예를 들어보겠습니다. 여기서 대문자 P는 확률을 의미합니다.
a. 기계 번역(Machine Translation):
P(나는 버스를 탔다) > P(나는 버스를 태운다)
: 언어 모델은 두 문장을 비교하여 좌측의 문장의 확률이 더 높다고 판단합니다.
b. 오타 교정(Spell Correction)
선생님이 교실로 부리나케
P(달려갔다) > P(잘려갔다)
: 언어 모델은 두 문장을 비교하여 좌측의 문장의 확률이 더 높다고 판단합니다.
c. 음성 인식(Speech Recognition)
P(나는 메롱을 먹는다) < P(나는 메론을 먹는다)
: 언어 모델은 두 문장을 비교하여 우측의 문장의 확률이 더 높다고 판단합니다.
언어 모델은 위와 같이 확률을 통해 보다 적절한 문장을 판단합니다.
3. 주어진 이전 단어들로부터 다음 단어 예측하기
언어 모델은 단어 시퀀스에 확률을 할당하는 모델입니다. 그리고 단어 시퀀스에 확률을 할당하기 위해서 가장 보편적으로 사용하는 방법은 이전 단어들이 주어졌을 때, 다음 단어를 예측하도록 하는 것입니다.
4. 언어 모델의 간단한 직관
비행기를 타려고 공항에 갔는데 지각을 하는 바람에 비행기를 [?]라는 문장이 있습니다. '비행기를' 다음에 어떤 단어가 오게 될지 사람은 쉽게 '놓쳤다'라고 예상할 수 있습니다. 우리 지식에 기반하여 나올 수 있는 여러 단어들을 후보에 놓고 놓쳤다는 단어가 나올 확률이 가장 높다고 판단하였기 때문입니다.
그렇다면 기계에게 위 문장을 주고, '비행기를' 다음에 나올 단어를 예측해보라고 한다면 과연 어떻게 최대한 정확히 예측할 수 있을까요? 기계도 비슷합니다. 앞에 어떤 단어들이 나왔는지 고려하여 후보가 될 수 있는 여러 단어들에 대해서 확률을 예측해보고 가장 높은 확률을 가진 단어를 선택합니다. 앞에 어떤 단어들이 나왔는지 고려하여 후보가 될 수 있는 여러 단어들에 대해서 등장 확률을 추정하고 가장 높은 확률을 가진 단어를 선택합니다.
5. 검색 엔진에서의 언어 모델의 예
검색 엔진이 입력된 단어들의 나열에 대해서 다음 단어를 예측하는 언어 모델을 사용하고 있습니다.
'자연어처리' 카테고리의 다른 글
[1] 자연어처리에서의 텍스트 전처리 : 토큰화(Tokenization) (0) | 2023.07.12 |
---|---|
통계적 언어 모델(Statistical Language Model, SLM) (0) | 2023.07.12 |
[NLP 편향 논문 리뷰] Mitigating Gender Bias in Natural Language Processing: Literature Review (0) | 2023.07.11 |
[학회 기고문 리뷰] Analyzing News Article Bias using Recurrent Neural Networks and Convolutional Neural Networks. (0) | 2023.07.10 |
어텐션 메커니즘 (Attention Mechanism) (0) | 2023.07.10 |