자연어처리는 다양한 분야가 공존하며 수많은 종류의 테스크와 방법론이 있습니다. 겉으로 보기엔 이질적으로 느껴지지만 본질은 모두 같습니다. 자연어처리의 전반적인 내용을 이해하고 그의 본질이 무엇인지 고민하고자 합니다.

보충 설명을 위해 각주를 사용했습니다.


목차


1. 자연어처리란?

인공지능

인류는 오래 전부터 자동기계와 같이 스스로 동작하는 기계에 관심이 많았다. 현대는 자동기계를 넘어 기계가 사람과 똑같이 생각하길 원한다. 과학과 공학에서 인공지능(Artificial Intelligence)이 등장했고 앨런 튜닝이 인간과 구별할 수 없는 기계의 능력을 측정하는 튜닝테스트를 제시하면서 급속도로 발전했다1.

사람이 생각하는 방식을 이해하는 것도 어려운데 지능을 가지는 기계(agent)까지 만드는 일은 훨씬 더 어렵다. 인공지능은 철학(Philosophy), 수학(Mathematics), 인지과학(Cognitive Science), 컴퓨터과학(Computer Science), 신경과학(Neuroscience), 언어학(Linguistics) 등 다양한 학계의 관점을 빌린다. 철학자는 ‘마음은 어떻게 동작하는가’ 등 인공지능과 관련된 물음에 대해 오래 전부터 연구를 해왔고, 인공지능을 약인공지능(weak AI)과 강인공지능(strong AI)로 두 가지로 정의한다. 아직까지는 사람과 같이 진짜 생각을 할 수 있는 강인공지능이 아닌, 특정한 일을 수행하는 약인공지능을 대상으로 주로 연구를 한다.

사람은 자신의 생각을 남에게 전달하기 위해서 언어를 사용한다. 기계(컴퓨터)가 사람을 흉내내기 위해서는 먼저 사람의 언어인 자연어를 이해해야 한다. 컴퓨터가 자연어를 이해하는 능력을 연구하는 학문이 자연어처리(Natural Language Processing; NLP)이다. 자연어처리는 기계와 인간 사이, 그리고 인간과 인간 사이의 중요한 인터페이스 역할을 한다. 또한, 튜닝테스트의 주요 문제 중 하나로 그 자체에 강인공지능의 방향성이 있기에 인공지능에서도 중요한 축으로 자리잡혀 있다.

다학제 연구

인공지능과 같이 자연어처리도 다양한 학문의 서브 필드인 다학제(multidisciplinary) 연구이다. 자연어처리는 인공지능으로부터 나왔고, 크게 컴퓨터과학과 언어학을 기반으로 한다13. 언어학에서 특히 Syntax와 Semantics 연구는 자연어처리의 기초가 된다2. 최근 인공지능의 트렌드인 기계학습과 딥러닝 기술도 자연어처리는 적극 활용한다. 수학과 통계학은 모든 학계와 공통 분모를 가지는 것을 확인할 수 있는데 그 중요성을 대변한다.

자연어처리에는 다양한 하위 토픽들이 있다. 음성처리(Speech Processing), 자연어이해(Natural Language Understanding; NLU), 그리고 자연어생성(Natural Language Generation; NLG)으로 구분된다. 음성처리는 음성인식(Speech Recognition)과 음성합성(Speech Synthesis)을 포함한다. 사람의 말은 소리 신호로부터 시작하기 때문에 음성처리가 필요하다. 음성을 텍스트로 변환한 뒤에는 텍스트와 똑같이 자연어처리를 한다. 자연어이해는 깊은 의미 분석 위주의 문제 부류이다.

데이터 마이닝(Data Mining)은 대용량 데이터에서 유용한 패턴이나 지식을 추출하는 프로세스를 연구하는 학문으로 컴퓨터과학에서 큰 부분을 차지한다. 텍스트 마이닝(Text Mining/Analytics)은 데이터 마이닝의 분야 중 하나로 정형 타입이 아닌 텍스트와 같은 비정형 데이터를 대상으로 높은 품질의 정보나 지식의 추출을 목적으로 한다. 자연어처리는 텍스트를 분석하는 측면에서 보면 텍스트 마이닝과 공통 부분이 있지만 각자 학계의 고유한 관점(perspective)과 테스크를 가진다. 텍스트 마이닝은 강건한 통계 방법론에 집중하고, 자연어처리는 언어학 기반의 고도의 분석 기술에 초점을 둔다3,4.


2. 자연어처리 테스크

자연어처리가 다학제 연구인만큼 다양한 세부적인 테스크가 있다. 여기서는 Linguistics, Text Mining, Artificial Intelligence(AI)라는 세 가지 범주에서 테스크를 구분했다5. Linguistics와 Text Mining에는 더 큰 문제를 풀기 위한 서브 테스크가 많고, AI 테스크는 주로 그 자체의 (큰) 문제로 정의된다.

Linguistics

언어학에서는 자연어를 이해하고 생성하는 문제를 여러 단계의 언어 계층 구조로 분해해서 해결한다12. 예를 들어, Phonology 분석으로 여러 개의 phonemes를 하나의 morpheme으로 만들고, Morphology 분석으로 여러 개 또는 하나의 morpheme을 하나의 word로 구성한다. 이는 인지과학 프로세스와 관련이 있다.

각 단계에 맞게 자연어처리 테스크를 나열해보았다.

  • 음운론 (Phonetics and Phonology) – 발화의 소리 특징 및 패턴을 연구
    • Speech recognition
    • Speech segmentation
    • Speech synthesis
  • 형태론 (Morphology) – 형태소 의미와 구조의 이해를 연구
    • Morphological segmentation
    • Part-of-speech tagging
    • Lemmatization
    • Stemming
  • 통사론 (Syntax) – 단어/구/문장 구조를 연구
    • Grammar induction
    • Sentence breaking
    • Parsing
  • 의미론 (Semantics) – 언어의 의미(meaning)를 연구
    • Lexical semantics (단어 기준)
      • Distributional semantics – 단어 의미는 빈번한 이웃 단어에 결정
      • Word sense disambiguation
      • Named entity recognition (NER)
      • Sentiment analysis
      • Terminology extraction
    • Relational semantics (문장 기준)
      • Relationship extraction
      • Semantic Parsing
      • Semantic Role Labelling
      • Semantic Annotation
  • 담화론 (Discourse) – 문장의 묶음(담화)를 연구
    • Coreference resolution
    • Anaphora resolution
    • Textual entailment
    • Topic segmentation

Text Mining

Text Mining은 데이터 마이닝의 KDD (Knowledge Discovery in Databases) 프로세스를 그대로 따르며 정보 검색정보 추출에 집중한다. Information Retrieval은 Text Mining과 구별되지만 여기서는 Text Mining의 범주에 포함시킨다. Retrieval은 정보 선택을, Mining은 지식 추출에 초점을 맞춘다.

  • Information Retrieval (IR)
    • Search and Ranking
    • Filtering (Recommendation)
    • Categorization
    • Summarization
  • Information Extraction (IE)
    • Entity extraction
    • Relationship extraction
    • Event extraction
    • Link analysis
    • Coreference resolution
  • Clustering
  • Topic Analysis
  • Visualization

AI (Artificial Intelligence)

AI 항목에는 깊은 레벨의 언어 분석이 필요한 고차원 테스크로 구성된다. 이들은 많은 서브 테스크들을 포함하며 자연어 이해에서부터 생성에 이르기에 대부분 어려운 테스크이다. 이들은 주로 자연어생성(NLG)에 속한다.

  • Automatic Summarization / Paraphracing
  • Natural Language Generation
  • Dialogue System (=Conversational Agent, =Chatbot)
  • Machine Translation
  • Question Answering

3. 자연어처리 방법론

시대의 흐름에 따라 자연어처리 방법론의 주류가 바뀌기도 하고 새로운 방법론이 등장하기도 했다. 자연어처리가 처음 생겨난 1950년 이후로 Symbolic, Statistic, 그리고 Neural 방법론으로 크게 세 번의 흐름이 있었다.

Symbolic 방법론 (1950s ~ 1990s 초기)

자연어처리 초기에는 Noam Chomsky의 언어학 이론이 풍미하면서 이를 기반으로 한 방법론이 유행했다. 사람의 믿음으로 근거했기에 이를 Rationalist 이라고 불리고 사람이 직접 규칙 또는 문법을 설계했기에 Symbolic 이라고도 불린다. 초기의 자연어처리 시스템은 이론에 근거한 규칙과 휴리스틱 규칙을 직접 일일이 설계하면서 구축했다6.

이러한 사람의 손길이 짙은 Symbolic NLP으로 구축된 자연어처리 시스템은 화이트박스로 유지보수하기 쉬운 장점이 있다. 하지만, 전문가라 하더라도 (사람이기에) 어떤 현상을 정교하거나 formal하지 않고 추상화된 형태로 표현해 세밀함이 떨어지고, 특정 테스크에 종속되는 단점이 있다.

  • 키워드
    • noam chomsky linguistic theories
    • hand-crafted rules
    • domain expert
    • knowledge engineering
    • transparency and interpretability

Statistical 방법론 (1990s ~ 2010s)

1980년대부터 통계적 방법론이 다시금 유행하기 시작했다7. 다양한 코퍼스가 등장과 함께 통계 모델로 기존의 규칙 기반의 성능을 능가하는 소식이 들리기 시작했고, 1990년에 이르러서는 자연어처리 방법론의 주류가 되었다. 이러한 통계적 방법론은 Statistical, Data-driven, Corpus-based 라고 불리고 경험(데이터)에 근거하여 의사결정을 하기에 Empirical 이라고도 불린다8. 코퍼스(학습 데이터)로부터 규칙을 자동으로 학습하는 특징을 가진다9. 이러한 의미를 강조하기 위해 머신러닝(machine learning)이라고 많이 불린다.

Statistical 방법이 규칙을 자동으로 만들어 강건한 모델이 되었지만, 자질 설계는 여전히 사람의 손길이 필요했다. 전문가라 하더라도 사람이 설계한 자질은 특정 현상에만 특화(over-specified)되기 쉽다. 또한, 아주 몇몇의 테스크를 빼고는 대부분 인간 성능에는 도달하지 못했다.

머신러닝의 인기에도 불구하고 Symbolic 방법도 여전히 필요하다. 머신러닝의 자질 설계나 전처리 혹은 후처리에 심볼릭 방법이 사용된다. 무엇보다도 학습 데이터가 부족할 때는 머신러닝은 사용하지 못할 수도 있다.

  • 키워드
    • basic representation: ‘one-hot’
    • count-based statistical model
    • discriminative model
    • shallow machine learning
    • broad, but shallow, surface-level coverage of text

Neural 방법론 (현재)

학습 데이터의 증가, 최적화 및 신경망 알고리즘의 개선, 그리고 GPU 컴퓨팅의 발달로 깊은 신경망까지 학습이 가능해져 Neural 방법론의 시대가 시작되었다. 깊은 신경망(deep neural network)이기에 딥러닝(deep learning)이라 불린다. 이미지를 시작으로 음성, 자연어처리 테스크에도 딥러닝 방법론이 기존 Statistical 방법론을 뛰어넘었다.

Neural 방법론은 엔드-투-엔드의 패러다임으로 자질 설계와 언어적 전처리를 따로 할 필요가 없다10. 또한, 서브 시스템이 없기 때문에 여러 단계에 걸친 에러 전파(propagate)가 없다. 깊은 구조를 쌓을 수 있는 신경망 구조의 특징으로 계층적이고 고급(high-level) 자질을 자동으로 생성하여 높은 성능을 가지는 장점이 있다. 또한, 도메인 사이의 벽도 거의 허물었다. 알고리즘과 인프라의 발전으로 앞으로 Neural 방법론은 발전 가능성이 매우 높다.

  • 키워드
    • end-to-end deep learning
    • automatic feature extraction
    • distributed representation (embedding)

4. 자연어처리의 어려움

언어를 매일 사용하는 사람도 언어의 본질을 추상적으로만 이해할 뿐 정교한 formal한 형태로 표현하지 못한다. 자연어처리는 강인공지능의 목표와 맞닿아있고 ill-defined 문제로 가득하다. 다학제 연구인만큼 다양한 관점에서의 솔루션이 필요하다. 자연어처리가 어려운 이유를 언어학을 중심으로 살펴보자.

Ambiguity

중의성(ambiguity)는하나의 형태가 여러 개의 의미를 가지는 것으로 명확한 이해를 위해서 하나로 선택해야 한다. 단어의 의미뿐만 아니라 문장 구조 등 다양한 형태로 중의성이 발생한다. 위의 언어학 계층 구조에서 상위 단계로 올라갈수록 중의성은 더 커진다.

  • Phonetic: 소리 중의성 – ambiguous sound – ex. write vs. right?
  • Lexical Category: 품사 중의성 – ambiguous POS – ex. design = noun vs. verb?
  • Semantics: 의미 중의성
    • (Lexical) ambiguous sense – ex. apple = fruit vs. company?
  • Syntax/Structural: 구/문장 구조 중의성11
    • ambiguous modification – ex. natural language processing = processing of natural language vs. natural processing of language
    • ambiguous prepositional phrase (PP) attachment – ex. a man saw a boy with a telephone. => saw-with vs. a boy-with

Entity Resolution

  • Anaphora resolution (=Referential ambiguity) – ex. John plays chess with Kim. He won. => He = John vs. Kim?
  • Coreference resolution – ex. John smith has … . was by Mr. smith. … He go with J.S smith. => John smith = Mr.smith = J.S smith

Common knowledge

언어는 오랜 시간동안 경제성을 중심으로 최적화되었다. 형태 및 구조의 변화, 빈번한 구조의 생략 등 다양하게 방식으로 꼭 필요한 요소들만 남게되었다. 이러한 과정으로 언어의 경제성은 높아졌지만 그에 따라 중의성(ambiguity)이 커져 명료성은 줄었다. 또한, 상식(common knowledge)의 범위가 넓어져 백그라운드로 공유하는 정보의 양이 많아졌다. 언어학 계층 중 특히 의미를 분석하는 단계(semantics, pragmatics)에서부터 상식 정보가 많이 활용된다. 보여지는 정보가 다가 아니기에 상식은 컴퓨터가 언어를 이해하기 어려운 요소 중 하나이다.

Diversity & Creativity

언어는 이질적이면서도 유연한 특징을 가진다. 나라별로 언어 자체가 다르다. 다른 언어의 사이는 단순한 매핑으로 연결되지 않는다. 하나의 솔루션으로 여러 개의 언어를 커버하긴 힘들다. 나라별뿐만 아니라 지방에 따라서는 사투리와 같이 언어의 특색이 다르다. 또한, 사람마다 스타일이 다르기에 똑같은 현상을 표현하는 방식이 다르다. 이러한 변이성을 모두 인지하는 것은 쉽지 않다.

한국어 자연어처리의 어려움

한국어는 자연어처리를 하기 어려운 언어 중 하나이다. 구조적으로 축약, 생략, 이동 현상이 빈번하고, 띄어쓰기 오류가 많다. 단어의 경우 불규칙 변형, 음운탈락, 모음조화, 매개모음, 음운론적 이형태, 준말 등 형태론적 변형의 다양성이 크다(ex. 가깝,가까우,가까워,가까워도). 단일어와 복합어의 구분이 모호하다(ex. 삼성 전자 vs. 삼성전자). 외래어, 축약어, 오타 등 동의어의 종류가 많고 이를 정규화하는 작업이 어렵다(ex. 라코스테, 라코스태, lacoste, 자켓, 재킷). 따라서 한국어는 형태소 분석과 같은 앞단에서의 처리가 굉장히 중요하다.

한국어 형태소 분석기는 노리(NORI) 형태소 분석기 DEEP DIVE 글을 참고해주세요.


5. 마무리

언어에는 역사, 문화, 심리 등 많은 정보가 함축되어 있습니다. 우리가 언어를 이해하기도 전에 기계한테 가르치려니 여간 힘든 일이 아닙니다. 하나의 분야나 방법론으로 해결하기 힘들며 많은 분야의 관점을 빌리고, 많은 사람들의 힘을 빌려야 합니다. 최근에는 인간 성능을 뛰어넘는 자연어처리 솔루션이 등장하고 있지만 한정적인 문제에서만 적용됩니다. 언어의 본질을 잘 이해하고 반영한다면 진짜 생각을 하는 강인공지능에 가까워지지 않을까 생각합니다.


6. 각주 (보충)

  1. 앨런 튜링은 현대 컴퓨터의 CPU 구조를 제시한 튜닝 기계를 개발했고, 에니그마 해독으로 연합군 승리에 기여를 했다.
  2. Syntax는 단어/구/문장의 구조를, Semantics는 언어의 의미를 연구한다. 이러한 언어학 지식 구조를 활용하면 기계학습 모델의 뛰어난 자질을 설계할 수 있고, 반대로 완성된 NLP 시스템의 에러 분석을 할 때 힌트를 제공한다.
  3. 텍스트 마이닝은 데이터 마이닝의 KDD (Knowledge Discovery in Databases) 프로세스를 그대로 따르며 빅데이터 속에서 유용한 패턴을 찾는 목적이 있다. 반면 자연어처리는 인공지능과 언어학에서 출발했기에 언어의 본질에 대한 이해를 목표로 둔다.
  4. 언어학에 기반한 자연어처리는 깊은(deep) 레벨을 향할수록 성능 하락(fragile)을 유발하는 Trade-off 특징을 가진다. 텍스트 마이닝은 효율적이고 강건한(robust) 텍스트 추출을 위해 shallow NLP 기술을 주로 사용한다. 향상된 NLP 기술이 성능을 높이는 것이 맞지만 큰 장애가 되진 않는다. 예를 들어, Text Retrieval은 Machine Translation 보다 언어학 관점으로 훨씬 쉬운 테스크이다. 이에 shallow NLP 기술로도 충분하다.
  5. Linguistics 기반의 자연어처리와 Text Mining 은 다른 관점을 가지지만 중복되는 테스크가 많다. 실제로 두 학계 이름을 혼용해서 사용하기도 한다.
  6. 초기의 보편적인 인공지능 방법론도 이와 비슷했다. 1970년대에 만들어진 첫 번째 전문가 시스템의 메인 알고리즘은 ‘if-then-else’로 구성됐다.
  7. 자연어처리 초기인 1950년대에도 통계와 코퍼스 기반의 NLP 연구가 있었지만 Chomsky의 언어학 이론의 영향으로 많이 줄어들거나 중단되었다[8]. 고전의 통계 방법론은 생성(generative) 모델에 집중했지만, 1990년대에서는 판별(discriminative) 모델이 성행했다[9].
  8. Emprical 방법론에 강한 믿음을 가지는 NLP 연구자가 많았기에 1996년에는 EMNLP (Emprical Methods in Natural Language Processing) 학회가 처음 생겼다. 이는 현재 최고의 자연어처리 학회 중 하나이다.
  9. 여기서 말하는 규칙은 자질이 아니라 파라미터(parameter)이다.
  10. 자연어처리 문제 종류와 데이터 특징, 학습 데이터 크기 등에 따라 다르다. 통계적 방법과 마찬가지로 학습 데이터가 불충분하다면 이전의 심볼릭, 또는 통계적 방법론을 사용해야 한다. 대표적으로 엔드-투-엔드 패러다임이 잘 적용된 사례는 기계번역이다.
  11. 문장의 구조는 주로 동사가 만드는 패턴 때문에 바뀐다. Transitive, Ditransitive, Action-transitive 등 동사 종류에 따라 뒤에 명사가 어떻게 붙을지 결정된다.
  12. Analysis와 Structure가 항상 일대일 대응이 되진 않는다. Semantics의 경우 Morpheme과 Word에서도 활발히 분석되고 있다.
  13. 언어학에서 뻗어나온 계산언어학(computational linguistics)이 있다. 오래된 역사를 가지고 있고 영향력이 있는 Association for Computational Linguistics (ACL) 협회도 가지고 있다. 자연어처리와 미묘한 차이가 있지만 최근에는 거의 동일시하기 때문에 여기서는 따로 설명하지 않았다.

7. 참조

  1. (위키) Artificial Intelligence, Natural Language Processing, Natural Language Understanding, Alan Turing, Turing Test, Text Mining, Presupposition, Ambiguity
  2. (책) Russell, S. J., Norvig, P., & Davis, E. (2010). Artificial intelligence: a modern approach. 3rd ed. Upper Saddle River, NJ: Prentice Hall. – 1장, 7장
  3. (책) Emily M. Bender. 2013. Linguistic Fundamentals for Natural Language Processing: 100 Essentials from Morphology and Syntax. Morgan & Claypool Publishers. – 1장
  4. (책) ChengXiang Zhai and Sean Massung. 2016. Text Data Management and Analysis: A Practical Introduction to Information Retrieval and Text Mining. Association for Computing Machinery and Morgan & Claypool. – 1장, 3장
  5. (책) Clive Matthews. 1998. An Introduction to Natural Language Processing through PROLOG (1st. ed.). Longman Publishing Group, USA. – 1장
  6. (책) Gary Miner, John Elder, Thomas Hill, Robert Nisbet, Dursun Delen, and Andrew Fast. 2012. Practical Text Mining and Statistical Analysis for Non-structured Text Data Applications (1st. ed.). Academic Press, Inc., USA. – 1장, 2장
  7. (책) Murugan Anandarajan, Chelsey Hill, and Thomas Nolan. 2018. Practical Text Analytics: Maximizing the Value of Text Data (1st. ed.). Springer Publishing Company, Incorporated. – 1장
  8. (논문) Brill, E., & Mooney, R. J. (1997). An overview of empirical natural language processing. AI magazine18(4), 13-13.
  9. (책) Li Deng and Yang Liu. 2018. Deep Learning in Natural Language Processing (1st. ed.). Springer Publishing Company, Incorporated. – 1장
  10. (책) J. Eisenstein. 2019. Introduction to Natural Language Processing. MIT Press.
  11. (논문) Sukthanker, R., Poria, S., Cambria, E., & Thirunavukarasu, R. (2020). Anaphora and coreference resolution: A review. Information Fusion59, 139-162.
  12. (논문) Bickmore, T., & Giorgino, T. (2006). Health dialog systems for patients and consumers. Journal of biomedical informatics39(5), 556-571.

* 2장은 주로 [1, 4, 6, 12]을, 3장은 주로 [1, 8, 9]을 참고했습니다.