한동안 의도치 않게 자연어에 대해서 알아야만 한다.
모르는 단어가 너무 많다. 하나씩 정리해보고 공부한다. 부스트코스의 무료강의를 많이 참고했다.
나도 멋지게 선형대수, 확률통계 이해해서 확확 이해하고 싶은데, 추상적으로 이해된다. 나중에 내가 잘 되면 수정해야겠다.
Word Embedding 이란?
자연어를 단어들의 시퀀스라고 볼때, 특정한 차원상의 특정한 점, 벡터로 표현할 수 있을 것이다.
텍스트 데이터셋을 학습 데이터로 주고 좌표 공간의 차원 수를 미리 정의해서 입력으로 워드 임베딩 알고리즘에
준다면 학습 이후 데이터에서 나타난 각각의 최적의 좌표값, 벡터를 얻어낼 수 있다.
비슷한 의미를 가진 단어가 좌표 공간상에 비슷한 공간(벡터로)에 있게 됨
- Kitty는 Cat와 가깝지만 Hamburger와 멀다!
- Love는 Like와 가깝지만 Angry와 멀다!
→ 그래서 어케 최적의 좌표를 뽑아주는데?
Word2Vec
워드간의 의미론적 관계를 벡터 임베딩 결과로 학습하기
같은 문장에서 나타난 인접한 단어들 간에 의미가 비슷할 것이라는 가정을 사용한다.
- The cat purrs.
- This cat hunts mice.
한 단어가 주변에 등장하는 단어들을 통해 그 의미를 알 수 있다. (purrs, hunts mice)
- cat 단어 주변에 나타나는 단어는 meow, flea, pet이 높은 확률을 갖더라!
이런 느낌으로 의미론적 관계를 보여줄 수 있다.
- vector[Woman → Man] == vector[Queen → King]
GloVe : Global Vectors for Word Representation
- 두 단어간 한 윈도우 내에서 총 몇번 동시에 등장했는 지 미리 빈도수를 계산하고 단어간의 내적값과 사전에 계산된 값의 차이를 줄여가는 형태로 학습.
- GloVe는 사전에 계산된 Ground Truth를 사용해 반복계산을 줄일 수 있어 Word2Vec 보다 더 빠르고, 더 적은 데이터에서도 잘 동작한다.
- Ground Truth : 학습하고자 하는 데이터의 원본 or 실제 값
Word2Vec & GloVe
주어진 학습 데이터, 텍스트 데이터를 기반해서 워드 임베딩을 하는 동일한 역할을 하는 알고리즘이고
두 알고리즘 에게 같은 테스크를 맞기면 성능도 비등비등하다고 한다.
단어간의 의미 뿐 아니라 형용사, 원형, 비교급 같은 관계에서도 일정한 크기, 방향을 가진 벡터를 학습할 수 있다.
GloVe 모델은 오픈소스이고 pre-trained된 워드 임베딩 벡터도 받을 수 있다.
• Glove 깃헙 주소 : https://github.com/stanfordnlp/GloVe (기존에 학습된 워드 임베딩도 다운로드 받아 사용할 수 있음)
'AI' 카테고리의 다른 글
[AI] 선형 회귀 (Linear Regression) (0) | 2023.05.31 |
---|---|
[AI - NLP] Transfer Learning (with Upstream, Downstream) (0) | 2023.05.29 |