본문 바로가기

딥러닝

(21)
Doc2Vec으로 공시 사업보고서 유사도 계산하기 Word2Vec은 단어를 임베딩하는 워드 임베딩 알고리즘이었습니다. Doc2Vec은 Word2Vec을 변형하여 문서의 임베딩을 얻을 수 있도록 한 알고리즘입니다. Word2Vec은 단어를 벡터화하는 워드 임베딩 알고리즘이고, Doc2Vec은 문서를 벡터화하는 독립적인 문서 임베딩 알고리즘입니다. Word2Vec은 단어의 분산 표현(distributed representation)을 학습합니다. 이는 단어를 고정된 차원의 벡터로 표현하면서도 각 단어의 의미와 관계를 보존하는 것을 의미합니다. Doc2Vec은 문서 전체를 하나의 벡터로 표현합니다. 이를 위해 Doc2Vec은 주어진 문서와 함께 그 문서가 속한 문서 집합(corpus)에 속한 다른 문서들도 함께 학습하는 것이 특징입니다. Word2Vec과 마..
단순한 word2vec 원래 word2vec은 구글에서 개발한 자연어 처리를 위한 도구로서, 단어를 벡터로 표현하여 단어 간의 유사성을 계산하는 기능을 제공하였습니다. 하지만 이후에 이 도구가 사용한 알고리즘인 CBOW와 skip-gram이라는 모델이 유명해져서, word2vec이라는 용어는 이 모델을 가리키는 것으로도 자주 사용되게 되었습니다. word2vec에서는 CBOW 모델과 skip-gram 모델 두 가지를 사용하며, 각각의 모델에 대해 신경망을 구성합니다. CBOW 모델은 주변 단어들을 입력으로 받아 중앙 단어를 예측하는 방식이고, skip-gram 모델은 중앙 단어를 입력으로 받아 주변 단어를 예측하는 방식입니다. 1.CBOW 모델의 추론 처리 CBOW 모델은 Context Bag of Words의 약자로, 주변 ..
추론 기반 기법과 신경망 통계 기반 기법과 추론 기반 기법 단어의 의미는 주변 단어와의 관계에 따라 형성된다는 분포 가설은 자연어 처리 분야에서 매우 중요한 개념 중 하나입니다. 통계 기반 기법과 추론 기반 기법은 이 분포 가설을 이용하여 단어를 벡터로 표현하는 방법 중 두 가지입니다. 통계 기반 기법은 주변 단어의 출현 빈도를 집계하여 단어를 벡터로 변환하고, 추론 기반 기법은 주변 단어가 주어졌을 때 중심 단어가 출현할 확률을 예측하여 단어를 벡터로 변환합니다. 1.통계 기반 기법의 문제점 통계 기반 기법은 주변 단어의 빈도를 기초로 단어를 표현한다. 단어의 동시발생 행렬을 만들고 그 행렬에 SVD를 적용하여 밀집벡터(단어의 분산 표현)을 얻었습니다. 통계 기반 기법 통계 기반 기법은 단어의 동시발생 행렬을 만들어서 해당 행..
문서 임베딩 : 워드 임베딩의 평균(Average Word Embedding) 임베딩은 단어나 문장을 벡터 형태로 표현하는 기술입니다. 따라서 특정 문장 내의 단어들의 임베딩 벡터들의 평균값을 구하면 그 문장의 벡터를 얻을 수 있습니다. 이를 활용하여, 문서의 벡터를 구하고 분류 모델의 입력으로 사용하는 방법이 있습니다. 이 경우, 단어의 순서나 문법적인 정보가 반영되지 않아서 성능이 다소 떨어질 수 있지만, 임베딩이 잘 학습되어 있다면 상대적으로 적은 계산 비용으로 효과적인 분류 모델을 구축할 수 있습니다. 1. 데이터 로드와 전처리 from tensorflow keras.datasets import imdb Keras에서 제공하는 imdb 데이터셋을 로드할 때 imdb.load_data()와 imdb.data_load() 두 가지 방법이 있습니다. imdb.load_data()..
임베딩 벡터의 시각화(Embedding Visualization) 구글은 임베딩 프로젝터(embedding projector)라는 데이터 시각화 도구를 지원합니다. 학습한 임베딩 벡터들을 시각화해봅시다. 임베딩 프로젝터 논문 : https://arxiv.org/pdf/1611.05469v1.pdf 임베딩 프로젝터(Embedding Projector)는 TensorFlow로 구현된 오픈소스 시각화 도구입니다. 임베딩 프로젝터는 워드 임베딩과 같은 다차원 벡터를 시각화하여 고차원 공간에서의 유사도를 직관적으로 이해할 수 있도록 도와줍니다. 이를 통해 임베딩 공간에서 단어들의 관계를 쉽게 파악하고, 데이터의 패턴을 발견하며, 모델의 성능을 개선할 수 있는 힌트를 얻을 수 있습니다. 임베딩 프로젝터는 구글에서 개발한 TensorFlow의 기능 중 하나이며, 웹 브라우저 상에서..
워드투벡터(Word2Vec) 원-핫 벡터 : 단어 벡터 간 유의미한 유사도를 계산할 수 없다 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 할 수 있는 방법이 필요합니다. 이를 위해서 사용되는 대표적인 방법이 워드투벡터(Word2Vec)입니다. 원-핫 벡터는 희소 표현 방법이기 때문에 단어 간 유사도를 계산하기 어렵습니다. 이러한 문제를 해결하기 위해 워드투벡터(Word2Vec)와 같은 방법이 개발되었습니다. 워드투벡터는 단어를 고정된 길이의 밀집 벡터로 표현하며, 이를 통해 단어 간 유사도를 계산할 수 있습니다. 워드투벡터는 인공 신경망 모델을 이용하여 학습하는데, 대표적인 모델로는 CBOW(Continuous Bag-of-Words)와 Skip-gram이 있습니다. http://w.elnn.kr/sear..
워드 임베딩(Word Embedding) 워드 임베딩(Word Embedding)은 단어를 벡터로 표현하는 방법으로, 단어를 밀집 표현으로 변환합니다. 1. 희소 표현(Sparse Representation) 원-핫 인코딩을 통해서 나온 원-핫 벡터들은 표현하고자 하는 단어의 인덱스의 값만 1이고, 나머지 인덱스에는 전부 0으로 표현되는 벡터 표현 방법이었습니다. 이렇게 벡터 또는 행렬(matrix)의 값이 대부분이 0으로 표현되는 방법을 희소 표현(sparse representation)이라고 합니다. 원-핫 벡터는 희소 벡터(sparse vector)입니다. 원-핫 인코딩을 통해 얻어진 벡터는 대부분의 원소가 0으로 표현되기 때문에 희소 벡터라고 부릅니다. 이러한 희소 표현은 메모리 공간을 많이 차지하게 되는 문제가 있습니다. 이에 대한 대..
여러가지 유사도 기법 자연어 처리에서 사용되는 여러 가지 유사도 기법: 코사인 유사도 (Cosine Similarity): 문서나 단어들을 벡터로 변환하여 두 벡터 사이의 코사인 각도를 계산하여 유사도를 측정하는 방법입니다. 자카드 유사도 (Jaccard Similarity): 두 집합 사이의 유사도를 측정하는 방법으로, 두 집합에서 공통으로 포함된 원소의 개수를 전체 원소의 개수로 나눈 값입니다. 유클리디안 거리 (Euclidean Distance): 두 점 사이의 직선 거리를 계산하여 유사도를 측정하는 방법입니다. 맨하탄 거리 (Manhattan Distance): 두 점 사이의 맨하탄 거리를 계산하여 유사도를 측정하는 방법으로, 좌표축에 수직으로 이동하는 거리의 합입니다. 편집 거리 (Edit Distance): 두 문..