inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실무 중심의 딥러닝 NLP 심화: LLM 아키텍처와 파인튜닝 실전

Word Embedding - 개념

word embedding 훈련 예시 관련 질문 드립니다.

462

David

작성한 질문수 13

0

예를들어 skip-gram(window size 2) 에서

I love king of Korea

이라는 문장을 워드임베딩 하게 되면,

'king', 'I love', 'of Korea' 5개의 단어 중 3차원(I love, king, of Korea) 의 벡터(ex. <0.3, 0.5, 0.1>) 가 되는건가요?

차원은 어떻게 결정하는 것이고, 워드 임베딩 학습은 어떤식으로 진행되는지 예시를 설명해주실 수 있을까요?

미리 감사합니다!

 

딥러닝 tensorflow NLP

답변 1

1

YoungJea Oh

Skip-gram 모델은 각 단어를 벡터로 변환하는 Word2Vec 방법의 한 가지입니다. "I love king of Korea"라는 문장에서, "king"이라는 단어를 중심으로 양옆 2개의 단어를 예측하려는 모델이 Skip-gram입니다.

단어 임베딩의 차원 수는 사용자가 선택하는 하이퍼파라미터입니다. 예를 들어, 100차원으로 설정하면 각 단어는 100차원 벡터로 표현됩니다. 이 차원 수는 단어의 의미를 잡아내는 '특징(feature)'의 수를 결정하는 것과 같습니다. 더 많은 차원을 가질수록 더 많은 정보를 담을 수 있지만, 모델이 복잡해지고 계산 비용이 증가하므로 적절한 차원 수를 선택하는 것이 중요합니다.

다시 요약하면 'I love', 'of Korea' 은 지도 학습이 성립되도록 하는 역할을 하며 임베딩은 단어별로 만들어지는데 각 단어의 벡터 차원을 어떻게 정할지는 단어 임베딩을 만드는 사람이 필요에 따라 정하면 됩니다.

좋은 질문 감사합니다.

0

David

감사합니다. 추가적으로 질문 드립니다.

https://ronxin.github.io/wevi/ 에서

결과를 보니, Weight Matrices 가 Input vector, Output vector 두개가 나오는데, 둘다 word embedding vector라고 보면 되나요? 추후 Encoder-Decoder 등에 input으로 embedding vector가 들어가는걸로 알고있는데, 어떤 vector가 대표성을 띄는건가요?

항상 weight matrices가 2개있어야 예측이 가능한게 아닌지요??

1

YoungJea Oh

Word2Vec에서 "input vector"는 각 단어가 가지는 임베딩 벡터를 말합니다. 이 벡터는 원-핫 인코딩된 단어를 Word2Vec 모델의 입력층(input layer)과 은닉층(hidden layer) 사이에 있는 가중치 행렬과 곱하여 얻어집니다.

Word2Vec 학습 과정에서는 각 단어에 대응되는 원-핫 인코딩 벡터를 입력층에 넣고, 이를 은닉층의 가중치 행렬과 곱합니다. 이렇게 얻은 결과가 바로 해당 단어의 input vector로, 그 차원수는 은닉층의 뉴런 수와 같습니다.

Word2Vec에서 "output vector"는 각 단어에 대응되는 출력 층의 가중치 벡터를 의미합니다.

Word2Vec의 학습 과정에서, 입력 단어 주변의 단어들 (즉, 컨텍스트)을 예측하려고 합니다. 이를 위해 모델은 두 개의 가중치 행렬을 학습하게 됩니다. 하나는 입력 층에서 은닉 층으로 가는 가중치 행렬이고 (이것이 input vector를 만드는 데 사용됩니다), 다른 하나는 은닉 층에서 출력 층으로 가는 가중치 행렬입니다. 후자가 바로 각 단어에 대한 "output vector"를 만드는 데 사용됩니다.

그런데 실제 사용할 때는 input vector와 output vector 중에서 보통 input vector만을 사용합니다. 이는 input vector가 이미 충분한 의미적 정보를 잘 담고 있고, output vector는 주로 모델의 예측 목적에 집중된 정보를 담고 있기 때문입니다.

Encoder-Decoder 구조나 Transformer와 같은 모델에서는 모델의 입력으로 Embedding layer를 선언하여 embedding vector를 학습시켜 사용합니다. 만드는 방법은 word2vec 과 다르지만 단어의 의미 정보를 담는 원리는 동일합니다.

좋은 질문 감사합니다.

0

David

상세히 설명해주셔서 이해가 매우 잘 되었습니다. 감사합니다 :)

트랜스포머 FeedForward 관련 질문

0

72

2

파라미터갯수에대한질문(030_IMDB_movie_reviews)

0

62

1

Transformer 번역기 분석 - Part1 따라치기 질문

0

71

2

Encoder-Decoder 질문 드립니다.

0

73

2

model 코드 부분을 따라하다가 전 값이 이상해서요

0

83

1

서적 추천

0

77

1

NLP와 LLM의 차이점

0

558

2

encoder-decoder model 질문입니다.

1

74

1

구글번역기에 대해서 궁금한점이 있습니다.

0

124

2

로드맵에대해서...

0

121

2

Bag of Word (BOW)와TF-IDF시 대명사인 I의행방

0

97

2

강의 교재 최신화 요청

0

145

4

self-attention에서 Wq, Wk, Wv weight matrix 학습과정 질문드립니다.

0

190

3

코랩 환경 설정할 때 질문이 있습니다.

0

248

1

transformer 훈련 마친 모델 공유 가능할까요?

0

217

2

130_Transformer.ipynb transformer.summary() 에러

0

183

2

강사님 궁금한게 있어 문의 드립니다.

0

129

1

강사님 Tensorflow 실습코드 중 궁금한 점이 있습니다.

0

126

1

패딩과 관련한 질문 드립니다.

0

172

1

Encoder Decoder 부터 Simple Chatbot까지 이상답변

0

219

1

seq2seq 모델

0

328

1

강의 내용중 질문있습니다.

0

199

1

Transformer 번역기 부분에 대해 질문 있습니다.

0

214

1

320_Custom_Sentiment_Analysis_navermovie.ipynb 실행 시 오류 납니다.

0

317

2