Hey Tech

[NLP] Word2Vec: (4) Negative Sampling 개념 및 소개 본문

AI & 빅데이터/자연어처리(NLP)

[NLP] Word2Vec: (4) Negative Sampling 개념 및 소개

Tony Park (토니) 2022. 4. 15. 17:00
728x90
반응형

 

 

📌 Text 빅데이터분석 플랫폼 베타테스트 참가자 모집 중!(네이버페이 4만 원 전원 지급)

 

👋 안녕하세요, 코딩이 필요 없는 AI/빅데이터 분석 All in One 플랫폼 <DATA101> 개발팀입니다.
😊 저희 서비스를 사용해 보시고 경험담을 들려주세요 :)
💸 참여해 주신 "모든" 분들께 네이버페이 4만 원 쿠폰을 지급해 드립니다.

👨‍💻 참여 희망 시 카톡플러스친구 1:1 채팅 or 인스타그램 DM 부탁드립니다 :)

📆 참여기간 : 11/25(월)~11/29(금) 11:00~21:00 중 택1 (1시간 1타임)
👉 참여장소 : 강남역 인근 스터디카페 미팅Room
📍 소요시간 : 총 40분 내외(서비스 체험 및 인터뷰 포함)
✅ 참가조건 : Text 빅데이터 분석 업무 경험자

👉 참가 가능일정 조회하기 : https://url.kr/n8k8gu
- 카톡플친 : http://pf.kakao.com/_SxltHG/chat
- 인스타그램 : https://www.instagram.com/data101.official/


📚목차

1.  등장배경
2.  개념
3.  Sample 선정
4.  Word2Vec 성능

1.  등장 배경

Negative Sampling 방법은 Word2Vec의 CBOWSkip-gram 모두 단어 개수가 많아질수록 계산 복잡도가 증가하여 연산 속도가 저하된다는 한계점을 보완하기 위해 제안되었습니다. CBOW와 Skip-gram의 목적함수는 아래와 같습니다.

 

$$ \mathcal{L}_{CBOW} = -\sum_{j=1}^{|V|}y_{j}log(\hat{y}) $$

 

$$ \mathcal{L}_{Skip-gram} =  -\sum_{j=0, j\ne{m}}^{2m}\sum_{k=1}^{|V|}y_{k}^{(c-j)}\log\hat{y_{k}}^{(c-j)} $$

 

수식에서 알 수 있듯이, CBOW와 Skip-gram는 역전파 과정에서 단어 집합의 크기(\(V\))만큼 연산이 필요합니다. 따라서 단어 개수가 많아질수록 계산 복잡도 역시 높아지고, 이는 모델 학습 속도 저하를 유발합니다. 즉, 기존 Word2Vec 방식은 모든 단어의 임베딩 벡터값을 업데이트합니다. 예를 들어, 기존 Word2Vec은 현재 window 내 타겟 단어와 주변 단어가 '고양이', '츄르', '참치', '그루밍'과 같은 단어라고 해보겠습니다. 기존에는 이러한 단어와 함께 등장하기에는 거리가 먼 '맥북', '정수기', '세탁기'와 같은 수많은 단어의 임베딩 벡터까지 업데이트하는 비효율적인 학습 방식을 사용하였습니다. Negative Sampling은 이러한 계산 복잡도를 줄이기 위해 고안된 효율적인 기술입니다. 이어지는 섹션에서 각각 알아봅니다.

2.  개념

Negative Sampling은 학습 과정에서 전체 단어 집합의 임베딩 벡터를 업데이트하지 않고 일부 단어 집합만 업데이트하는 방법입니다. 여기서 일부 단어 집합은 다음과 같이 \(2\)가지로 구성됩니다. 첫째, 앞서 예시로 사용했던 '고양이', '츄르', '참치', '그루밍'과 같이 타겟 단어 주변에 등장한 단어로 구성된 Positive sample입니다. 둘째, '맥북', '정수기', '세탁기'와 같이 타겟 단어 주변에 등장하지 않은 단어로 구성된 Negative sample입니다.

즉, Negative Sampling 기법은 타겟 단어와 주변 단어인 Positive sample은 모두 업데이트하고, 타겟 단어와 거리가 먼 Negative sample은 일부만 추출해서(sampling) 업데이트합니다. 즉, '고양이'와 같은 타겟 단어와 거리가 먼 전체 단어가 아닌 일부 단어(e.g., '맥북', '정수기', '세탁기')만 업데이트하는 것입니다.

3.  Sample 선정

3.1.  Sample 선정 기준

그럼, 어떤 기준으로 Negative Sample을 추출할까요? Negative Sampling은 전체 문장에서 자주 사용되는 단어에 높은 가중치를 부여하고, 우선적으로 해당 단어를 선별합니다. 특정 단어가 선별될 확률 \(P()\)의 수식은 아래와 같습니다.

 

$$ P_{n}(w_{i}) = (\frac{f(w_{i})}{\sum_{j=1}^{n}f(w_{j})})^{3/4} $$

 

여기서 \(w_{i}\)는 \(i\)번째 단어를 의미하고, \(f(w_{i})\)는 해당 단어의 출현 빈도를 의미합니다. 즉, \(\sum_{j=1}^{n}f(w_{j})\)는 사실 중복을 허용한 전체 단어의 수입니다. 논문에 따르면, \(\frac{3}{4}\)은 상수인데, 이 값으로 제곱을 취해 주었을 때 성능이 가장 우수하다고 합니다. 

3.2.  Sample 선정 개수

그럼, Negative sample은 몇 개를 선별하는 게 효과적일까요? 정답은 데이터셋의 크기에 따라 다릅니다. 논문에 따르면, 학습 데이터셋이 작을 때는 \(5\)~\(20\)개 사이의 Negative sample을 추출하는 게 효과적이고, 학습 데이터셋이 클 경우 \(2\)~\(5\)개 사이의 sample을 선정하는 게 효과적이라고 합니다. 

4.  성능

Word2Vec의 성능은 다음과 같으며 SGNS가 가장 우수한 것으로 알려져 있습니다.

 

CBOW < Skip-gram < Skip-gram with Negative Sampling(SGNS)

 

흔히 Word2Vec에서 Skip-gram 방법을 사용한다고 하면 Negative Sampling이 적용된 SGNS를 사용한다고 간주하시면 됩니다.

📚 참고할 만한 포스팅

1. [NLP] Bag of Words(BoW) 개념 및 실습
2. [NLP] 문서 단어 행렬(DTM) 개념 이해
3. [NLP] TF-IDF 개념 및 계산 방법
4. [NLP] Word Embedding의 이해: (1) 희소표현 및 밀집표현
5. [NLP] 언어모델(Language Model)의 개념 및 특징
6. [NLP] N-gram 언어 모델의 개념, 종류, 한계점
7. [NLP] 언어모델의 평가지표 'Perplexity' 개념 및 계산방법
8. [NLP] Word2Vec: (1) 개념
9. [NLP] Word2Vec: (2) CBOW 개념 및 원리
10. [NLP] Word2Vec: (3) Skip-gram
11. [NLP] Word2Vec: (4) Negative Sampling
12. [NLP] 문서 유사도 분석: (1) 코사인 유사도(Cosine Similarity)
13. [NLP] 문서 유사도 분석: (2) 유클리디안 거리(Euclidean Distance)
14. [NLP] 문서 유사도 분석: (3) 자카드 유사도(Jaccard Similarity)

👨‍💻 맞춤 서비스

저희 AI/BigData 분석 솔루션 전문 브랜드 <데이터워너원 DATA101>에서는

맞춤형 데이터 수집부터 통계분석, 텍스트마이닝, AI 모델링, 논문작성을 지원해 드립니다 :)

자세한 내용은 아래 링크를 참고해 주세요!

 

https://kmong.com/gig/601647

 

데이터분석, 통계분석, 논문작성 지원해 드립니다. - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>Python, SPSS, Tableau를 활용해 <strong>...

kmong.com

https://kmong.com/gig/601992

 

텍스트 데이터 분석/텍스트마이닝NLP 도와드립니다. - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>대기업 AI/빅데이터 연구원 출신으로 구성된 법인 주식회사 유에프5는 Py...

kmong.com

https://kmong.com/gig/582649

 

유튜브 댓글 원하는 만큼 수집해 드립니다/웹 크롤링 - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p><strong style="font-size: 24px;&q...

kmong.com

https://kmong.com/gig/586088

 

모바일 앱 리뷰 크롤링/구글 플레이 스토어 - 크몽

데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p><strong>구글 플레이 스토어 앱 리뷰 1시간 안에 수집해 ...

kmong.com

 


오늘은 Negative Sampling의 개념과 등장배경에 대해 알아봤습니다.

포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :)

그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다.

고맙습니다😊

728x90
반응형