aspe

ML - Text Representation 본문

카테고리 없음

ML - Text Representation

aspe 2021. 12. 14. 04:40

Discrete Representation

  • One-hot encoding
    • 단어를 벡터로 표현하는 가장 간단한 방법으로 dictionary의 수 만큼 비트수를 만들어서 1을 하나만 갖는 고유한 벡터를 만들어 단어에 할당한다.
    • 하지만 엄청난 메모리를 요구하고 유사성의 비교가 불가능하다.

Distributed Representation

  • 단어를 문맥에 기반하여 표현하는 방법
  • 비슷한 문맥에서 등장하는 단어는 비슷한 의미를 가질것이다.

Co-Occurrence Matrix

  • 양 옆에 해당 어절이 몇개나 존재하는지 알려주는 Matrix이다.

Problems with Co-Occurrence Vectors

  • Curse of dimensionality
    • 차원이 증가하면서 학습데이터의 수가 차원의 수보다 적어서 성능이 저하되는 현상으로 희소 데이터 문제(sparse data problem)이라고도 한다.

특이값 분해 or SVD(Singular Value Decompostion)

  • 행렬을 특정한 구조로 분해하는 방식이다. 
    S가 중요한 정보를 갖고 있다.

From SVD To Word2Vec

  • SVD의 문제점
    • 계산에 너무 오랜 시간이 소요된다.
      • n*m -> O(mn^2)
    • 유연성이 너무 떨어진다.
      • 새로운 단어가 문서에 추가될 경우에 SVD를 처음부터 다시 수행해야된다.
  • 해결 방안으로 Word2Vec이 제안되었다.

Word2Vec

Instead of capturing co-occurrence counts directly: Predict surrounding words of every word

Word Embedding

  • 단어를 컴퓨터가 구분하기 쉽게 실수 형태의 Vector로 변환하는 과정을 말한다.
  • Word Embedding의 결과가 Word VeEmbedding Vector이다.

CBOW

  • 기본 아이디어는 여러개의 단어로 하나의 단어를 예측하는 것이다.
  • 은닉층에 활성화 함수가 존재하지 않으며 lookup table이라는 연산을 담당하는 층으로 일반적인 은닉층과 구분히기 위해 Projection layer라고 부른다.
  • 아래 4개의 사진을 잘 보면 원리를 쉽게 이해할 수 있다.(사진 출처 : https://wikidocs.net/22660)

최종 output은 예측된 단어의 one-hot vector이다.
Lookup table 생성과정
Projection Layer구성 과정

 

단어를 예측하기 위해 softmax -> cross entropy -> one-hot vetcor

Skip-gram

  • CBOW와 반대의 메커니즘으로 하나의 단어로 여러개의 주변 단어를 예측하는 것이다.

잠시 바로 위의 사진의 Cross Entropy cost function에서 ∑가 사라지는 이유에 대해서 설명하겠다.
아주 간단한데 one-hot vector에 대해 cross entropy를 하므로 yi의 값은 0 또는 1이다. 그리고 1이 되는 단 한 개 뿐이므로 그것에 대한 yi hat만 고려하면 된다. 

GloVe(Global Vectors)

기본 아이디어는 단어의 주변만 보고 예측하지 말고 모든(Global) 말뭉치의 확률 값으로 계산하자는 것이다.
더 자세히 설명하면 Embedding 된 중심 단어와 주변 단어 vector의 내적이 전체 corpus에서의 동시 등장 확률이 되도록 만드는 것이다. 즉, 이를 만족하도록 Embedding vector를 만드는 것이 목표이다.

Object Function of GloVe

초록색 수식이 위에서 언급한 아이디어이다.

wikidocsl.net의 사진을 제외한 모든 사진의 출처는 건국대학교 컴퓨터공학부 김학수 교수님의 강의자료 일부입니다.
Comments