SlideShare une entreprise Scribd logo
1  sur  28
Word2vec 을
활용한
NLP이해
Fairies(한상훈 Adonis Han)
NLP이해하기
• ’어떻게 각 단어를 벡터화해야 하는가?’ 에 대
한 문제가 관건
• 현재 ‘CBOW’와 ‘Skip-gram’ 이라는 아키텍쳐
로 다시 한번 발전하여 현재 word2vec의 모양
새로 이어지게 되었다.
NLP이해하기
one-hot
encoding
• NLP는 ‘one-hot encoding’ 방식을 많이 사용했다.
예를 들어, 내가 어떤 단어들이 있는지에 대한 단
어 n개짜리 ‘사전’ (Dictionary)이 있다고 해보자.
이 때, 어떤 단어를 표현하기 위해서 길이 n짜리
벡터를 하나 만들고, 그 단어가 해당되는 자리에
1을 넣고 나머지 자리들에는 0을 넣는 것이다. 사
전이 [감자, 딸기, 사과, 수박] 이라면 사과를 표현
하는 벡터는 [0, 0, 1, 0] 이 되는 식이다.
NLP이해하기
one-hot
encoding
• 호텔과 모텔 각 단어를 단어토큰(token)을 벡
터화 하여 벡터 공간(word space)에서 각 단어
를 표현(represent)해 볼 수 있다. N차원의(N-
dimensional)공간에서 각 단어는 의미를 갖을
것이다. 그 다음, 우리는 각 단어를 one-hot
vector로 표현해볼 수 있다. Vector의 크기는
우리가 가진 어휘 수많큼 많을 것이다. 그리
고 one-hot vector방식으로 표현된 각 단어는
완전히 독립된 개체(entity)로 표현될 것이다.
NLP이해하기
one-hot
encoding
One-hot vector방식으로는 단어 간의 유사성을
찾을 수 없다.
백터를 내적하면 0이 나오기 때문이다. 호텔과
모텔의 개념적, 의미적 유사성을 발견할 수가
없다.
해결방안
단어의 백터공간크기를
줄일 필요가 있다.
각 단어의 관계를 발견할 수
있는 방향으로 공간에서
표현하는 방법이 필요하다.
Word Embeddings
특정 단어가 문장 내에서 주변에 함께 등장한 각 단어를 dense vector로 표현하여 이웃 단어들을
이용해 그 의미를 예측해 나간다.
Word vector 관점에서 중심 단어 w(t)와 그 주변단어(context words)사이에서 중심 단어의
의미를 예측한다.
큰 언어 말뭉치(corpus)에서 많은 위치를 갖고 있는 t를 확인할 수 있다. 단어별로 문장
또는 vector상에서 위치한 포지션.
단어를 백터로 표현하는데 있어 손실(loss)최소화 하는것이 관점.
Word2Vec
word2vec은 2013년 구글에서 발표된 연구로, Tomas Mikolov라는 사람을 필두로 여
러 연구자들이 모여서 만든 Continuous Word Embedding 학습 모형이다. 재밌는 점
은, 이 논문을 집필한 사람 중 Jeffery Dean (구글의 전설적인 프로그래머로
MapReduce등을 만듬) 도 있다는 점이다. 이 모델이 기존 Neural Net 기반 학습방법
에 비해 크게 달라진 것은 아니지만, 계산량을 엄청나게 줄여서 기존의 방법에 비해
몇 배 이상 빠른 학습을 가능케 하여 현재 가장 많은 이들이 사용하는 Word
Embedding 모델이 되었다.
Word2Vec
• 모든 단어를 vector로 표현하여 단어 사이의 유사성과 차이점을
계산한다. 계산된 결과를 바탕으로 그 주변단어(context word)와
의 관계를 통해 단어가 표현(representation)하는 바를 직접적으로
예측하는 것이다.
알고리즘
Skip-gram(SG) – 타겟 단어를 이용해 주변단어(context
words)를 예측
Continuous Bag of Words(CBOW) – 주변단어를 이용해
타겟 단어를 예측
CBOW(Continuous
Bag-of-Words)
• 기존 연구들과 달리, 이 연구에
서는 학습을 시키기 위한 네트
워크 모델을 두 가지 제시하였
다. 한 가지는
CBOW(Continuous Bag-of-
Words) 모델이고, 다른 하나는
Skip-gram 모델이다.
CBOW(Continuous
Bag-of-Words)
• CBOW 모델은 크게 Input Layer,
Projection Layer, Output Layer로
이루어져 있다. 그림에는 중간 레
이어가 Hidden Layer라고 표시되
어 있기는 하지만, Input에서 중
간 레이어로 가는 과정이 weight
를 곱해주는 것이라기 보다는 단
순히 Projection하는 과정에 가까
우므로 Projection Layer라는 이름
이 더 적절할 것 같다.
CBOW(Continuous
Bag-of-Words)
• Input Layer에서 Projection
Layer로 갈 때는 모든 단어들이
공통적으로 사용하는 VxN 크
기의 Projection Matrix W가 있
고 (N은 Projection Layer의 길
이 = 사용할 벡터의 길이),
Projection Layer에서 Output
Layer로 갈 때는 NxV 크기의
Weight Matrix W’ 가 있다.
CBOW(Continuous
Bag-of-Words)
• Input에서는 NNLM 모델과 똑같
이 단어를 one-hot encoding으로
넣어주고, 여러 개의 단어를 각각
projection 시킨 후 그 벡터들의
평균을 구해서 Projection Layer에
보낸다.
• 그 뒤는 여기에 Weight Matrix를
곱해서 Output Layer로 보내고
softmax 계산을 한 후, 이 결과를
진짜 단어의 one-hot encoding과
비교하여 에러를 계산한다.
CBOW(Continuous
Bag-of-Words)
• 따라서 전체 계산량은
CxN + NxV
앞서 말한 V를 lnV로 줄이는 테
크닉을 사용하면 전체 계산량은
CxN + N x lnV
즉, C=10, N=500, V=1,000,000으
로 잡아도 500 x
(10+ln(1,000,000)) = 약 10000의
계산량밖에 들지 않는 것이다.
Skip-gram
-타겟단어로부터 콘텍스트를 예측
1부터 T까지 각 단어(t)의 m 반경만큼
떨어진 주변단어를 예측하는 것.
현재 주어진 중심단어(target word /
center word)로부터 가까이 있는
단어의 확률값을 최대화하는
방향으로 함수를 구성한다.
즉, 타겟 단어 주변에 있을수록 높은
점수를 받아 관련성이 높다고
판단한다.
Skip-gram
• 현재 주어진 단어 하나를 가지고 주위에
등장하는 나머지 몇 가지의 단어들의 등장
여부를 유추하는 것(Skip-gram 모델은
CBOW와는 반대 방향의 모델)
• ‘가까이 위치해있는 단어일 수록 현재
단어와 관련이 더 많은 단어일 것이다’
라 는 생 각 을 적 용 하 기 위 해 멀 리
떨어져있는 단어일수록 낮은 확률로
택하는 방법을 사용한다.
Skip-gram
• Skip-gram 모델에서 하나의 단어를 처리하는 데
에 드는 계산량은 다음과 같다. C개의 단어를 샘
플링했다고 할 때,
• 현재 단어를 Projection 하는 데에 N
• Output을 계산하는 데에 N x V, 테크닉을 사용
하면 N x ln V
• 총 C개의 단어에 대해 진행해야 하므로 총 C배
• 로 총 C(N + N x lnV) 만큼의 연산이 필요하다.
Negative Sampling
• 여기서 Q(D=1|w_t,h)는 데이터셋 D에서 콘텍스트 h에서 관찰한 단어가 w일 이진
로지스틱 회귀분석에서의 확률이다. 이는 학습된 embedding vectors를 이용해서
계산된다. 실제 상황에서는, k개의 대비되는(contrastive) 단어들을 noise
distribution에서 구하고 이를 평균을 취해서 위의 값을 계산한다. (즉, 몬테
카를로 평균을 계산한다.)
logQ :로지스
틱회귀확률
데이터셋 D에서
h에서 관찰한 단
어w 확률구하기
W(~ 노이즈):K개(상상의단어) 대비되는
(contrastive)단어들을 noise distribution
에서 구하고 이를 평균취해 값을 계산.
Real Target noise
Negative Sampling
• 이 목적함수는 모델이 실제 단어에는 높은 확률을 부여하고 노이
즈 단어들에는 낮은 확률을 부여하면 최대화된다.
• 이런 종류의 손실 함수(loss function)를 정의하는 것은 수학적으로
적절하다. 제한 상황 안에서 이 함수의 업데이트는 softmax 함수
의 업데이트와 근사하다.
• 더욱이 계산 비용의 측면에서, 이런 방식은 매우 효율적이다. 왜냐
하면 전체 어휘 V를 계산하는 것이 아니라 우리가 선택한 k개의
noise 단어들만 계산하면 되기 때문이다. 따라서 이런 트레이닝 시
간을 짧게 줄여준다.
Word2Vec : Skip gram model 구현
 목표 : 목적함수를 최대화; embedding parameter
update
 Tensorflow – NCE LOSS
 Noise-contrastive estimation
 텐서플로우 : tf.nn.nce_loss
Word2vec 튜토리얼 – 구글사이트는 404
소스코드:
http://solarisailab.com/archives/
374
데이터셋
• http://mattmahoney.net/dc/
• text8.zip
• Data size 17005207
무정부주의(anarchism )는 영국혁
명의 파굴과 프랑스 혁명의 산토
병 등을 포함한 초기 노동 계급 급
진주의 자들에 대해 처음 사용 된
학대의 용어로 창안되었지만이 용
어는 여전히 폭력적인 수단을 사
용하여 폭력적인 수단을 사용하여
폭력적인 수단을 사용하는(used
in a pejorative way to describe
any act that used violent means
to destroy the organization of
society) 행위를 묘사하는 데 사용
됩니다.
이런내용…
구현 결과
구현 결과
결론
• Embeddings 평가하기 : 유추(Analogical Reasoning)
• Embeddings 는 NLP 의 다양한 예측 문제에 대해 유용하다. 완
전 품사 모델이나 개체명 모델의 학습을 제외하고, embeddings
를 평가하는 한가지 간단한 방법은 이들을 직접 사용하여 king
is to queen as father is to ? 와 같이 구문론적인 그리고 의미론
적인 관계를 예측하는 것이다.
결론
• hyperparameters 의 선정은 이 문제의 정확도에 매우 큰 영향
을 줄 수 있다. 이 문제에 대해 최고의 성과를 달성하기 위해선
매우 큰 dataset 을 학습하는 것, hyperparameters 에 대한 신중
한 조절, 그리고 데이터의 이단추출과 같은 기법을 이용하는 것
이 필요하다.
결론
• hyperparameters 의 선정은 이 문제의 정확도에 매우 큰 영향
을 줄 수 있다. 이 문제에 대해 최고의 성과를 달성하기 위해선
매우 큰 dataset 을 학습하는 것, hyperparameters 에 대한 신중
한 조절, 그리고 데이터의 이단추출과 같은 기법을 이용하는 것
이 필요하다.

Contenu connexe

Tendances

악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트DataScienceLab
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용r-kor
 
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense DisambiguationContext2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation찬희 이
 
Sequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksSequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksHoon Heo
 
추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-drafthyunsung lee
 
Character-Aware Neural Language Models
Character-Aware Neural Language ModelsCharacter-Aware Neural Language Models
Character-Aware Neural Language ModelsHoon Heo
 
Convolutional neural networks for sentence classification
Convolutional neural networks for sentence classificationConvolutional neural networks for sentence classification
Convolutional neural networks for sentence classificationkeunbong kwak
 
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현태현 임
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경NAVER D2
 
Efficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively StackingEfficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively StackingHoon Heo
 
[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개NAVER D2
 
[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽NAVER D2
 
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)찬희 이
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
Brief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2VecBrief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2VecSilverQ
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우NAVER D2
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차Taekyung Han
 
Variational inference intro. (korean ver.)
Variational inference intro. (korean ver.)Variational inference intro. (korean ver.)
Variational inference intro. (korean ver.)Kiho Hong
 

Tendances (20)

메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
REALM
REALMREALM
REALM
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용
 
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense DisambiguationContext2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
 
Sequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksSequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural Networks
 
추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft
 
Character-Aware Neural Language Models
Character-Aware Neural Language ModelsCharacter-Aware Neural Language Models
Character-Aware Neural Language Models
 
Convolutional neural networks for sentence classification
Convolutional neural networks for sentence classificationConvolutional neural networks for sentence classification
Convolutional neural networks for sentence classification
 
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
 
Efficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively StackingEfficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively Stacking
 
[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개
 
[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽
 
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
Brief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2VecBrief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2Vec
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
 
Variational inference intro. (korean ver.)
Variational inference intro. (korean ver.)Variational inference intro. (korean ver.)
Variational inference intro. (korean ver.)
 

Similaire à (Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)

Word 2 Vec Algorithm
Word 2 Vec AlgorithmWord 2 Vec Algorithm
Word 2 Vec AlgorithmHyeongmin Lee
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningSoo Kim
 
Natural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicNatural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicKyeongUkJang
 
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기Han-seok Jo
 
(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classificationMYEONGGYU LEE
 
230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdf230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdfminalang
 
Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)Jaemin Cho
 
딥러닝 기반 자연어 언어모델 BERT
딥러닝 기반 자연어 언어모델 BERT딥러닝 기반 자연어 언어모델 BERT
딥러닝 기반 자연어 언어모델 BERTSeonghyun Kim
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
 
Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Jaemin Cho
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호NAVER D2
 
연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioning연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioninghkh
 
Bidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionBidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionWoodam Lim
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명Junho Lee
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 

Similaire à (Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow) (20)

Word 2 Vec Algorithm
Word 2 Vec AlgorithmWord 2 Vec Algorithm
Word 2 Vec Algorithm
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep Learning
 
Natural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicNatural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - Basic
 
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
 
(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification
 
230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdf230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdf
 
Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)
 
딥러닝 기반 자연어 언어모델 BERT
딥러닝 기반 자연어 언어모델 BERT딥러닝 기반 자연어 언어모델 BERT
딥러닝 기반 자연어 언어모델 BERT
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
220906_Glove
220906_Glove220906_Glove
220906_Glove
 
파이썬과 자연어 4 | word/doc2vec
파이썬과 자연어 4 | word/doc2vec파이썬과 자연어 4 | word/doc2vec
파이썬과 자연어 4 | word/doc2vec
 
Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
 
연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioning연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioning
 
Bidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionBidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehension
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
Pycon Korea 2020
Pycon Korea 2020 Pycon Korea 2020
Pycon Korea 2020
 
자연어4 | 1차강의
자연어4 | 1차강의자연어4 | 1차강의
자연어4 | 1차강의
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 

(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)

  • 2. NLP이해하기 • ’어떻게 각 단어를 벡터화해야 하는가?’ 에 대 한 문제가 관건 • 현재 ‘CBOW’와 ‘Skip-gram’ 이라는 아키텍쳐 로 다시 한번 발전하여 현재 word2vec의 모양 새로 이어지게 되었다.
  • 3. NLP이해하기 one-hot encoding • NLP는 ‘one-hot encoding’ 방식을 많이 사용했다. 예를 들어, 내가 어떤 단어들이 있는지에 대한 단 어 n개짜리 ‘사전’ (Dictionary)이 있다고 해보자. 이 때, 어떤 단어를 표현하기 위해서 길이 n짜리 벡터를 하나 만들고, 그 단어가 해당되는 자리에 1을 넣고 나머지 자리들에는 0을 넣는 것이다. 사 전이 [감자, 딸기, 사과, 수박] 이라면 사과를 표현 하는 벡터는 [0, 0, 1, 0] 이 되는 식이다.
  • 4. NLP이해하기 one-hot encoding • 호텔과 모텔 각 단어를 단어토큰(token)을 벡 터화 하여 벡터 공간(word space)에서 각 단어 를 표현(represent)해 볼 수 있다. N차원의(N- dimensional)공간에서 각 단어는 의미를 갖을 것이다. 그 다음, 우리는 각 단어를 one-hot vector로 표현해볼 수 있다. Vector의 크기는 우리가 가진 어휘 수많큼 많을 것이다. 그리 고 one-hot vector방식으로 표현된 각 단어는 완전히 독립된 개체(entity)로 표현될 것이다.
  • 5. NLP이해하기 one-hot encoding One-hot vector방식으로는 단어 간의 유사성을 찾을 수 없다. 백터를 내적하면 0이 나오기 때문이다. 호텔과 모텔의 개념적, 의미적 유사성을 발견할 수가 없다.
  • 6. 해결방안 단어의 백터공간크기를 줄일 필요가 있다. 각 단어의 관계를 발견할 수 있는 방향으로 공간에서 표현하는 방법이 필요하다.
  • 7. Word Embeddings 특정 단어가 문장 내에서 주변에 함께 등장한 각 단어를 dense vector로 표현하여 이웃 단어들을 이용해 그 의미를 예측해 나간다. Word vector 관점에서 중심 단어 w(t)와 그 주변단어(context words)사이에서 중심 단어의 의미를 예측한다. 큰 언어 말뭉치(corpus)에서 많은 위치를 갖고 있는 t를 확인할 수 있다. 단어별로 문장 또는 vector상에서 위치한 포지션. 단어를 백터로 표현하는데 있어 손실(loss)최소화 하는것이 관점.
  • 8. Word2Vec word2vec은 2013년 구글에서 발표된 연구로, Tomas Mikolov라는 사람을 필두로 여 러 연구자들이 모여서 만든 Continuous Word Embedding 학습 모형이다. 재밌는 점 은, 이 논문을 집필한 사람 중 Jeffery Dean (구글의 전설적인 프로그래머로 MapReduce등을 만듬) 도 있다는 점이다. 이 모델이 기존 Neural Net 기반 학습방법 에 비해 크게 달라진 것은 아니지만, 계산량을 엄청나게 줄여서 기존의 방법에 비해 몇 배 이상 빠른 학습을 가능케 하여 현재 가장 많은 이들이 사용하는 Word Embedding 모델이 되었다.
  • 9. Word2Vec • 모든 단어를 vector로 표현하여 단어 사이의 유사성과 차이점을 계산한다. 계산된 결과를 바탕으로 그 주변단어(context word)와 의 관계를 통해 단어가 표현(representation)하는 바를 직접적으로 예측하는 것이다.
  • 10. 알고리즘 Skip-gram(SG) – 타겟 단어를 이용해 주변단어(context words)를 예측 Continuous Bag of Words(CBOW) – 주변단어를 이용해 타겟 단어를 예측
  • 11. CBOW(Continuous Bag-of-Words) • 기존 연구들과 달리, 이 연구에 서는 학습을 시키기 위한 네트 워크 모델을 두 가지 제시하였 다. 한 가지는 CBOW(Continuous Bag-of- Words) 모델이고, 다른 하나는 Skip-gram 모델이다.
  • 12. CBOW(Continuous Bag-of-Words) • CBOW 모델은 크게 Input Layer, Projection Layer, Output Layer로 이루어져 있다. 그림에는 중간 레 이어가 Hidden Layer라고 표시되 어 있기는 하지만, Input에서 중 간 레이어로 가는 과정이 weight 를 곱해주는 것이라기 보다는 단 순히 Projection하는 과정에 가까 우므로 Projection Layer라는 이름 이 더 적절할 것 같다.
  • 13. CBOW(Continuous Bag-of-Words) • Input Layer에서 Projection Layer로 갈 때는 모든 단어들이 공통적으로 사용하는 VxN 크 기의 Projection Matrix W가 있 고 (N은 Projection Layer의 길 이 = 사용할 벡터의 길이), Projection Layer에서 Output Layer로 갈 때는 NxV 크기의 Weight Matrix W’ 가 있다.
  • 14. CBOW(Continuous Bag-of-Words) • Input에서는 NNLM 모델과 똑같 이 단어를 one-hot encoding으로 넣어주고, 여러 개의 단어를 각각 projection 시킨 후 그 벡터들의 평균을 구해서 Projection Layer에 보낸다. • 그 뒤는 여기에 Weight Matrix를 곱해서 Output Layer로 보내고 softmax 계산을 한 후, 이 결과를 진짜 단어의 one-hot encoding과 비교하여 에러를 계산한다.
  • 15. CBOW(Continuous Bag-of-Words) • 따라서 전체 계산량은 CxN + NxV 앞서 말한 V를 lnV로 줄이는 테 크닉을 사용하면 전체 계산량은 CxN + N x lnV 즉, C=10, N=500, V=1,000,000으 로 잡아도 500 x (10+ln(1,000,000)) = 약 10000의 계산량밖에 들지 않는 것이다.
  • 16. Skip-gram -타겟단어로부터 콘텍스트를 예측 1부터 T까지 각 단어(t)의 m 반경만큼 떨어진 주변단어를 예측하는 것. 현재 주어진 중심단어(target word / center word)로부터 가까이 있는 단어의 확률값을 최대화하는 방향으로 함수를 구성한다. 즉, 타겟 단어 주변에 있을수록 높은 점수를 받아 관련성이 높다고 판단한다.
  • 17. Skip-gram • 현재 주어진 단어 하나를 가지고 주위에 등장하는 나머지 몇 가지의 단어들의 등장 여부를 유추하는 것(Skip-gram 모델은 CBOW와는 반대 방향의 모델) • ‘가까이 위치해있는 단어일 수록 현재 단어와 관련이 더 많은 단어일 것이다’ 라 는 생 각 을 적 용 하 기 위 해 멀 리 떨어져있는 단어일수록 낮은 확률로 택하는 방법을 사용한다.
  • 18. Skip-gram • Skip-gram 모델에서 하나의 단어를 처리하는 데 에 드는 계산량은 다음과 같다. C개의 단어를 샘 플링했다고 할 때, • 현재 단어를 Projection 하는 데에 N • Output을 계산하는 데에 N x V, 테크닉을 사용 하면 N x ln V • 총 C개의 단어에 대해 진행해야 하므로 총 C배 • 로 총 C(N + N x lnV) 만큼의 연산이 필요하다.
  • 19. Negative Sampling • 여기서 Q(D=1|w_t,h)는 데이터셋 D에서 콘텍스트 h에서 관찰한 단어가 w일 이진 로지스틱 회귀분석에서의 확률이다. 이는 학습된 embedding vectors를 이용해서 계산된다. 실제 상황에서는, k개의 대비되는(contrastive) 단어들을 noise distribution에서 구하고 이를 평균을 취해서 위의 값을 계산한다. (즉, 몬테 카를로 평균을 계산한다.) logQ :로지스 틱회귀확률 데이터셋 D에서 h에서 관찰한 단 어w 확률구하기 W(~ 노이즈):K개(상상의단어) 대비되는 (contrastive)단어들을 noise distribution 에서 구하고 이를 평균취해 값을 계산. Real Target noise
  • 20. Negative Sampling • 이 목적함수는 모델이 실제 단어에는 높은 확률을 부여하고 노이 즈 단어들에는 낮은 확률을 부여하면 최대화된다. • 이런 종류의 손실 함수(loss function)를 정의하는 것은 수학적으로 적절하다. 제한 상황 안에서 이 함수의 업데이트는 softmax 함수 의 업데이트와 근사하다. • 더욱이 계산 비용의 측면에서, 이런 방식은 매우 효율적이다. 왜냐 하면 전체 어휘 V를 계산하는 것이 아니라 우리가 선택한 k개의 noise 단어들만 계산하면 되기 때문이다. 따라서 이런 트레이닝 시 간을 짧게 줄여준다.
  • 21. Word2Vec : Skip gram model 구현  목표 : 목적함수를 최대화; embedding parameter update  Tensorflow – NCE LOSS  Noise-contrastive estimation  텐서플로우 : tf.nn.nce_loss Word2vec 튜토리얼 – 구글사이트는 404 소스코드: http://solarisailab.com/archives/ 374
  • 22. 데이터셋 • http://mattmahoney.net/dc/ • text8.zip • Data size 17005207 무정부주의(anarchism )는 영국혁 명의 파굴과 프랑스 혁명의 산토 병 등을 포함한 초기 노동 계급 급 진주의 자들에 대해 처음 사용 된 학대의 용어로 창안되었지만이 용 어는 여전히 폭력적인 수단을 사 용하여 폭력적인 수단을 사용하여 폭력적인 수단을 사용하는(used in a pejorative way to describe any act that used violent means to destroy the organization of society) 행위를 묘사하는 데 사용 됩니다. 이런내용…
  • 25.
  • 26. 결론 • Embeddings 평가하기 : 유추(Analogical Reasoning) • Embeddings 는 NLP 의 다양한 예측 문제에 대해 유용하다. 완 전 품사 모델이나 개체명 모델의 학습을 제외하고, embeddings 를 평가하는 한가지 간단한 방법은 이들을 직접 사용하여 king is to queen as father is to ? 와 같이 구문론적인 그리고 의미론 적인 관계를 예측하는 것이다.
  • 27. 결론 • hyperparameters 의 선정은 이 문제의 정확도에 매우 큰 영향 을 줄 수 있다. 이 문제에 대해 최고의 성과를 달성하기 위해선 매우 큰 dataset 을 학습하는 것, hyperparameters 에 대한 신중 한 조절, 그리고 데이터의 이단추출과 같은 기법을 이용하는 것 이 필요하다.
  • 28. 결론 • hyperparameters 의 선정은 이 문제의 정확도에 매우 큰 영향 을 줄 수 있다. 이 문제에 대해 최고의 성과를 달성하기 위해선 매우 큰 dataset 을 학습하는 것, hyperparameters 에 대한 신중 한 조절, 그리고 데이터의 이단추출과 같은 기법을 이용하는 것 이 필요하다.

Notes de l'éditeur

  1. logQ 는 로지스틱 회귀 확률 D = 1|wt,h 는 데이터셋 D에서 콘텍스트 h에서 관찰한 단어가 w k개의 대비되는(contrastive)단어들을 noise distributio에서 구하고 이를 평균을 취해 값을 계산