# CBOW

11개의 포스트
post-thumbnail

단어 임베딩

단어 임베딩 : 단어를 낮은 차원의 벡터로 나타내는 것 원핫 인코딩은 sparse, 용량 많이 차지, 단어 의미 고려 안함 단어의 의미를 좌표로 나타내는 것 또는 수치화 → 의미가 비슷한 단어들은 비슷한 값을 가짐 단어 임베딩의 다차원 공간상에서 방향에 의미가 있어야 함 단어 임베딩 만드는 방법 (데이터가 적을때) NMF : 문서단어행렬에서 토픽모델링 (문서,토픽), (토픽, 단어) .. (데이터 중간) GloVe: 두 단어가 함께 나타난 관계를 이용 (데이터 많음) Word2Vec: 신경망 언어 모형을 이용 Word2Vec 두 단어의 임베딩을 신경망에 입력했을 때, 두 단어가 가까이 나올 확률을 계산하는 신경망을 만들어 학습 ![](https://velog.velcdn.com/images/hajeongjj/post/7f194cc1-37ba-4a10-8438-2

2022년 12월 30일
·
0개의 댓글
·
post-thumbnail

임베딩

정의 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과 혹은 그 과정 전체 목적 단어 및 문장 간 관련도 계산 의미적 및 문법적 정보 함축 Word2Vec (CBoW & Skip-gram) > “… 어머님 나 는 별 하나 에 아름다운 말 한마디 씩 불러 봅니다 …” CBoW 를 사용하면 표시된 단어 정보를 바탕으로 아래의 [ ---- ] 에 들어갈 단어를 예측하는 과정으로 학습이 진행됩니다. > “… 나 는 [ -- ] 하나 에 … “ > “… 는 별 [ ---- ] 에 아름다운 …” > “… 별 하나 [ -- ] 아름다운 말 …” > “… 하나 에 [ -------- ] 말 한마디 …” Skip-gram

2022년 11월 17일
·
0개의 댓글
·

밑바닥부터 시작하는 딥러닝 2 - 3장

word2vec 전 장과는 다른 통계 기반 기법과는 다른 추론 기반 기법이 등장하고 당연하게도 딥러닝 부분도 포함한다. 추론 기반 기법과 신경망 통계 기반 기법의 문제점 (p.115) 통계 기반 기법은 말뭉치 전체의 통계를 단 1회의 처리로 단어의 분산 표현을 얻는다. -> 시간이 오래 걸리고 컴퓨팅 자원이 많이 들어갈 수 밖에 없다. 반면 추론 기반 기법은 신경망을 이용해 미니배치로 학습하는 것이 일반적이다. -> 소량의 학습 샘플씩 반복해서 학습하며 가중치를 갱신해간다. -> 병렬 계산이 가능하고, 계산량이 큰 작업도 가능하게 만든다. 배치 학습과 미니 배치 학습으로 구분할 수도 있겠다. 여기서 추론이란 주변 단어(맥락)이 주어졌을 때 타깃이 되는 단어(미지의 단어)가 무슨 단어가 될 지 추측 하는 작업이다. 추론 문제를 반복해서 풀면서 단어의 출현 패턴을 학습하는 것이다. 신경망에서의 단어 처리 신경망을 이용해 단어를 처리

2022년 9월 23일
·
0개의 댓글
·
post-thumbnail

다양한 NLP Embedding 기법.araboja

Embedding embedding(임베딩)은 사람이 사용하는 언어(자연어)를 컴퓨터가 이해할 수 있는 언어(숫자) 형태인 vector(벡터)로 변환한 결과 혹은 일련 과정을 의미한다. 임베딩의 역할은 (1) 단어 및 문장 간 관련성 계산과 (2) 의미적/문법적 정보 함축이다. 임베딩은 방법에 따라 희소 표현 기반 임베딩, 횟수 기반 임베딩, 예측 기반 임베딩, 횟수/예측 기반 임베딩으로 분류할 수 있다. 1. 희소 표현 기반 임베딩 희소 표현(sparse representation) 기반 임베딩은 대부분 값이 0으로 채워진 경우로, 대표적으로 one-hot encoding이 있다. > #### One-hot Encoding one-hot encoding이란, 주어진 텍스트를 vector로 변호나해 주는 것이다. 즉, N개의 단어를 각 N차원의 벡터로 표현하는 방식으로, 단어가 포함된 위치에 1을, 나머지에 0을 채운다. >

2022년 7월 1일
·
0개의 댓글
·
post-thumbnail

Efficient Estimation of Word Representations in Vector Space 하편

3. New Log-linear Models 이전에 성능이 좋았던 NNLM을 대용량 데이터셋 학습에 사용하기 위해 시키기 위해서는 연산량을 많이 줄인 distributed representation 모델 2가지 CBOW, Skip-gram 제안한다. NNLM에서의 projection layer는 단순히 embedding vector를 concat한 결과이기 때문에 단어간의 연관성 정보는 없고, hidden layer를 거치면서 단어간의 연관성을 학습한다. 하지만 가장 많은 연산량이 발생했던 non-linear hidden layer를 제거했기 때문에 projection layer가 단어간의 연관성 정보도 가져야 한다. 3.1 Continuous Bag-of-Words Model(CBOW) ![](https://velog.velcdn.com/images/ny_/post/730c6359-ef05-42e5-90a2-2eff29cce946/image.png

2022년 6월 1일
·
0개의 댓글
·
post-thumbnail

[NLP] Word Embedding

이 글은 '딥러닝을 이용한 자연어처리 입문'을 참고하여 작성하였습니다. 워드 임베딩이란 텍스트를 컴퓨터가 이해할 수 있도록 숫자로 변환하는 방법입니다. 단어를 표현하는 방법에 따라 자연어처리의 성능이 달라지기 때문에 효율적으로 처리하기 위한 방법이 많이 연구되고 있습니다. 현재까지는 각 단어를 인공 신경망 학습을 통해 벡터화하는 워드 임베딩이 가장 많이 사용되고 있습니다. 워드 임베딩을 이해하기에 앞서 관련된 개념 몇가지를 알아야하는데요, 먼저 희소 표현입니다. 앞서 배웠

2022년 5월 23일
·
0개의 댓글
·
post-thumbnail

[DL] Word2Vec

지난 포스팅에서 빈도 기반으로 단어를 벡터화하는 것에 대해 정리했습니다. 이번에는 분포 기반의 단어 표현(벡터화)에 대해 정리하겠습니다. 분포 가설 등장 횟수 기반의 표현은 간편하지만 몇 가지 한계가 있습니다. 대표적으로 희소 문제가 있는데요. 중요한 단어이더라도 자주 등장하지 않는 단어는 학습에서 가중치를 부여받는데 한계가 있습니다. 분포 기반의 단어 표현은 이와 같은 등장 횟수 기반의 표현의 한계를 보완하기 위해 등장했습니다. 분포 기반의 단어 표현은 분포 가설을 근거로 합니다. 분포 가설이란 비슷한 의미를 지닌 단어는 주변 단어 분포도 비슷하다는 가설입니다. He is a good guy. He is a cool guy. 위 문장에서 good과 cool은 해당 단어 주변에 분포한 단어가 유사하기 때문에 비슷한 의미를 지닐 것이라고 추측할 수 있습니다. 그리고 분포 기반의 표현은 이 분포 가설에 기반하여 주변 단어의 분포를 기준으로 단어의 벡터 표현을 결정

2022년 3월 12일
·
0개의 댓글
·

Distributed Representation

단어의 분산 표현(Distributed Representation) 분포가설 비슷한 의미를 가진 단어는 주변 분포도 비슷할 것이다 라는 가설 원핫 인코딩 : 단어를 벡터화하고자 할 때 가장 쉬운 방법 단점은 단어 사이의 관계를 전혀 알 수 없고 차원이 너무 커짐 임베딩 : 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과 혹은 그 과정 전체를 의미 특징 : 벡터 내의 각 요소가 연속적인 값을 가진다. Word2Vec(임베딩의 대표적인 모델) : 단어를 바로 벡터로 변환 단점 : 말뭉치에 등장하지 않는 단어는 벡터화 할 수 없다. (OOV) -> 단점 보완하기위한 모델은 fest-text CBoW : 주변 단어에 대한 정보를 기반으로 중심 단어의 정보를 예측모델 Skip-gram : 중심 단어의 정보를 기반으로 주변 단어의 정보를 예측 Word2Vec 구조 입력 :

2022년 3월 3일
·
0개의 댓글
·
post-thumbnail

[밑바닥부터 시작하는 딥러닝2] 05. Word Embedding

자연어: 우리가 평소에 쓰는 말 자연어 처리(NLP; Natural Language Processing): 우리의 말을 컴퓨터에게 이해시키기 위한 분야 말은 문자로 구성되고, 문자는 단어로 구성된다. $\therefore$ NLP에서는 단어의 의미를 이해시키는 것이 중요함. 단어의 의미 표현 시소러스(유의어 사전) 인력을 동원해 동의어, 유의어 그룹 별로 분류 NLP에서는 '상위와 하위', '전체와 부분' 등 더 세세한 관계까지 정의 단어 간의 관계 그래프로 표현하면 단어 사이의 관계 학습 가능(단어 네트워크) car = auto, automobile, machine, motocar object $\ni$ motor vehicle $\ni$ car, go-kart, truck WordNet: 유명한 시소러스 문제점 1. 시대 변화에 대응 어려움 2. 사람의 비용이 큼

2022년 1월 24일
·
0개의 댓글
·
post-thumbnail

[NLP실습]1.자연어 처리 개요-단어 임베딩

이번 포스팅은 앞의 이론에서 언급했었던 임베딩 방법들을 한번 더 설명하고, 구현해보겠습니다. 이론 포스팅은 여기를 클릭해주세요. ​ 단어 임베딩이란 컴퓨터가 언어적인 의미가 담겨있는 자연어를 인식하기 위해, 언어적 특성을 반영하여 수치화 하는 것을 뜻합니다.단어 임베딩은 다음과 같이 크게 3가지로 나눌 수 있습니다. ​ 1. 원핫 인코딩(one-hot enocoding) ▶구현 포인트 (1) 단어의 중복을 제거해줍니다. (2) 단어의 수만큼 배열을 만들고, 0으로 채워줍니다. (3) 해당 단어의 인덱스를 찾고, 그 부분을 1로 만들어줍니다. 아래의 코드는 아무

2021년 1월 21일
·
0개의 댓글
·
post-thumbnail

[NLP이론]1.자연어 처리 개요-단어 임베딩

▶자연어 처리란? "어떻게 자연어를 컴퓨터에게 인식시킬 수 있을까?"에 대한 문제입니다. 즉, 컴퓨터가 인간의 언어를 이해하고 분석 가능한 모든 분야를 뜻합니다. 자연어 처리는 목적에 따라 크게 4가지로 나뉩니다. (1) 텍스트 분류 (2) 텍스트 유사도 (3) 텍스트 생성 (4) 기계 이해 위의 모든 분야들이 수행되기 위해서는 가장 먼저 단어가 표현이 되어야 합니다. 컴퓨터가 텍스트를 인식하는 방법들 중 가장 기본적인 방법은 아스키 코드로 표현하는 것 입니다. 아스키 코드는 아래와 같이 자연어를 0과 1로 수치화한 값을 뜻합니다. 이 방법은 단순히 컴퓨터가 문자를 인식하기 위한 값이기 때문에, 언어적인 특징이 전혀 담겨있지 않습니다. 그렇다면, 컴퓨터가 언어적인 의미가 담겨있는 자연어를 인식하기

2021년 1월 20일
·
0개의 댓글
·