[TIL]Day 81

이재희·2021년 2월 18일
0

TIL

목록 보기
81/312

단어 임베딩

단어의 의미를 어떻게 나타낼 것인가?

  • 글자의 나열?
  • one-hot encoding?
  • 좋은 표현방식: 단어간의 관계를 잘 표현할 수 있어야 함

단어의 의미

  • 어근(lemma),의미(sense)
    마우스는 쥐라는 뜻과 컴퓨터 주변기기 마우스가 있음.
    복수형이나 단수형이나 모두 같은 어근임.

동의어(Synonyms)

  • 문맥상 같은 의미를 가지는 단어들
  • 동의어라고 해서 항상 그 단어로 대체할 수 있는 것은 아니다.
    H2O/water
  • 유사한 의미를 가지는 단어들(동의어는 아닌)
    car/bicycle
  • 수작업으로 평가한 단어들의 유사도

연관성(Relatedness)

  • 단어들은 의미의 유사성 외에도 다양한 방식으로 연관될 수 있다.
    • Semantic field
    • Semantic frame

Semantic field

  • 특정한 주제나 영역(domain)을 공유하는 단어들

Semantic frame

  • 특정행위에 참여하는 주체들의 역할에 관한 단어들
    • 상거래라는 행위에 참여하는 주체들:buy,sell,pay 등의 단어는 같은 semantic frame을 공유하고 있고, 그런 면에서 관련된 단어라고 말할 수 있다.

벡터로 의미 표현하기

  • 단어들은 주변의 환경(주변의 단어들의 분포)에 의해 의미가 결정된다.
  • 만약, 두 단어 A와 B가 거의 동일한 주변 단어들의 분포를 가지고 있다면 그 두 단어는 유사어이다.
  • 따라서 단어의 의미를 분포적 유사성(distribution similarity)을 사용해 표현하고자 한다.
    • 벡터를 사용해서 분포적 유사성을 표현
  • 벡터공간 내에서 비슷한 단어들은 가까이있다.
  • 이렇게 벡터로 표현된 단어를 임베딩이라고 부른다. 보통은 밀집벡터인 경우를 임베딩이라고 부른다.
  • 최근 NLP 방법들은 모두 임베딩을 사용해서 단어의 의미를 표현한다.
    Dense(밀집) 하다는 것은 원소의 대부분이 0이 아닌것 sparse 벡터는 반대로 원소 대부분이 0인것
  • 임베딩을 사용하지 않는 경우
    • 각 속성은 한 단어의 존재 유무
    • 학습데이터와 테스트데이터에 동일한 단어가 나타나지 않으면 예측결과가 좋지 못함.
  • 임베딩을 사용하는 경우
    • 각 속성은 단어임베딩 벡터
    • 테스트데이터에 새로운 단어가 나타나도 학습데이터에 존재하는 유사한 단어를 통해 학습한 내용이 유효하다.

임베딩의 종류

  • 희소벡터(sparse vector)
    • tf-idf
    • Vector propagation
  • 밀집벡터(dense vector)
    • Word2Vec
    • Glove

Term-document 행렬

  • 각 문서는 단어들의 벡터로 표현된다(vector space model)

Word-word 행렬(term-context 행렬)

  • 주변 단어들의 빈도를 벡터로 표현

벡터의 유사도 계산하기
두 벡터의 각도를 통해 유사성을 판단할 수 있음
각도가 작으면 작을수록 유사함
cosine을 통해 구함.

TF-IDF

  • 단어의 빈도수를 그대로 사용할 때의 문제점
    • 자주나타나는 단어들("the","it","they")은 의미를 구별하는데 도움이 되지 않는다.
    • 어떻게 하면 이런 단어들의 부작용을 최소화할 수 있을까?
  • tf-idf
    • 다음과 같이 문서 d내의 단어t의 새로운 가중치 값을 계산한다.
      wt,d=tft,d×idftw_{t,d}=tf_{t,d}\times idf_t

Word2vec

  • 주어진 단어 w를 인접한 단어들의 빈도수로 나타내는 대신, 주변 단어를 예측하는 분류기를 학습하면 어떨까?
    • 단어w가 주어졌을 때 단어c가 주변에 나타날 확률은?
  • 우리의 관심은 이 예측모델의 최종예측값이 아니라 이 모델 내 단어 w의 가중치 벡터이다.
  • self-supervision
    • 이 모델을 학습하기 위한 목표값은 이미 데이터 내에 존재한다.
    • 사람이 수동으로 레이블을 생성할 필요가없다.
profile
오늘부터 열심히 산다

0개의 댓글