Technological Deep Dive

How to Get into the Tech

Data Science Basic/Text Analytics

[TA] #1 언어 그리고 통계적 의미론(statistical semantics)의 아이디어

mju-bilab 2024. 11. 18. 22:34

*This content is based on the article written by Ji Ho Park and Gichang Lee


요약

1. 언어의 가장 기본이 되는 단어는 일반적으로 벡터(vector)로 표현되며, 문서는 이러한 단어들의 집합 형태로 나타낼 수 있음
2. 컴퓨터가 언어를 이해하기 위해서는 확인하는 가장 기본적인 지표는 단어의 빈도수(word frequency)임
3. 분포 의미론(distributional hypothesis): 비슷한 맥락에 등장하는 단어들은 유사한 의미를 지니는 경향이 있음

 

이를 바탕으로 '빈도(frequency)'를 '의미(semantic meaning)'로 변환할 수 있음을 설명하고자 합니다. 


컴퓨터에게 언어는 어떤 의미일까?

언어의 사전적 정의는 다음과 같습니다. 

생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단.
또는 그 음성이나 문자 따위의 사회 관습적인 체계(표준국어대사전)

 

그렇다면 우리가 읽고 있는 글은 어떻게 분해될 수 있을까요?

문자(character) → 음절(syllable) → 단어(word) → 문장(sentenct) → 문단(paragraph) → 문서(document)

 

우리가 글을 읽으며 의미를 해석하는 과정을 생각해보면, 뜻을 가지는 가장 작은 단위가 단어임을 알 수 있습니다. 아무리 많은 문자가 모여도 단어를 구성하지 못하면 어떠한 의미를 전달할 수 없습니다. 

숫자로 이루어진 대화의 비밀

0과 1로 이루어진 디지털 세계에서 컴퓨터는 어떻게 우리의 언어를 이해할 수 있을까요? 이 과정을 우리는 자연어 처리(Natural Language Processing, NLP)라고 합니다. 그렇다면, 언어의 가장 작은 단위인 단어는 어떻게 숫자로 표현이 될 수 있을까요? 

 

먼저, NLP 분야의 기본 가정들을 알아보도록 하겠습니다. 

Vector Space Models (VSMs): 문서 집합에 속하는 각각의 문서들을 벡터공간의 벡터로 표현(representation)할 수 있다. 벡터공간에 벡터로 표현된 문서들 사이의 거리가 가깝다면 의미가 유사하다(semantically similar).
Distibutional Hypothesis: 비슷한 맥락에 등장한 단어들은 유사한 의미를 지니는 경향이 있다(words that occur in similar contexts tend to have similar meanings).
Statistical Semantics Hypothesis: 언어 사용의 통계적 패턴은 사람들이 의미하는 바를 이해하는 데 쓰일 수 있다(statistical patterns of human word usage can be used to figure out what people mean).
Bag of Words Hypothesis: 어떤 문서에 출현한 단어들의 빈도는 문서와 쿼리의 관련성을 나타내는 경향이 있다(the frequencies of words in a document tend to indicate the relevance of the document to a query). 어떤 문서가 쿼리 문서와 유사한 벡터라면 그 의미도 비슷하다.
Latent Relation Hypothesis: 비슷한 패턴으로 동시에 등장하는 단어쌍유사한 의미적 관계를 지니는 경향이 있다(pairs of words that co-occur in similar patterns tend to have similar semantic relations).

 

우리가 이해해야할 중요한 포인트를 순서대로 발견해보면, 

  1. 분석 대상인 문서와 단어들은 출현 빈도를 기준으로 벡터로 표현할 수 있다.
  2. 해당 벡터들 간의 거리를 측정할 수 있으며 이는 곧 벡터들 간의 유사도를 의미한다.
  3. 벡터공간에서 유사한 벡터들은 언어학적으로 유사한 의미적 관계를 지닐 경향성이 높다.
즉, 컴퓨터는 그저 단어를 '숫자'로 변환하여 '유사성'을 측정하기 위해 반복적인 '연산'을 한 뿐이지만
이 과정에서 자연어의 '의미'를 '이해'할 수 있다는 가정

 

컴퓨터는 이러한 전제를 바탕으로, 대부분의 NLP 과업을 수행하기 위해 아는 단어를 모아 vocabulary를 구성하는 것부터 시작합니다. 이를 위해, 가지고 있는 문서 데이터를 전부 끌어모아 대규모 텍스트 데이터 모음(corpus)을 구축합니다. 그리고 corpus내에 존재하는 모든 단어의 출현 빈도를 파악합니다. 주로 통계학적 분석을 하거나 모델을 학습시킬 것이기 때문에 단어의 빈도(word frequency)는 매우 기본이자 중요한 기준이됩니다. 때에 따라 다르지만, 주로 vocabulary를 구성할 때에는 각 단어의 빈도 수를 함께 살펴봅니다. 

 

!! 혼동하기 쉬운 용어 정리

영화에 대한 블로그 리뷰 데이터를 분석하는 상황에서 다음의 네 가지 용어를 설명해보겠습니다. 
  • Corpus: Collection of all Blog review articles mentioning a set list of movies
  • Documents: Each Blog review article is a document
  • Vocabulary: All unique words used across these Blog review articles, like "great," "boring," and "recommend."
  • Words: Every individual word in each Blog review article is analyzed to determine the overall sentiment about the movies

Corpus ❘ Documents & Vocabulary ❘ Words (source: https://medium.com/@asmmorshedulhoque/the-building-blocks-of-language-processing-corpus-documents-vocabulary-and-words-4432a065722e)

 

원-핫 인코딩(One-Hot Encoding)이란?

우리는 앞서 0과 1로 이루어진 디지털 세계라는 표현을 사용했습니다. 원-핫 인코딩은 문자를 숫자로 바꾸는 여러 가지 기법 들 중 가장 기본적인 표현 방법입니다. 모든 단어의 중복을 허용하지 않고 모아놓은 단어 집합(vocabulary)에 고유한 정수를 부여하는 정수 인코딩을 진행합니다. 이 때, 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식입니다. 

"명지대학교 산업경영공학과 비즈니스 인텔리전스 연구실"을 예로 들어보겠습니다.
  • 우리가 알고 있는 단어는 총 5개입니다: 명지대학교, 산업경영공학과, 비즈니스, 인텔리전스, 연구실
  • 즉, vocabulary에는 중복되지 않은 5개의 단어가 포함되어 있으며, 이는 곧 벡터의 차원이 됩니다

  • vocabulary를 구성하는 각 단어에 고유한 정수를 부여하면 1번부터 5번까지 나열되고, 이것을 인덱스라고 합니다. 
  • 더 나아가 우리는 이것을 vector로 표현할 수 있으며, 이를 위해 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 나머지 인덱스에는 0을 부여하겠습니다. 

  • 이렇게 모든 단어를 vector로 표현하는 것을 One-Hot Vector라고 합니다.
원-핫 인코딩은
(1) 단어의 개수가 늘어날 수록, 벡터를 저장하기 위해 필요한 공간이 계속 늘어나는 비효율적인 표현 방법이며
(2) 단어의 유사도를 표현하지 못하기 때문에 검색 시스템에 치명적인 문제를 발생시킨다.

 

위와 같은 단점을 극복하기 위해 단어의 잠재 의미를 반영하여 다차원 공간에 벡터화 하는 기법으로 크게 두 가지가 있습니다. 

  1. 카운트 기반의 벡터화: LSA (잠재 의미 분석), HAL 등
  2. 예측 기반의 벡터화: NNLM, RNNLM, Word2Vec, FastText 등
  3. 카운트 기반과 예측 기반의 혼합 벡터화: GloVe

이 외에 여러 가지 단어 임베딩 방법은 추후에 소개하도록 하겠습니다. 

다음 시간에는 여러 개의 단어가 모인 문장 또는 문서는 어떻게 숫자로 표현할 수 있는지, 그리고 유사성을 어떻게 측정할 수 있는지 알아보도록 하겠습니다. 

728x90
반응형