Hey Tech

[NLP] Word Embedding의 이해: 희소표현과 밀집표현 본문

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

[NLP] Word Embedding의 이해: 희소표현과 밀집표현

Tony Park (토니) 2022. 4. 6. 16:31
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. 희소표현(Sparse Representation)
2. 밀집표현(Dense Representation)
3. 워드임베딩(Word Embedding)

들어가며

워드 임베딩(Word Embedding)은 단어(Word)를 컴퓨터가 이해할 수 있도록 벡터로 표현하는 기법 중 하나인데, 특히 밀집표현(Dense Representation) 방식을 통해 표현하는 기법을 말합니다. 밀집표현과 반대되는 개념이 희소표현(Sparse Representation)입니다. 워드 임베딩을 이해하기에 앞서 희소표현과 밀집표현에 대해 알아봅니다.

1. 희소표현(Sparse Representation)

희소표현은 데이터를 벡터 또는 행렬을 기반으로 수치화하여 표현할 때 극히 일부의 인덱스만 특정 값으로 표현하고, 대부분의 나머지 인덱스는 의미 없는 값으로 표현하는 기법입니다. 대표적으로 원-핫 인코딩(One-Hot Encoding) 방식이 있습니다. 원-핫 인코딩은 전체 단어 집합의 크기를 갖는 벡터에서 표현할 단어의 인덱스만 1로 나타내고, 니머지는 모두 0으로 표현하는 기법입니다. 여기서 단어 집합이란 서로 다른 단어의 집합입니다. 즉, 단어 집합에서는 'Apple'과 'Apples'를 다른 단어로 인식합니다. 왜냐하면 컴퓨터는 단수형, 복수형이라는 개념을 모르기 때문이죠.
원핫인코딩은 단어 개수가 많아질수록, 즉 단어 집합의 크기가 커질수록 필요한 벡터 공간이 함께 증가하는데, 이는 불필요한 벡터 공간의 낭비를 유발합니다. 예시와 함께 살펴보겠습니다. 단어 집합의 크기가 10만 일 때 3번째 인덱스에 해당하는 'Apple'이라는 단어를 원핫벡터로 표현하면 다음과 같습니다.

$$ Apple = [0, 0, 1, 0, 0, ..., 0] $$

즉, 3번째 이후 인덱스인 99,997개의 값은 모두 0으로 표현됩니다. 이처럼 희소표현은 불필요한 벡터 공간의 낭비를 유발합니다. 더불어, 카운트 기반의 단어 표현기법 중 하나인 단어문서행렬(Document Term Matrix, DTM) 역시 희소표현을 사용합니다. 이러한 원핫인코딩, 카운트 기반 단어 표현기법은 단어의 의미를 반영하지 못합니다. 왜냐하면 단어의 의미는 고려하지 않고 단순히 어떤 단어가 문서에서 몇 번 등장했는지만 고려하기 때문입니다.

2. 밀집표현(Dense Representation)

밀집표현은 앞서 살펴본 희소표현과 반대되는 단어표현 방법으로써 텍스트를 실숫값으로 구성하여 사용자가 설정한 차원의 벡터로 표현합니다. 희소표현에서는 단어 집합의 크기만큼 벡터 또는 행렬의 차원이 결정되고, 표현할 단어만 1이 아닌 정수로, 나머지는 0으로 표현했습니다. 반면, 밀집표현은 사용자가 임의로 설정한 차원에서, 단순히 0 또는 1의 값만으로 데이터를 표현하는 것이 아닌 실숫값으로 표현합니다. 앞서 활용한 예시에서, 벡터는 단어의 인덱스를 제외한 단어 집합의 크기만큼 0의 값을 가졌습니다. 사용자가 벡터의 크기를 64로 설정했다면, 밀집표현으로 해당 단어를 표현하면 다음과 같이 64차원을 갖는 벡터 형태로 나타낼 수 있습니다.

$$ Apple = [0.12, 0.77, 0.84, 0.11, 0.2, ..., 0.56] $$

위와 같은 벡터는 10만 차원을 갖던 희소벡터와 달리 차원의 크기를 줄이고 실숫값을 밀집하여 표현했다고 해서 밀집벡터(Dense Vector)라고 부릅니다.

3. 워드임베딩(Word Embedding)

워드임베딩이란 단어를 밀집벡터 형태로 표현하는 기법입니다. 여기서 임베딩을 통해 얻은 결과인 밀집벡터를 임베딩 벡터(Embedding Vector)라고 부릅니다. 워드임베딩 방법론으로는 LSA, Word2Vec, Glove, FastText, ELMO 등이 있습니다. 다음 포스팅에서는 워드임베딩 방법론에 대해 알아봅니다.

📚 참고할 만한 포스팅

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


오늘은 워드임베딩을 이해하기 위한 희소표현과 밀집표현에 대해 알아봤습니다.
포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :)
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다.
고맙습니다😊

728x90
반응형