임베딩6 한국어 임베딩 - 단어 수준 임베딩 (잠재 의미 분석, GloVe, Swivel) 1. 잠재 의미 분석 잠재 의미 분석(LSA, Latent Semantic Analysis)이란 단어-문서 행렬이나 TF-IDF(Term Frequency-Inverse Document Frequency) 행렬, 단어-문맥 행렬 같은 커다란 행렬에 차원 축소 방법의 일종인 특이값 분해를 수행해 데이터의 차원 수를 줄여 계산 효율성을 키우는 한편 행간에 숨어 있는 잠재 의미를 이끌어내기 위한 방법론이다. 단어-문서 행렬이나 단어-문맥 행렬 등에 특이값 분해를 시행한 뒤, 그 결과로 도출되는 행 벡터들을 단어 임베딩으로 사용할 수 있다. 잠재 의미 분석은 GloVe나 Swivel과 더불어 행렬 분해(matrix factorization) 기반의 기법으로 분류된다. 1.1 PPMI 행렬 단어-문서 행렬, TF.. 딥러닝/NLP 2022. 10. 21. 한국어 임베딩 - 단어 수준 임베딩 (Word2Vec, FastText) 1. Word2Vec Word2Vec은 2013년 구글 연구 팀이 발표한 기법으로 가장 널리 쓰이고 있는 단어 임베딩 모델이다. Word2Vec 기법은 두 개의 논문으로 나누어 발표됐다. Mikolov et al. (2013a)에서는 Skip-Gram과 CBOW라는 모델이 제안됐고, Mikolov et al. (2013b)은 이 두 모델을 근간으로 하되 네거티브 샘플링 등 학습 최적화 기법을 제안하였다. 1.1 모델 기본 구조 Mikolov et al. (2013a)이 제안한 CBOW와 Skip-gram 모델의 기본 구조는 다음 그림과 같다. CBOW는 주변에 있는 문맥 단어(context word)들을 가지고 타깃 단어(target word) 하나를 맞추는 과정에서 학습된다. Skip-gram 모델은 .. 딥러닝/NLP 2022. 10. 20. 한국어 임베딩 - 단어 수준 임베딩 (NPLM) 이 장에서는 다양한 단어 수준 임베딩 모델을 설명한다. NPLM, Word2Vec, FastText 등은 예측(prediction) 기반 모델, LSA, GloVe, Swivel 등은 행렬 분해(matrix factorization) 기반의 기법들이다. 가중 임베딩(Weighted Embedding)은 단어 임베딩을 문장 수준으로 확장하는 방법이다. 1. NPLM Neural Probabilistic Language Model(NPLM)은 단어들의 연쇄가 주어졌을 때 다음 단어가 무엇인지 맞추는 과정에서 분산표상된 단어 벡터들을 만드는 방법론이다. 자연어 처리 분야에서 임베딩 개념을 널리 퍼뜨리는 데 일조한 선구자적 모델로서 임베딩 역사에서 차지하는 역할이 작지 않다. 1.1 NPLM 개요 NPLM은 딥.. 딥러닝/NLP 2022. 10. 3. 한국어 임베딩 - 한국어 전처리 이 장에서는 임베딩 학습을 위한 한국어 데이터의 전처리 과정을 다룬다. 형태소 분석 방법에는 국어학 전문가들이 태깅한 데이터로 학습된 모델로 분석하는 지도 학습(supervised learning) 기법과 우리가 가진 말뭉치의 패턴을 학습한 모델을 적용하는 비지도 학습(unsupervised learning) 기법이 있다. 지도 학습 기반 형태소 분석 품질 좋은 임베딩을 만들기 위해서는 문장이나 단어의 경계를 컴퓨터에 알려줘야 한다. 그렇지 않으면 어휘 집합에 속한 단어 수가 기하급수적으로 늘어나서 연산의 비효율이 발생한다. 특히 한국어는 조사와 어미가 발달한 교착어(agglutinative language)이기 때문에 이러한 처리를 좀 더 섬세히 해줘야 한다. 예를 들어 한국어 동사 [가다]는 다음과 .. 딥러닝/NLP 2022. 9. 24. 한국어 임베딩 - 벡터가 어떻게 의미를 가지게 되는가 자연어 계산과 이해 임베딩은 자연어를 컴퓨터가 처리할 수 있는 숫자들의 나열인 벡터로 바꾼 결과이다. 컴퓨터는 임베딩을 계산/처리해 사람이 알아들을 수 있는 형태의 자연어로 출력한다. 그러면 임베딩에 자연어 의미를 어떻게 함축할 수 있을까. 그 비결은 자연어의 통계적 패턴 정보를 통째로 임베딩에 넣는 것이다. 자연어의 의미는 해당 언어 화자들이 실제 사용하는 일상 언어에서 드러나기 때문이다. 임베딩을 만들 때 쓰는 통계 정보는 크게 세 가지가 있다. 첫째는 문장에 어떤 단어가 (많이) 쓰였는지이고, 둘째는 단어가 어떤 순서로 등장하는지이며, 마지막으로는 문장에 어떤 단어가 같이 나타났는지와 관련된 정보다. 구분 백오브워즈 가정 언어 모델 분포 가정 내용 어떤 단어가 (많이) 쓰였는가 단어가 어떤 순서로 .. 딥러닝/NLP 2022. 9. 19. 한국어 임베딩 - 서론 임베딩이란 자연어 처리 분야에서 임베딩이란, 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과 혹은 그 일련의 과정 전체를 의미한다. 단어나 문장 각각을 벡터로 변환해 벡터 공간으로 '끼워 넣는다(embed)'는 의미에서 임베딩이라는 이름이 붙었다. 임베딩이라는 개념은 자연어 처리 분야에서 꽤 오래전부터 사용한 것으로 보인다. 하지만 본격적으로 통용되기 시작한 것은 딥러닝의 대부 요슈아 벤지오 연구 팀이「A Neural Probabilistic Language Model」(Bengio et al., 2003)을 발표하고 나서부터다. 임베딩의 역할 임베딩은 다음 역할을 수행할 수 있다. 단어 / 문장 간 관련도 계산 의미적 / 문법적 정보 함축 전이 학습 단어 / 문장 간 관련도.. 딥러닝/NLP 2022. 9. 19. 이전 1 다음 반응형