Word Embedding
각 단어를 특정한 차원 상의 한 점(혹은 벡터)로 바꾸는 기법
이때 비슷한 의미를 가지는 단어는, 비슷한 위치로 mapping하여 유사도를 반영한다.
Word2Vec
한 문장에서의 인접한 단어는 의미가 비슷하다
Word Embedding에서 비슷한 위치로 mapping하기 위해서 Word2Vec 방법은 위와 같은 전제를 사용한다.
예를 들어서 The cat purrs라는 문장이 있다면, cat과 the, purrs는 관련이 있다는 뜻이다.
Birds fly high라고 하는 세 단어로 이루어진 문장이 있다고 해보자.
해당 문장을 tokenization하고 unique한 단어의 사전(vocabulary)을 구축한다.
이 경우에는 {Birds, fly, high}가 된다. 해당 길이가 곧 embedding 크기가 된다.
이후 sliding window를 통해 단어별 (중심 단어, 주변 단어) 순서쌍을 만든다.
예를 들어서 window 전체 크기가 3이라고 해보자. 그럼 중심 단어를 기준으로 좌우로 1칸씩 window라는 이야기다.
각 단어가 한 번씩 중심 단어가 되며, 이를 기준으로 모든 window를 봐보자.
중심 단어: Birds / 윈도우: [Birds, fly] / 순서쌍: (Birds, fly)
중심 단어: fly / 윈도우: [Brids, fly, high] / 순서쌍: (fly, Birds), (fly, high)
중심 단어: high / 윈도우: [fly, high] / 순서쌍: (high, fly)처럼 된다.
이후 순서쌍에 대해서 예측 task를 수행하는 2 layer짜리 NN을 만든다. (상단의 왼쪽 그림)
이때 입출력 노드 수는 사전(vocabulary) 크기와 같다
히든 레이어는 사용자가 설정하는 hyper parameter로 얻고자 하는 embedding 차원 수로 설정한다.
마지막으로 입력에 따른 출력 결과가, 최대한 비슷해지도록 하는 softmax 함수를 설정한다.`
이런 방식으로 Word2Vec가 embedding을 진행한다.
Embedding 특성으로 W1에서 가운데 값만 뽑아온다고 생각할 수 있다.
때문에 처음 곱해지는 과정은 embedding layer라고 부른다.
실제로도 행렬곱을 수행하지 않고, W1의 index에 해당하는 부분만 행렬에서 뽑아온다.
우측 그림의 파란 부분의 값을 키우고, 나머지 흰 부분을 줄이는 쪽으로 학습하는 게 핵심이다.
학습 후 W1과 W2의 두 embedding 결과가 나오는데, 보통 W1을 word embedding으로 사용한다.
위 그림은 Word2Vec으로 몇몇 단어를 학습한 결과이다.
단어끼리의 관계 속성이 일관적이고, 비슷한 단어끼리 위치가 유사함을 알 수 있다.
Application of Word2Vec
Word2Vec은 다양한 NLP 분야에서 사용할 수 있다.
ㆍ Intrusion Detection(침입 탐지)
단어들이 주어졌을 때, 가장 의미가 다른 단어 하나를 찾아내는 task
각 word embedding으로 euclidean distance로 구해내는 것이 가능
모든 단어 순서쌍의 euclidean distance의 평균 거리가 큰 단어를 추출
ㆍ Word similarity
ㆍ Machine translation(기계 번역)
서로 다른 언어 간에 같은 의미를 가지는 word를 정합(align)하게 해줌
ㆍ PoS tagging
ㆍ NER
ㆍ Sentiment analysis(감정 분석)
단어의 긍/부정을 더 용이하게 판단하게 해줌
ㆍ Clustering
ㆍ Semantic lexicon building
'공부 > BoostCourse 자연어 처리' 카테고리의 다른 글
06. NLP DL - Character-level Language Model (0) | 2025.03.11 |
---|---|
05. NLP DL - Recurrent Neural Network (RNN) (0) | 2025.03.10 |
04. NLP Basic - Word Embedding (2)GloVe (0) | 2025.03.09 |
02. NLP Basic - 기존의 자연어 처리 기법 (0) | 2025.03.07 |
01. NLP Basic - 자연어 처리 활용 분야와 트렌드 (0) | 2025.03.06 |