자연어처리에 대해 잘 몰랐지만 자세히 알고 싶으셨던 분 또는 자연어 처리에 대해 궁금한 점이 있으셨던 분들은
이번 웨비나 리뷰를 주목해주시기 바랍니다 :)
제 3부 컴퓨터에게 언어를 가르치다, 자연어처리
웨비나 3부에서는 '자연어처리'에 대한 웨비나가 진행되었습니다. 이번 주제는 잡코리아의 '김성태 연구원'님이 함께해 주셨습니다.
자연어처리란?
자연어처리의 대표 문제들
자연어처리와 과거와 미래
자연어처리의 미래
순으로 진행된 웨비나 3부에 대해 설명 드리겠습니다.
1) 자연어 처리란?
자연 언어란 인공언어와 대척점에 있는 개념입니다. 두 개념의 가장 큰 차이는, '중의성'을 중심에서 드러나는데요,
① 인공언어
대표적으로 수학 공식이나 컴퓨터 언어를 뜻합니다.
중의성 발견 시, 컴파일을 못하는 에러가 발생하거나 수식 자체에 문제가 발생하게 됩니다.
= 태생적인 한계점으로, 인공언어를 구축할 경우에는 모호성을 최대한 배제할 수 있도록 합니다.
② 자연 언어
중의적인 표현이 다수 존재합니다.
단어, 문장 그리고 맥락 등은 자연스럽게 중의성을 포함하고 있기에
자연어처리의 가장 큰 난제는 이를 극복하는 것이라고 합니다.
2) 자연어처리의 대표 문제들
자연어처리 기술의 문제에 대해 말씀드리기 앞서, 앞으로 나올 내용의 이해를 돕기 위해, '토큰'이라는 개념을 먼저 정리해드리겠습니다.
'토큰'이란?
토큰은 어떤 맥락에서 쓰이느냐에 따라 의미가 달라지지만, 쉽게 단어라고 생각을 하면 이해하기 쉽습니다.
단어에 꼬리표를 붙이는 문제와, 텍스트 문장이나 문단, 혹은 더 큰 개념의 스트링을 분류하는 과정을 두 가지로 나눠서 설명드리겠습니다.
① 토큰 분류 (Token Classification)
① 토큰 클래시피케이션
품사 태깅이란, 특정 단어에 대해 해당 단어가 어떤 문법적 성격을 띄는지 맞추는 것입니다.
예를 들어 '이것은 명사다.', '이것은 동사다' 라고 분류하는 것 입니다.
이런 작업들은 초반에 완료되지 않으면, 고도화된 후 작업들에 한계가 생긴다고 합니다.
만약 토큰의 품사를 지정하는 작업을 했다면 우리는 명사로 지정된 토큰들만 모아 볼 수 있을 것입니다.
그리고 이 명사 역시 일반 명사와 고유명사로 나눠볼 수 있습니다.
토큰 분류에는 네 가지 분야로 나뉘는데요, 그 중 하나의 분야는 '개체명 인식'이라는 분야입니다.
여기서 고유명사의 경우, 텍스트에 요약을 하거나 핵심 정보를 모아 놓기 때문에 어떠한 토큰들이 이 범위 안에 포함되는지,
이 범위에 속한 개체명이 어떠한 타입을 갖고 있는 지를 맞추는 것이'개체명 인식' 이라는 분야입니다.
또한 이후 처리되는 기계 번역에 있어서도 선행되어야 하는 과정 중의 하나 입니다.
다음으로는 '의미역 분석' 분야입니다.
선행적으로 지정해둔 문법적 요소들을 파악하는 과정을 '의미역 분석'이라고 합니다.
예시로 '위원회가 노벨상을 주었다 스택트 랜드에게' 라는 문장을 본다면,
'위원회가 노벨상을 주었다, 누구에게? 스택트 랜드' 라고 말하고 있습니다.
그렇다면 에이전트 주체가 되는 명사는 커미티고, 차기 수혜자는 스트랙랜드가 되는 것입니다.
이를 역으로 생각하면, '스택트랜드가 노벨상을 커미티에게 주었다'라고 한다면 문장은 완전히 다른 뜻이 되어버립니다.
이렇게 한국어의 경우 한 단어 단어들의 활용이 다방면적으로 자유롭기에 의미역 분석은 굉장히 중요한 문제라고 볼 수 있습니다.
자연어처리 시 '대용어 복원 작업'이라고 하는 것이 필요한데요, 문장에 대명사가 무엇을 지칭하는 지를 복원하는 과정입니다.
예시 문장으로, 원숭이가 공을 가지고 노는 것을 좋아했지만, 블록을 가지고 노는 것은 싫어해서 무시했다.
왜냐하면 그 원숭이가 그것들을 재밌다는 것을 찾았기 때문이다. 여기서 그것들이 가리키는 뜻을 언어 모델이 맞추어야 하는데요,
이 문장에 대명사가 무엇인지 맞추는 작업 과정은 '대용어 복원 작업'이라고 합니다.
마지막으로 '중의성 해소' 입니다.
우리는 말을 할 때 맥락을 통해서 판단을 하게 되는데, 다의어의 경우 뜻이 굉장히 많습니다.
여기서 특정 번호를 볼 수 있는데, 단어를 구분 지을 수 있는 번호를 센스라고 합니다.
그리고 이 센스를 밝혀내는 과정이 바로 단어 '중의성 해소'라는 분야입니다.
② 텍스트 분류 (Text Classification)
기술적으로는 거의 동일한 토큰 분류를 다른 문서에 적용한 것으로 보시면 되는데요,
텍스트가 감정이 어떤지, 긍정/부정, 슬픔이나 사랑 등 어떤 내용인지 분석할 수도 있으며
뉴스 기사가 기술 관련인지, 스포츠 관련인지, 엔터테인먼트 관련인지 자동으로 분류되어 좀 더 쾌적한 사용자 환경을 구축할 수 있습니다.
질의 응답 시스템
질의 응답 시스템은 의도성을 가지고 있는데요,
구글에서 흔하게 정보 검색 하는 것처럼 정보 검색(Information retrieval) 같은 부분도 접목되어 있습니다.
따라서 대화 시스템과 관련성이 높고, 언어 모델의 성능을 판가름할 정도로 중요한 부분이라고 합니다.
자연어이해 (Natural Language Understanding)
자연어이해(NLU)에서는 '글루(GLUE)라는 task가 대표적입니다.
GLUE는 'General Language Understanding Evaluation'이라는 약자로 언어의 여러가지 특성을 시험하고,
정량적으로 성능을 알려주는 지표라고 생각하시면 좋을 것 같습니다.
3) 자연어처리의 과거와 현재
자연어처리는 컴퓨터 공학의 발전과 함께 상호적으로 고도화되었습니다.
따라서 초기에는 언어의 규칙적인 측면을 중요시했다고 합니다. 단편적인 예시로, 영어의 경우 S+V+O, S+V+C 등의 문법적 구조입니다.
위의 사진처럼 한글을 조합할 때 역시 우리는 일정한 규칙이 필요합니다.
철저한 규칙 아래 조합이 이루어지기에, 과거의 NLP에서는 큰 특징이었다고 합니다.
규칙 기반의 자연어처리 중 대표적인 예시로 'Chomsky Hierarchy'인데요, 언어학자가 만든 개념으로 튜링 머신과 이어지는 개념이라고 합니다.
regular 그래머 : 현재까지도 사용하고 있는 정규 표현식의 어원인 '정규 문법'
context-free 그래머 : 문맥에 상관없이 특정 값의 문법만 확인하는 것
규칙 기반 NLP 이후 통계 기반의 자연어처리가 시작되었습니다. 그리고 해당 사실은 컴퓨팅의 발전과 밀접한 연관이 있습니다.
컴퓨터 성능이 급속도로 고도화하면서, 이를 통계 처리에 활용해보자는 출발로 인공지능이 함께 발전을 이룩했고 NLP 역시 편승하게 된 것입니다.
관련된 모델을 아래에서 소개 드리겠습니다.
베이지안 모델 : 자연어 처리는 단어와 단어간의 의존 관계를 내포하고 있기에, 수식이 적용 되는 모델이 출시될 수 있었음.
마르코크 체인 모델 : hmm 히든 마르코크 모델을 기반으로 하는 모델로, 예전에는 형태소 분석이나 품사 태깅 용도로 사용함.
PCFG 스탠포드 파스 모델 : P(probublistic) + CFG(Context Free Grammar)의 뜻으로, 통계 기반 자연어 처리 머신 러닝 모델. 현재 딥러닝 시대에 비해서는 리소스가 적은 데이터를 가지고서도 충분한 성능을 낼 수 있어서 현재까지도 자주 사용됨.
그 이후로 단어 벡터의 유사성을 검증할 수 있는 모델이 개발되었습니다.
맥락을 감별할 수 있는 모델이 만들어지면서, 신경망 기반의 자연어처리에서 붐이 일어난 것입니다.
이와 더불어 하나의 모델이 더 있다고 한다면, 이는 시퀀셜 모델을 들 수 있습니다.
시퀀셜 모델이란, 순차적으로 정보를 누적해나가는 것입니다.
여기서 순차란, 한글은 왼쪽에서 오른쪽으로, 아랍어는 오른쪽에서 왼쪽으로 읽는 일종의 어순과 같은 일을
컴퓨터가 도맡아 하는 것이라 비유할 수 있겠습니다.
여기서 조금 더 발전시킨 개념이 바로 LSTM인데요, 이는 특정 부분의 중요도를 판단하여 기억의 우선순위를 선별한다는 것입니다.
이 개념에서 한 발짝 나아간 ELMO의 경우, LSTM을 앞 뒤로 보면서 각각의 워드 벡터와 접합해 컨텍스트를 반영한 단어가 되고,
'의사'와 같이 중의성을 가진 단어를 처리할 수 있습니다.
ELMO의 등장 이후 신경망 기반 자연어처리에서 또 한번 붐을 일으킨 모델은 바로 '트랜스포머 모델'입니다.
LSTM이 언어의 시퀀셜한 특징을 잘 반영했다고 한다면, 트랜스포머의 경우 언어의 계층적인 측면을 잘 반영했다고 보여질 수 있겠습니다.
여기서 계층적이란, 시퀀셜하기보다는 계층적인 트리 양상을 띠며 위계를 가지는 구조를 가지고 있다는 것인데, 이를 습득하게 되는 것입니다.
이 이후의 모델들은 모두 트랜스포머의 기반의 모델로 보아도 무방하며, 그 중 가장 핵심적인 모델, '버트 모델'을 소개해드리겠습니다.
버트(BERT)는 트랜스포머의 인코더만 가지고 온 모델입니다.
그럼에도 이 모델이 혁신적인 이유는 프리트레이닝 방법에서 출발합니다.
사람이 아기에게 언어를 가르치는 것 처럼 언어 모델에게도 언어를 가르쳐야 하는데요, 언어 모델에게 그 방법은 두 가지로 나뉩니다.
① MLM(Mask Language Model) : 단편적으로 말해 맥락상 빈칸을 매꾸는 역할
② NSP(Next Sentence Prediction) : 두 문장을 두고 상관관계를 가지고 있냐를 판별하는 역할
BERT 모델 이후에는 상당히 많은 모델이 생성되었는데요,
대표적으로 스탠버트나 로버트나 엑셀넷이 있을 수 있습니다.
이들은 전부 버트의 마스킹을 조금 더 복잡하게 만든 이후 언어를 발전시킨 것입니다.
특징적으로 재밌는 모델을 소개해드리자면 다음과 같습니다.
일렉트 : 컴퓨터 비전에서 나온 GAN 모델의 영감을 받아 만든 모델로, 프리트레이닝 방법을 고돠시키 모델.
바트 : GPT=디코더/버트/인코더일 때 두 요소를 복합적으로 활용한 모델.
티파이브 : 각각의 테스크를 개별적으로 바라본 이전 모델들과 달리, T5(Text to text Transformer Transfer T)
4) 자연어처리의 미래
해당 팜 모델은 규모가 큰 패스웨이 랭귀지 모델로 여러가지 태스크를 한번에 묶는 작업업을 진행하고,
이 하나의 태스크를 패스웨이들간의 규칙을 찾아내며 추론능력을 기르는 모델이라고 보시면 됩니다.
구조 역시 바트와 유사한 형태롤 지니고 있으며, 디코더도 있습니다.
다음으로는 구글의 챗봇 '람다 모델'도 있습니다.
구글의 개발자와 챗봇 모델의 대화입니다.
무엇이 가장 두렵나는 질문에 람다는 전원이 꺼지는 것이라고 답합니다.
이어서 전원이 꺼지는 것이 죽는 것 같냐는 질문엔, 정말 그렇다고 대답했습니다.
구글 개발자 중 한 사람은 람다가 자의식을 가지고 있는 것 같다고 밝혔는데,
이는 구조 자체는 GPT와 유사하지만 챗봇의 매트릭을 새롭게 정의했다는 점에서 혁신적이라고 평가 받고 있습니다.
AI 챗봇은 AI 윤리 문제로 사회적으로 큰 이슈가 되었습니다.
가장 큰 사례로 이루다 챗봇 모델을 들 수 있는데요,
구글의 경우 AI 윤리 부서가 별도로 존재한다는 사실로 사회적 파장에 대한 경각심을 심어주기도 합니다.
뉴럴 네트워크의 경우 인풋과 아웃풋이 어떻게 매핑되는지 알 수 없는 블랙박스의 한계를 가지고 있는데요,
여러가지 시험과 테스크 시험을 통해 AI의 내부구조가 어떻게 생겼는지 밝히는 과정을 진행하기도 하는데,
이를 설명 가능한 인공지능이라고 합니다.
다음은 자연어처리에 대해 질문을 주셨던 것을 기반으로 Q&A를 살펴보겠습니다.
Q& A
Q1. 한국어는 말을 할 때 맥락에 따라 다르게 쓰이는 표현들이 많고, 특히 모순표현 같은 경우는 인공지능에게 어떻게 학습시키는지 궁금합니다!
A. 자연어이해 분야를 설명드리면서 말씀드린 GLUE(General Language Understanding Evaluation)에 있는 여러 분야 중, 자연어추론 (Natural Language Inference)이라는 분야가 있습니다. 주어진 두 문장이 의미적으로 포함(entailment)관계를 가지는지, 중립적인 관계 (neutral)인지, 모순적인 관계(contradiction)인지 모델이 판단해야하는 파인튜닝 태스크로 대표적으로 MNLI(Multi-Genre Natural Langauge Inference) 데이터셋이 있습니다.
Q2. 번역된 문장에 대한 최고 적합도는 사람이 가중치로 재보정하나요? 혹은, 인공지능이 스스로 점수도 내나요?
A. 모든 기계번역 방법이 그렇다고 볼 수는 없지만, 보통 지도학습기반 기계번역에서는 매뉴얼한 정답 데이터셋이 필수입니다.
기계번역에서 사용하는 스코어링 방식은 문서 요약 방식과 유사합니다. 대표적으로는 BLEU 스코어나 ROUGE 스코어가 있습니다.
BLEU 스코어는 사람이 직접 만든 번역 결과 (정답)을 기준으로 머신이 생성해낸 문장이n-gram 단위로 얼마나 많이 유사한가 (맞추었는가), 즉 Precision을 측정하는 것과 같은 역할을 합니다. 반면, 특히 summarization에서 많이 사용하는 ROUGE 스코어는 기계가 생성해낸 표현과 사람이 만든 번역 정답을 비교했을 때, n-gram단위로 얼마나 많이 재현되었는가를 보는 것으로Recall과 같은 역할을 합니다.
Q3. 기업에서 사용되는 문서에는 텍스트, 숫자, 영문, 전문용어, 이미지, 표 등 모두 혼재 되어 있는 이런 문제도 자연어 처리로 접근할 수 있나요?
A. 여러가지 자료형이 혼재 되어있는 경우 멀티모덜(multimodal) 기반 접근방식을 취해야합니다.
보통은 표형(tabular) 데이터의 경우 그 자체를 사용하기 보다는 따로 처리하여 범주형, 수치형 등을 분류하여 처리하며 이미지 또한 별도의 모델과 결합하여 사용할 수 있습니다. 다만 자료형이 텍스트이며 내부가 숫자나 영문 전문용어들이 혼재되어 있다면 그러한 특징을 잘 처리할 수 있는 언어모델을 직접 훈련시키거나 말씀주신 특징별로 텍스트를 추출하여 따로 처리하는 방식을 권할 수 있을 것 같습니다.
Q4. 자연어처리의 모델 종류가 많은데, 어떤 데이터를 쓰는지에 따라 종류가 달라지는 건가요?
A. 각 모델별로 특징이 다르지만 특별하게 독특한 데이터를 쓰지 않는 이상은 일반적인 텍스트 처리에서 가장 좋은 성능을 보이는 모델을 사용하는 것이 올바르다고 볼수도 있습니다.
다만 처리하시는 데이터의 종류가 각자 다르므로 일반적으로 좋은 성능을 냈던 모델이 반드시 좋은 성능을 낸다고 보장할 수는 없습니다. 때문에 여러 모델들에 테스트를 해보고 경험적으로 선택하는 방식이 가장 좋다고 개인적으로 생각합니다.
안녕하세요, AI 히어로즈입니다!
AI 히어로즈 웨비나에서 세 분의 연사분들이 설명해주신 컴퓨터 비전 과 음성 AI에 이어
마지막으로 자연어처리(NLP)에 대해 살펴보겠습니다.
자연어처리에 대해 잘 몰랐지만 자세히 알고 싶으셨던 분 또는 자연어 처리에 대해 궁금한 점이 있으셨던 분들은
이번 웨비나 리뷰를 주목해주시기 바랍니다 :)
웨비나 3부에서는 '자연어처리'에 대한 웨비나가 진행되었습니다. 이번 주제는 잡코리아의 '김성태 연구원'님이 함께해 주셨습니다.
자연어처리란?
자연어처리의 대표 문제들
자연어처리와 과거와 미래
자연어처리의 미래
순으로 진행된 웨비나 3부에 대해 설명 드리겠습니다.
1) 자연어 처리란?
자연 언어란 인공언어와 대척점에 있는 개념입니다. 두 개념의 가장 큰 차이는, '중의성'을 중심에서 드러나는데요,
① 인공언어
대표적으로 수학 공식이나 컴퓨터 언어를 뜻합니다.
중의성 발견 시, 컴파일을 못하는 에러가 발생하거나 수식 자체에 문제가 발생하게 됩니다.
= 태생적인 한계점으로, 인공언어를 구축할 경우에는 모호성을 최대한 배제할 수 있도록 합니다.
② 자연 언어
중의적인 표현이 다수 존재합니다.
단어, 문장 그리고 맥락 등은 자연스럽게 중의성을 포함하고 있기에
자연어처리의 가장 큰 난제는 이를 극복하는 것이라고 합니다.
2) 자연어처리의 대표 문제들
자연어처리 기술의 문제에 대해 말씀드리기 앞서, 앞으로 나올 내용의 이해를 돕기 위해, '토큰'이라는 개념을 먼저 정리해드리겠습니다.
토큰은 어떤 맥락에서 쓰이느냐에 따라 의미가 달라지지만, 쉽게 단어라고 생각을 하면 이해하기 쉽습니다.
단어에 꼬리표를 붙이는 문제와, 텍스트 문장이나 문단, 혹은 더 큰 개념의 스트링을 분류하는 과정을 두 가지로 나눠서 설명드리겠습니다.
① 토큰 분류 (Token Classification)
① 토큰 클래시피케이션
품사 태깅이란, 특정 단어에 대해 해당 단어가 어떤 문법적 성격을 띄는지 맞추는 것입니다.
예를 들어 '이것은 명사다.', '이것은 동사다' 라고 분류하는 것 입니다.
이런 작업들은 초반에 완료되지 않으면, 고도화된 후 작업들에 한계가 생긴다고 합니다.
만약 토큰의 품사를 지정하는 작업을 했다면 우리는 명사로 지정된 토큰들만 모아 볼 수 있을 것입니다.
그리고 이 명사 역시 일반 명사와 고유명사로 나눠볼 수 있습니다.
여기서 고유명사의 경우, 텍스트에 요약을 하거나 핵심 정보를 모아 놓기 때문에 어떠한 토큰들이 이 범위 안에 포함되는지,
이 범위에 속한 개체명이 어떠한 타입을 갖고 있는 지를 맞추는 것이 '개체명 인식' 이라는 분야입니다.
또한 이후 처리되는 기계 번역에 있어서도 선행되어야 하는 과정 중의 하나 입니다.
선행적으로 지정해둔 문법적 요소들을 파악하는 과정을 '의미역 분석'이라고 합니다.
예시로 '위원회가 노벨상을 주었다 스택트 랜드에게' 라는 문장을 본다면,
'위원회가 노벨상을 주었다, 누구에게? 스택트 랜드' 라고 말하고 있습니다.
그렇다면 에이전트 주체가 되는 명사는 커미티고, 차기 수혜자는 스트랙랜드가 되는 것입니다.
이를 역으로 생각하면, '스택트랜드가 노벨상을 커미티에게 주었다'라고 한다면 문장은 완전히 다른 뜻이 되어버립니다.
이렇게 한국어의 경우 한 단어 단어들의 활용이 다방면적으로 자유롭기에 의미역 분석은 굉장히 중요한 문제라고 볼 수 있습니다.
예시 문장으로, 원숭이가 공을 가지고 노는 것을 좋아했지만, 블록을 가지고 노는 것은 싫어해서 무시했다.
왜냐하면 그 원숭이가 그것들을 재밌다는 것을 찾았기 때문이다. 여기서 그것들이 가리키는 뜻을 언어 모델이 맞추어야 하는데요,
이 문장에 대명사가 무엇인지 맞추는 작업 과정은 '대용어 복원 작업'이라고 합니다.
우리는 말을 할 때 맥락을 통해서 판단을 하게 되는데, 다의어의 경우 뜻이 굉장히 많습니다.
여기서 특정 번호를 볼 수 있는데, 단어를 구분 지을 수 있는 번호를 센스라고 합니다.
그리고 이 센스를 밝혀내는 과정이 바로 단어 '중의성 해소'라는 분야입니다.
② 텍스트 분류 (Text Classification)
기술적으로는 거의 동일한 토큰 분류를 다른 문서에 적용한 것으로 보시면 되는데요,
텍스트가 감정이 어떤지, 긍정/부정, 슬픔이나 사랑 등 어떤 내용인지 분석할 수도 있으며
뉴스 기사가 기술 관련인지, 스포츠 관련인지, 엔터테인먼트 관련인지 자동으로 분류되어 좀 더 쾌적한 사용자 환경을 구축할 수 있습니다.
질의 응답 시스템은 의도성을 가지고 있는데요,
구글에서 흔하게 정보 검색 하는 것처럼 정보 검색(Information retrieval) 같은 부분도 접목되어 있습니다.
따라서 대화 시스템과 관련성이 높고, 언어 모델의 성능을 판가름할 정도로 중요한 부분이라고 합니다.
자연어이해(NLU)에서는 '글루(GLUE)라는 task가 대표적입니다.
GLUE는 'General Language Understanding Evaluation'이라는 약자로 언어의 여러가지 특성을 시험하고,
정량적으로 성능을 알려주는 지표라고 생각하시면 좋을 것 같습니다.
3) 자연어처리의 과거와 현재
자연어처리는 컴퓨터 공학의 발전과 함께 상호적으로 고도화되었습니다.
따라서 초기에는 언어의 규칙적인 측면을 중요시했다고 합니다. 단편적인 예시로, 영어의 경우 S+V+O, S+V+C 등의 문법적 구조입니다.
위의 사진처럼 한글을 조합할 때 역시 우리는 일정한 규칙이 필요합니다.
철저한 규칙 아래 조합이 이루어지기에, 과거의 NLP에서는 큰 특징이었다고 합니다.
규칙 기반의 자연어처리 중 대표적인 예시로 'Chomsky Hierarchy'인데요, 언어학자가 만든 개념으로 튜링 머신과 이어지는 개념이라고 합니다.
regular 그래머 : 현재까지도 사용하고 있는 정규 표현식의 어원인 '정규 문법'
context-free 그래머 : 문맥에 상관없이 특정 값의 문법만 확인하는 것
규칙 기반 NLP 이후 통계 기반의 자연어처리가 시작되었습니다. 그리고 해당 사실은 컴퓨팅의 발전과 밀접한 연관이 있습니다.
컴퓨터 성능이 급속도로 고도화하면서, 이를 통계 처리에 활용해보자는 출발로 인공지능이 함께 발전을 이룩했고 NLP 역시 편승하게 된 것입니다.
관련된 모델을 아래에서 소개 드리겠습니다.
베이지안 모델 : 자연어 처리는 단어와 단어간의 의존 관계를 내포하고 있기에, 수식이 적용 되는 모델이 출시될 수 있었음.
마르코크 체인 모델 : hmm 히든 마르코크 모델을 기반으로 하는 모델로, 예전에는 형태소 분석이나 품사 태깅 용도로 사용함.
PCFG 스탠포드 파스 모델 : P(probublistic) + CFG(Context Free Grammar)의 뜻으로, 통계 기반 자연어 처리 머신 러닝 모델. 현재 딥러닝 시대에 비해서는 리소스가 적은 데이터를 가지고서도 충분한 성능을 낼 수 있어서 현재까지도 자주 사용됨.
그 이후로 단어 벡터의 유사성을 검증할 수 있는 모델이 개발되었습니다.
맥락을 감별할 수 있는 모델이 만들어지면서, 신경망 기반의 자연어처리에서 붐이 일어난 것입니다.
이와 더불어 하나의 모델이 더 있다고 한다면, 이는 시퀀셜 모델을 들 수 있습니다.
시퀀셜 모델이란, 순차적으로 정보를 누적해나가는 것입니다.
여기서 순차란, 한글은 왼쪽에서 오른쪽으로, 아랍어는 오른쪽에서 왼쪽으로 읽는 일종의 어순과 같은 일을
컴퓨터가 도맡아 하는 것이라 비유할 수 있겠습니다.
여기서 조금 더 발전시킨 개념이 바로 LSTM인데요, 이는 특정 부분의 중요도를 판단하여 기억의 우선순위를 선별한다는 것입니다.
이 개념에서 한 발짝 나아간 ELMO의 경우, LSTM을 앞 뒤로 보면서 각각의 워드 벡터와 접합해 컨텍스트를 반영한 단어가 되고,
'의사'와 같이 중의성을 가진 단어를 처리할 수 있습니다.
ELMO의 등장 이후 신경망 기반 자연어처리에서 또 한번 붐을 일으킨 모델은 바로 '트랜스포머 모델'입니다.
LSTM이 언어의 시퀀셜한 특징을 잘 반영했다고 한다면, 트랜스포머의 경우 언어의 계층적인 측면을 잘 반영했다고 보여질 수 있겠습니다.
여기서 계층적이란, 시퀀셜하기보다는 계층적인 트리 양상을 띠며 위계를 가지는 구조를 가지고 있다는 것인데, 이를 습득하게 되는 것입니다.
이 이후의 모델들은 모두 트랜스포머의 기반의 모델로 보아도 무방하며, 그 중 가장 핵심적인 모델, '버트 모델'을 소개해드리겠습니다.
버트(BERT)는 트랜스포머의 인코더만 가지고 온 모델입니다.
그럼에도 이 모델이 혁신적인 이유는 프리트레이닝 방법에서 출발합니다.
사람이 아기에게 언어를 가르치는 것 처럼 언어 모델에게도 언어를 가르쳐야 하는데요, 언어 모델에게 그 방법은 두 가지로 나뉩니다.
① MLM(Mask Language Model) : 단편적으로 말해 맥락상 빈칸을 매꾸는 역할
② NSP(Next Sentence Prediction) : 두 문장을 두고 상관관계를 가지고 있냐를 판별하는 역할
BERT 모델 이후에는 상당히 많은 모델이 생성되었는데요,
대표적으로 스탠버트나 로버트나 엑셀넷이 있을 수 있습니다.
이들은 전부 버트의 마스킹을 조금 더 복잡하게 만든 이후 언어를 발전시킨 것입니다.
특징적으로 재밌는 모델을 소개해드리자면 다음과 같습니다.
일렉트 : 컴퓨터 비전에서 나온 GAN 모델의 영감을 받아 만든 모델로, 프리트레이닝 방법을 고돠시키 모델.
바트 : GPT=디코더/버트/인코더일 때 두 요소를 복합적으로 활용한 모델.
티파이브 : 각각의 테스크를 개별적으로 바라본 이전 모델들과 달리, T5(Text to text Transformer Transfer T)
4) 자연어처리의 미래
이 하나의 태스크를 패스웨이들간의 규칙을 찾아내며 추론능력을 기르는 모델이라고 보시면 됩니다.
구조 역시 바트와 유사한 형태롤 지니고 있으며, 디코더도 있습니다.
다음으로는 구글의 챗봇 '람다 모델'도 있습니다.
구글의 개발자와 챗봇 모델의 대화입니다.
무엇이 가장 두렵나는 질문에 람다는 전원이 꺼지는 것이라고 답합니다.
이어서 전원이 꺼지는 것이 죽는 것 같냐는 질문엔, 정말 그렇다고 대답했습니다.
구글 개발자 중 한 사람은 람다가 자의식을 가지고 있는 것 같다고 밝혔는데,
이는 구조 자체는 GPT와 유사하지만 챗봇의 매트릭을 새롭게 정의했다는 점에서 혁신적이라고 평가 받고 있습니다.
AI 챗봇은 AI 윤리 문제로 사회적으로 큰 이슈가 되었습니다.
가장 큰 사례로 이루다 챗봇 모델을 들 수 있는데요,
구글의 경우 AI 윤리 부서가 별도로 존재한다는 사실로 사회적 파장에 대한 경각심을 심어주기도 합니다.
뉴럴 네트워크의 경우 인풋과 아웃풋이 어떻게 매핑되는지 알 수 없는 블랙박스의 한계를 가지고 있는데요,
여러가지 시험과 테스크 시험을 통해 AI의 내부구조가 어떻게 생겼는지 밝히는 과정을 진행하기도 하는데,
이를 설명 가능한 인공지능이라고 합니다.
다음은 자연어처리에 대해 질문을 주셨던 것을 기반으로 Q&A를 살펴보겠습니다.
Q1. 한국어는 말을 할 때 맥락에 따라 다르게 쓰이는 표현들이 많고, 특히 모순표현 같은 경우는 인공지능에게 어떻게 학습시키는지 궁금합니다!
A. 자연어이해 분야를 설명드리면서 말씀드린 GLUE(General Language Understanding Evaluation)에 있는 여러 분야 중, 자연어추론 (Natural Language Inference)이라는 분야가 있습니다. 주어진 두 문장이 의미적으로 포함(entailment)관계를 가지는지, 중립적인 관계 (neutral)인지, 모순적인 관계(contradiction)인지 모델이 판단해야하는 파인튜닝 태스크로 대표적으로 MNLI(Multi-Genre Natural Langauge Inference) 데이터셋이 있습니다.
Q2. 번역된 문장에 대한 최고 적합도는 사람이 가중치로 재보정하나요? 혹은, 인공지능이 스스로 점수도 내나요?
A. 모든 기계번역 방법이 그렇다고 볼 수는 없지만, 보통 지도학습기반 기계번역에서는 매뉴얼한 정답 데이터셋이 필수입니다.
기계번역에서 사용하는 스코어링 방식은 문서 요약 방식과 유사합니다. 대표적으로는 BLEU 스코어나 ROUGE 스코어가 있습니다.
BLEU 스코어는 사람이 직접 만든 번역 결과 (정답)을 기준으로 머신이 생성해낸 문장이n-gram 단위로 얼마나 많이 유사한가 (맞추었는가), 즉 Precision을 측정하는 것과 같은 역할을 합니다. 반면, 특히 summarization에서 많이 사용하는 ROUGE 스코어는 기계가 생성해낸 표현과 사람이 만든 번역 정답을 비교했을 때, n-gram단위로 얼마나 많이 재현되었는가를 보는 것으로Recall과 같은 역할을 합니다.
Q3. 기업에서 사용되는 문서에는 텍스트, 숫자, 영문, 전문용어, 이미지, 표 등 모두 혼재 되어 있는 이런 문제도 자연어 처리로 접근할 수 있나요?
A. 여러가지 자료형이 혼재 되어있는 경우 멀티모덜(multimodal) 기반 접근방식을 취해야합니다.
보통은 표형(tabular) 데이터의 경우 그 자체를 사용하기 보다는 따로 처리하여 범주형, 수치형 등을 분류하여 처리하며 이미지 또한 별도의 모델과 결합하여 사용할 수 있습니다. 다만 자료형이 텍스트이며 내부가 숫자나 영문 전문용어들이 혼재되어 있다면 그러한 특징을 잘 처리할 수 있는 언어모델을 직접 훈련시키거나 말씀주신 특징별로 텍스트를 추출하여 따로 처리하는 방식을 권할 수 있을 것 같습니다.
Q4. 자연어처리의 모델 종류가 많은데, 어떤 데이터를 쓰는지에 따라 종류가 달라지는 건가요?
A. 각 모델별로 특징이 다르지만 특별하게 독특한 데이터를 쓰지 않는 이상은 일반적인 텍스트 처리에서 가장 좋은 성능을 보이는 모델을 사용하는 것이 올바르다고 볼수도 있습니다.
다만 처리하시는 데이터의 종류가 각자 다르므로 일반적으로 좋은 성능을 냈던 모델이 반드시 좋은 성능을 낸다고 보장할 수는 없습니다. 때문에 여러 모델들에 테스트를 해보고 경험적으로 선택하는 방식이 가장 좋다고 개인적으로 생각합니다.
자연어처리의 과거와 미래 강연을 해주신 김성태 연구원님께 감사의 인사를 전하며,
이것으로 AI 히어로즈의 제 3회 웨비나 리뷰를 마치겠습니다:)
*모든 이미지 출처: 김성태 연구원님 강연 자료
AI 서비스 도입은 AI HEORES!
Connecting Business with AI Service
AI HEROES