NLP 7. 자연어 이해(NLU) task

자연어 이해 (NLU) task

자연어이해(NLU) 작업이란?

자연어 이해 : 기계가 자연어의 의미를 이해하게 하는 구체적인 연구 분야

목적 : 기계가 자연어의 실제 의미(의도/감정/질문)을 사람처럼 이해하도록 돕는 것

물론 인간은 비언어적 표현을 통해 언어 표현을 강화하지만, 컴퓨터가 이를 알 수는 없기에, 효과적인 정보의 학습을 위해서는 다량의 데이터를 필요로 한다.


측면 2가지

  • Syntactic : 주어진 문장이 문법적으로 옳은 문장인지 구분할 수 있을 것
  • Semantic : 언어를 이해한다면 주어진 문장이 가지고 있는 의미를 이해할 수 있을 것

전통적인 기법들

  1. 어휘나 문장 구조를 분석
  2. 언어학적으로 문장의 의미를 분석
  3. 동의어 혹은 유의어 간 관계를 정의한 사전 구축
  4. 자연어의 복잡한 관계를 규칙으로 정의

한계

사람이 직접 추출한 heuristic feature에 의존해서 작업

  1. 규칙을 설계하는데 오랜 시간이 필요하며, 예외 처리에 취약
  2. feature를 수작업으로 추출하는데 많은 시간이 소요되며 마찬가지로 예외 처리에 취약
  3. 규칙의 범위를 벗어날수록 정확도가 하락
  4. 처리 가능한 문서가 정형화된 텍스트에 한정됨

자연어 이해 작업의 딥러닝 기반 방법

전통적인 기법보다는 성능이 개선되었다.

transformer 모델이 제안되고 부터, 입력 문장을 벡터 표현으로 잘 압축할 수 있게 되었다.

Transformer 구조는 시퀀스 데이터를 시계열적으로 처리할 때 발생하는 시간적 비효율을 병렬 처리을 이용해 줄여줄 수 있었기 때문에, 다량의 데이터를 한번에 학습할 수 있어 다양한 특징을 효율적으로 추출할 수 있음


대표적인 NLU 작업

  1. 감정 분석
    문장에 대한 특정 감정을 분류하는 task
  2. 자연어 추론
    두 문장 사이의 의미 관계를 분류하는 작업
  3. 요약
    길이가 긴 텍스트에서 핵심만 짚어서 짧게 간추리는 일
  4. 관계 추출
    주어진 문장이나 문서에 존재하는 개체들 중 서로 연관성을 같은개체를 찾아내고 그 관계를 분류하는 task

감정 분석 (Sentimental Analysis) Task

문장에 대한 특정 감정을 분류하는 task


전통적인 방식

과거에는

  1. 어휘기반 : 감성사전 등의 어휘자원을 기반으로 수행
  2. ML기반 : ML의 다양한 기법을 활용해서 수행

최근에는 DL 기법을 활용해서 진행한다.


텍스트 마이닝과 감성 분석

텍스트 마이닝 : text data에 내재된 정보를 찾아 유용하게 활용하는 일련의 과정


어휘 기반 감성 분석

  1. 사전에 구축한 어휘자원을 바탕으로 범주화 작업을 선행해서, 감성사전을 구축하고,
  2. 감성사전을 바탕으로 분석하고자 하는 text data에 대한 감성 점수를 계산해서 분류하는 방식

성능의 향상을 위해서는 감성사전의 구축에 많은 노력 필요


ML 기반 감성분석

supervised learning의 대표적인 기법으로 SVM, Decision Tree 등이 있다.

하지만 ML은 feature를 추출해서 활용해야하기 때문에, Domain이 달라지면 적용하지 못한다는 것이 단점이다.


DL 기반 감성 분석

  1. RNN 구조에서의 감성분석
    RNN : 시계열 데이터를 학습하는 주요한 방법
    RNN에서 특정 시점의 노드는 그 시점의 input과 이전 시점의 은닉층의 값을 결정해서 현재 상태를 결정한다.
    이렇게 순차적으로 입력을 받아, 나온 최종 결과로 감성 label 분류
  2. CNN 구조에서의 감성분석
    원래는 이미지 인식 분야에서 활용된 모델링
    품사 태깅, 구문분석, 개체명 인식 등의 분야에서도 활용
    CNN은 입력값에서 특징을 추출해서 학습하기 때문에
    입력 데이터를 세분화하고 특징을 저장해 최종적으로 분류 작업을 수행할 수 있음
    입력 데이터를 2차원 행렬로 구성해서, 한 단어마다 워드 임베딩을 통해 차원을 늘린다
    CNN 구조에 넣어 합성곱을 통해 특징을 추출, 문장을 요약하는 하나의 representation을 얻고, out layer를 통과해 label 출력

언어 모델 기반의 감성 분석

감성 분석 작업의 핵심 : 입력 문장 내 함축된 정보들을 잘 추출하고, 이를 벡터 표현으로 압축하는 것
$\rightarrow$ 따라서 BERT와 같은 Transformer 인코더를 사용하는 언어모델을 활용

  1. BERT 기반 감성 분석
  2. BERT의 내부 레이어들을 활용한 감성 분석
    BERT 내부의 self-attention layer들의 states들을 다시 한번 pooling하는 방식

감성 분석 벤치마크 데이터셋

  1. SST(Stanford Sentiment Treebank)
    언어에서 감정의 구성 효과를 완벽하게 분석할 수 있는 완전히 레이블이 지정된 구문 분석 트리가 있는 코퍼스
    영화리뷰에서 추출한 11,000여 개의 단일 문장
    긍정 부정을 5단계로 나누어 labeling 함
  2. IMDb Movie Review
    인터넷 영화 데이터베이스에서 긍정적 또는 부정적으로 표시된 5 만개의 리뷰로 구성된 binary classification data set

자연어 추론 (Natural Language Inference) Task

두 문장 사이의 의미 관계를 분류하는 작업

전제가설이 주어졌을 때,
두 문장의 유사도를 분석해서 가설이

  1. entailment(함의)
  2. contradiction(모순)
  3. neutral(중립)

중 어떤 것인지 결정하는 작업

주어진 텍스트가 특정 주제에 속하는지, 연결되는지, 혹은 같은지 파악할 수 있으며, 언어간 자연어 추론이나, 앞뒤 문장의 연결성, 혹은 이미지가 의미적으로 텍스트를 포함하는지 여부등을 예측할 수 있음

텍스트 간 추론 방식은 보통 단일 방향으로의 유추 가능 여부를 판단하는 것으로

###자연어 추론 수행방법

  1. 유사도 기반 방법 (Similarity-based Method)
  2. 규칙 기반 변형 기법 (Rule-based Transformation Methods)
  3. 기계 학습 기반 기법 (Machine Learning Methods)
  4. 딥러닝 기반 기법 (Deep Learning Methods)

유사도 기반 방법

한쌍의 입력 문장들에 대해 의미적 거리 측정이 가능한 정형화된 형태로 변형하거나 확장하여 거리 기반 유사도를 구하여 유추 여부를 판단하는 기법

유사도를 계산하는 방법에 따라서 나뉜다.

  1. 벡터 기반 의미 표현 기법
  2. 직접 비교 기법

유사도 측정 모델은 결국 단어 사전을 기반으로 해서 문맥 데이터가 부족한 짧은 문장의 적용이 안됐음

규칙 기반 변형 기법

WordNet 등과 같은 시소러스 / 웹에서 얻는 정보로 동의어나 유사 어구를 수집해서 이를 transformation rule 집합으로 구성한다.

이를 두 문장의 언어 표현에 적용하고, 변형해서 두 표현이 서로 같은 표현으로 수렴하는지를 판단하는 방법

기계 학습 기반 기법

미리 지정된 데이터셋을 바탕으로 모델 학습을 통해서 학습된 모델을 만들고, 문장 간 추론 여부를 모델에게 판단하도록 하는 일종의 분류 문제로 다루는 작업을 말함

대표적인 접근 방법은 syntactic tree kernel 방법이 있음

딥러닝 기반의 자연어 추론

성능이 많이 좋아짐

핵심은 한 쌍의 입력 문장 간 관계 파악을 위한 특징들을 문장의 벡터 표현에 잘 압축하는 것

Transformer : 시퀀스 데이터를 처리할 때 발생하는 시간적 비효율을 병렬처리로 줄여줘서 다량의 데이터를 학습할 수 있다.
MLM task를 이용해서 문장을 압축하는데 특화되어 추론 작업에서도 사용 가능

BERT에서는, 작업에서 나온 class label에 classification layer를 추가해서 원하는 데이터 셋의 레이블이 되도록 학습할 수 있다.

entailment 추론에서는 불확실성과 확률적인 속성을 계산해야해서, coarse categorical label은 이상적이지 않다.
따라서 Uncertain Natural Language Inference를 사용
문장 간 관계에서 continous한 label을 수집하고, 해당 데이터 셋을 학습시키는 것을 의미한다.


자연어 추론 (NLI) 벤치마크 데이터셋

  1. SNLI : entailment, contradiction, neutral로 라벨링됨
    총 570k 의 문장 존재
  2. Stanford Question Answering Dataset v1.1(SQuAD)
    보통 Question & Answering 문제에서 사용

요약 (Summerization) Task

길이가 긴 텍스트에서 핵심만 짚어서 짧게 간추리는 일

대표적인 방법

정답 도출 방식에 따른 분류

  1. 추출 요약 :
    원본 문장 혹은 문서 내에서 중요한 문장을 뽑아내서 배열하는 요약방식
    중요한 문장을 골라내는 ranking 혹은 유사도 기반 작업으로 단순화는 할 수 있지만, 문서 내에 존재하는 문장을 그대로 사용해야해서 요약의 품질이 일정 수준을 넘지 못한다.
  2. 추상 요약 :
    텍스트를 이해하고 핵심적인 내용을 직접 생성해서 요약물을 작성하는 방식
    어떤 문장이 핵심인지 이해해야하고, 해당 내용을 잘 표현하는 문장으로 요약해야해서 난이도가 높음

문서 수에 따라

  1. 단일 문서 요약
    요약하는 문서가 1개인 경우
  2. 다중 문서 요약
    요약하는 문서가 여러 개인 경우
    단일 문서 요약을 여러 번 적용할 수 있지만, 여러 문서에서 핵심적인 내용을 추려야해서, 중복을 제거할 수 없게 됨
    따라서 중복을 추가로 제거하는 기법 사용

다루는 내용의 범위에 따라

  1. 일반요약
    일반적으로 요약하는 방식, 대표적인 주제를 잘 설명하도록 학습
  2. Query-focused 요약
    특정 내용에 대해 요청하는 query가 들어온 경우, 그 질문에 집중해서 요약문을 생성하는 방법

요약문의 유형에 따라

  1. 지시적(indicative) 요약
    문서 자체에 대한 설명을 활용해서 요약함
    ex. 본 강의는 자연어 이해 작업 중 자연어 요약 작업에 대해 다룬다.
    문서 분류나 계층화를 할 때 좋음
  2. 정보적(informative) 요약
    문서 내의 정보를 포함해서, 요약문을 구성한다.

추출 요약의 주요 접근 방법

문장이 중요한지, 아닌지인 binary classification (information retrieval)

결국 문장 내에 단어가 주제어인지 아닌지를 알 수 있어야한다.

이러한 classification은 통계적 기법으로도 풀 수 있다.

  1. 통계 기반 접근법
    빈도를 통계량으로 쓸 수 있다.
    단어의 중요도를 바탕으로 문장의 중요도를 유추하고,
    문장을 정렬해서, 특정 임계값 이상의 문장들을 반환하면 추출요약을 수행할 수 있다.
    다른 통계적 특징으론 문장의 위치, 문장 내 키워드의 빈도, 제목과의 유사도, 문장 내 수치 데이터의 유무, 개체명의 유무 등이 있다.
  2. 주제 기반 접근법
    문서의 주제와 관련된 부분이 우리가 알고 싶은 중요한 내용이라는 아이디어 하에, 이들을 추려내서 요약문을 만드는 방법
    문장과 주제의 연관성을 Topic Signature를 이용한다.
    분포 가설과 같이, 단어가 같이 등장할 확률을 고려해서, 통계적인 방법으로 단어 사전을 구축하듯이 구축한다.
  3. 기계 학습 기반 접근법
    정답 label이 있는 수많은 문장쌍을 입력으로 받아 새로 입력 받은 문장이 중요한지 사소한지 분류할 수 있는 classifier를 학습할 수 있다.
    다만 추출 요약에서는 성과가 있으나, 추상 요약에서는 아쉽다.

추상 요약 & 접근 방법

추출 요약은 텍스트 길이가 짧고, 같은 의미에 대해 다양한 표현을 사용하는 텍스트들에 대해서는 잘 작동하지 않음

따라서 이러한 데이터에 대해서는 추상 요약으로 접근하는 것이 좋다.

  1. 구조기반 접근법
    사람이 직접 구축한 지식을 바탕으로 요약문을 생성하는 방법
    대량의 문서의 패턴에 맞게 적절한 템플릿을 생성하고, 내용을 끼워넣는 방식
    템플릿은 수작업이라 결과물은 깔끔하지만, 패턴에 맞는 템플릿과 그 내용을 얼마나 잘 추출하는지에 따라 성능차이가 큼
  2. 그래프 기반 접근법
    각 단어를 node로 보고 문장에서 등장하는 각 단어와 다음 단어를 edge로 연결해서, 방향성 그래프를 생성한다.
    문서 간 관계 혹은 문서 내 문장들 간 관계를 파악할 수 있다.
  3. 기계 학습 기반 접근법
    문서 전체 내용을 특정 표현에 잘 함축하고, 압축된 중간 형태를 다시 문장의 형태로 바꾸어 작성하는 작업
    자연스러운 문장은 한계가 있었고, 효율적인 압축이나 대량의 데이터 학습이 어려웠다.

딥러닝 기반 요약 작업

Transformer의 모델 구조로 인해 복잡한 정보도 하나의 벡터로 표현할 수 있게 되었다.

이로 인해 간단한 방법으로 언어 모델을 요약 데이터 셋으로 학습하기만 해도 기존 접근법에 비해 성능이 매우 향상되었음

관계 추출 (Relation Extraction) Task

주어진 문장이나 문서에 존재하는 개체들 중 서로 연관성을 갖는 개체를 찾아내고 그 관계를 분류하는 작업

NER 작업이 선행되기도 한다.

문장에서 나타난 개체명 쌍(entity pair)의 관계를 판별하는 작업이다.

개체명 쌍 : 관계의 주체(subject)와 대상(object)로 구성

관계 지식 그래프를 구축하기 위한 핵심 요소이며, 구조 검색, 감정분석, 질의응답 등의 NLP task에서 사용된다.


필요성

  1. 구조적으로 표현된 정보는 단순 자연어보다 효율적으로 활용할 수 있다.
  2. 방대한 자연어 데이터를 RDF 형식으로 표현해서 연결 데이터를 구축 가능
  3. 개체 간 관계 정보는 질의응답을 비롯한 다양한 분야에서 활용 가능

수행방법

뉴럴-심볼릭 구조 기반

단어의 상하위 관계나 의미 관계를 정의한 사전 이용 / 사람이 판단한 단어간 특성들을 기반으로 규칙을 구성해서 처리

단 사전이나 사람의 통찰에 따른 성능의 차이가 발생한다.

CNN 기반의 관계 추출 작업

다루는 문장의 길이가 길지 않고, 단어 임베딩 간 의미적인 차이를 구분해야했다.
$\rightarrow$ CNN (특징에 집중하는 모델) 을 써보자

언어 모델 기반의 관계 추출 작업

BERT도 똑같이 문장 내 단어 간 관계를 문맥을 고려해서 파악하니까 이거를 써보자