자연러 임베딩이란
단어를 고정된 크기의 실수 벡터로 표현하는 방법 즉, 텍스트 데이터를 수치 데이터(벡터)로 변환하여 컴퓨터가 처리할 수 있도록 만드는 기술
자연어 임베딩의 역할
- 단어/문장 간 관련도 계산
- 단어 또는 문장을 벡터로 표현하여 벡터 간의 코사인 유사도, 유클리드 거리 등을 계산해 관련성을 측정
- 의미/문법 정보 함축
- 임베딩은 단어의 문맥적 의미와 문법정도를 벡터 공간에 반영
- 예를들어 King과 Queen은 의미적으로 가까운 벡터로 king-man+woman은 'queen'과 유사한 벡터를 나타낸다
벡터화
벡터화란
데이터를 고정된 차원의 벡터로 변환하는 과정. 비정형 데이터를 수치화하여 머신/딥러닝 모델이 이해할 수 있게 한다
tf-idf/BoW -> 희소행렬
임베딩/ 트랜스포머-> 밀집벡터(딥러닝)
=>목적은 비슷한 텍스트는 비슷한 벡터로 나타낸다 => 분류/검색/추천 시스템
필요성
- 기계 학습 모델은 숫자 데이터를 입력으로 받기 떄문에 텍스트 등의 비정형 데이터를 변환
- 벡터화된 데이터는 수학적 연산이 가능하며 패턴 분석 및 예측 모델 학습에 적합
종류
- 수동 벡터화(피쳐 엔지니어링) : 사람이 직접 특징을 정의하고 수치화 하는 방식
- 자동 벡터화(딥 러닝) : 모델이 데이터에서 직접 특징 추출하여 벡터로 변환
적용 분야
- 자연어 처리(NLP) : 문서를 수치 벡터로 변환하여 감성 분석/ 문서 분류/ 번역에 활용
- 컴퓨터 비전 : 이미지 데이터를 픽셀값이나 특징 벡터롤 변환하여 객체 인식 등에 사용
- 추천 시스템 : 사용자와 아이템을 벡터로 변환하여 유사도 기반 추천 수행
벡터화의 한계
- 고차원 벡터일 경우 계산 비용 증가(차원의 저주)
- 적절한 벡터화 방식을 선택하지 않으면 정보 손실 발생
벡터화 방식
형태소 벡터화
Bag of Words(BoW)
- 텍스트에서 각 단어의 출현 빈도를 벡터로 표현
Word2Vec
- 단어를 고차원 벡터로 임베딩하는 방법( 의미적 유사도 반영)
- 윈도우 문맥에서 예측(로컬 예측)
- CBOW:주변 단어를 이용해 중심 단어 예측
- Skip-gram : 중심 단어를 이용해 주변 단어 예측.
Glove
- 코퍼스 전체에서 동시에 등장 확률 반영
- Word2Vec보다 대규모 데이터 학습에 적합(비용이 비싸다, 메모리 부담)
Doc2Vec
LDA
- 문서의 주제를 발견하는데 사용
- 단어가 특정 주제에 속할 확룰을 기반으로 문서 임베딩
- 문서 -> 단어 묶음 그안에 주제가 섞여있음 -> 주제찾기 토픽 모델링
=> 문서 - 주제 확률분포(토픽 비율 벡터) => 기사(스포츠0.5, 경제 0.3 IT 0.2)
FastText
- 단어 자체뿐만 아니라 n-gram정보를 활용
글자 조각을 보고 판단