# word2vec

64개의 포스트
post-thumbnail

다섯 살도 이해하는 자연어 처리 Intro

자연어처리의 핵심은 컴퓨터가 사람의 말을 이해하도록 하는 것입니다. 컴퓨터는 숫자만 이해할 수 있는 상태입니다. 컴퓨터에 단어를 가르치기 위해서는 숫자만을 사용해서 단어의 의미를 설명해야 할 것입니다. 가장 단순하게는 각 단어에 사전 순서(ㄱㄴㄷ..)대로 숫자를 매기는 방법이 있을 것입니다. 하지만 이 방법은 전혀 숫자가 단어의 의미를 담지 못하고 있습니다. 컴퓨터가 단어의 의미를 이해하지 못하면 큰 문제가 발생합니다. 예를 들어 네이버 검색창에 '삿포로 숙소'를 검색했을 때 제대로 된 검색 시스템이라면 '삿포로 게스트 하우스', '삿포로 료칸', '삿포로 호텔'과 같은 유사 단어에 대한 결과도 함께 보여줄 수 있어야 합니다. 하지만 단어간 유사성을 계산할 수 없다면, '게스트 하우스'와 '료칸'과 '호텔'이라는 연관 검색어를 보여줄 수 없습니다. 그렇다면 사람들은 어떻게 단어의 의미를 정리하려는 노력을 해왔을까요? 바로 단어의 족보를 만드는 것이었는데요, 가족의 뿌

5일 전
·
0개의 댓글
·

[논문 소개]웹 컴포넌트의 내부 구조를 활용한 마이크로서비스 자동 식별

📕 서론 > 제 1저자로 게제된 나의 두 번째 논문이다. 이 논문은 Full Paper가 아니라 Short Paper 형태로 게제 되었다. 해당 논문은 Lab에서 같이 연구를 수행하는 학부 연구생과 의논 및 실험을 수행하며 협력한 결실이라고 볼 수 있다. 이전에 소개한 '마이크로서비스의 자동 식별을 위한 효과적인 재사용 기반 접근 방법' 논문에서와 목표는 동일하다. 레거시 웹 앱으로부터 마이크로서비스를 식별하고자 하는 것이 목표이다. 그러나 단순히 컴포넌트를 단어의 모음으로 간주하는 정적 분석방식이 아니라 컴포넌트 내부에 속한 단어들의 문맥을 고려한다는 차이점이 존재한다. 컴포넌트에 속한 단어들의 문맥을 고려하기 위해서 컴포넌트를 단어간 계층 구조를 가지는 트리 형태로 나타내고, 트리에서 단어와 단어 사이의 이웃 관계(앞, 뒤 단어)를 통해 컴포넌트를 임베딩한다. 또한 오픈 소스 웹 앱 다섯 가지에 대해 평가를 진행하며, 기존 기법 세 가지와 더불어 재사용 기반 접근 방법과도

2023년 8월 29일
·
0개의 댓글
·
post-thumbnail

[NLP 기초] 1. RNN(DL 이전의 학습)

1. Deep Learning 이전의 LNP Bag-of-Words Bag-of-words는 단어들의 관계가 아니라 등장 빈도(frequency)에 기반하여 텍스트를 데이터화 하는 방법입니다. 이 방법은 크게 2가지 단계로 구성됩니다. 1단계) 사전(Vocabulary) 구축 텍스트 데이터 셋에서 unique한 단어만 모아 vocabulary을 구축합니다. 예를 들어 "I really really like DL"이라는 문장이 있다면 중복되는 단어는 한 번만 수집되도록 V = {I, really, like, DL}이라는 vocabulary를 생성합니다. 2단계) one-hot-vector로 표기 Vocabulary의 size(포함된 단어의 수)가 n개 라면, 각각의 단어는 n차원 벡터로 표현할 수 있습니다. 위의 예시 문장은 [1000]+2*[0100]+[0010]+[0001]=[1211] 따라서 [1211]이라는 벡터로 표현할 수 습니다. >one

2023년 8월 18일
·
1개의 댓글
·
post-thumbnail

[DeepLearning] Word2Vec 공부하기

워드투벡터 (Word2Vec) 원-핫 벡터는 단어집합을 기반으로 0과 1로만 이루어져 있기에 단어 벡터 간의 유사도를 계산하기 힘들다. 그래서 이를 해결하기 위해 단어 간 유사도를 반영하는(의미를 수치화하는) 방법으로 워드투벡터를 사용할 수 있다. 워드투벡터를 이용한 벡터 연산의 아주 쉬운 예시를 들어보면 다음과 같다. > 한국 - 서울 + 도쿄 = 일본 어떻게 이런 단어의 의미를 반영할 수 있을까? 1. 희소 표현 (Sparse Representation) 희소 표현이란 대부분의 백터/행렬의 값이 0으로 표현되는 방법이다. 원-핫 벡터가 이에 해당된다. 앞서 말한 것처럼 희소 표현 방법은 벡터간 유사성을 표현할 수 없어서, 워드투벡터는 분산 표현을 사용한다. 고양이 = [0, 0, 0, 0, 0, 1, 0, ... , 0] 2. 분산 표현 (Distributed Representation) 분산 표현이란 '비슷한 문맥에서 등장하는 단어들은 비슷한 의미를

2023년 8월 15일
·
1개의 댓글
·
post-thumbnail

[Word2Vec] Efficient Estimation of Word Representation in Vector Space

들어가며 현대 NLP의 기초를 닦은 단어 벡터 임베딩에 관한 초기 논문이라 방법론은 짧고 그리 어렵지 않은데 반해 실험 결과에 대한 내용이 길다. 이 논문을 이해하기 위해서는 방법론만 훑어도 크게 상관 없다. 중간중간 생략된 부분이나 목차에서 조금 벗어나게 정리한 부분들도 있다. 개요 등장 배경 Word2Vec은 현대 NLP 분야의 근간이 되는 기술이다. 해당 논문을 기점으로 기계학습 자연어처리분야의 main stream이 LSA(latent semantic analysis)나 co-occurrence matrix 등의 one-hot encoding 기반 통계 시스템에서 신경망 기반의 임베딩 벡터 기반으로 넘어오게 되었다. 이 논문의 발표 이전에는 N-gram 모델과 같은 NLP 시스템이 주류였으나, 이러한 시스템들은 in-domain에 데이터가 제한되어 있는 등 한계가 너무 극명한 기술이었다. 이런 이유로 기존 시스템의 scaling up보다 아예 더

2023년 8월 7일
·
0개의 댓글
·
post-thumbnail

Glossary of Deep Learning : Word Embedding 번역

Ref. https: Jaron Collis's Blog 단어 임베딩의 핵심은 텍스트를 숫자로 변환하는 것이다. 이러한 변환은 많은 ML 알고리즘에서, 연속적인 값의 vector를 입력으로써 요구하기 때문에 필요하다. 텍스트를 바로 입력으로 사용할 순 없다. 따라서 Word Embedding과 같은 자연어 모델링 기술은 어휘에서 단어나 구문을 대응되는 실수 벡터로 매핑하는 데 사용된다. 또한 이러한 vector는 두 가지 중요하고 유리한 특징을 가지고 있다. Dimensionality Reduction(차원 감소) Contextual Similarity(문맥적 유사성) Bag of Words 방식은 매우 크고 sparse한 one-hot 인코딩 벡터를 생성하는데, 여기서 벡터의 차원은 지원되는 어휘의

2023년 7월 21일
·
0개의 댓글
·
post-thumbnail

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

3장 - word2vec 이번 장에서는 통계 기반 기법보다 강력한 '추론 기반 기법'을 살펴본다. 3.1 - 추론 기반 기법과 신경망 > - 통계 기반 기법 추론 기반 기법 두 기법은 모두 단어를 벡터로 표현하는 방법이다. 서로 방식은 다르지만, 그 배경에는 모두 분포 가설이 있다. 3.1.1 - 통계 기반 기법의 문제점 통계 기반 기법의 문제는 다음과 같다. > - SVD를 $$n \times n$$ 행렬에 적용하는 비용은 $$O(n^3)$$이다. 굉장히 오래 걸린다. 데이터를 한꺼번에 처리해서 병렬 처리가 어렵다. 반면, 추론 기반 기법은 미니배치 학습이 가능하다. 데이터를 나눠 학습하기 때문에 병렬 계산이 가능하다는 점은 매력적이다. 3.1.2 - 추론 기

2023년 7월 7일
·
0개의 댓글
·

GNN과 문자형 변수 처리

표제어 추출이 완료된 'Book-Title' column을 벡터로 만드는 두 가지 방법이 있다. Two Way to Embeddig Test Label Encoder+Embeddign Layer : 하지만 각 책 제목을 하나의 벡터로 표현하기 때문에, 책 제목 내의 개별 단어들 사이의 관계를 고려하지 못할 수 있다. 그럼에도 불구하고, 간단한 방법으로 적용해 볼 만한 가치는 있다. word embeddign model : 텍스트 데이터를 토큰화하고, 각 토큰(단어)에 대해 임베딩을 수행한 후, 책 제목에 대한 전체 벡터를 얻기 위해 각 단어 벡터를 평균하거나 합산한다. 이 방식은 책 제목 내의 단어들 사이의 관계를 더 잘 고려할 수 있다. Token 텍스트 데이터를 토큰화한다는 것은 문자열을 의미 있는 단위(토큰)로 나누는 것이다. 일반적으로 토큰은 단어로 간주되며, 이 경우 단어를 기준으로 문자열을 나눈다. 만약 데이터가 이미 표제어 추출이 완료되어

2023년 4월 28일
·
0개의 댓글
·

[nlp] gensim & sentence-transformers install 필독!!!

gensim과 sentence-transformers는 텍스트를 임베딩하는데 아주 유용한 라이브러리 이다. 이 2개의 라이브러리를 설치하려는데 python이 최신버젼이라면 레거시 에러가 나올 확률이 아주 높다. 따라서 python은 3.8 아래로 설치하길 권장한다. 또한 gensim도 최신버젼은 에러가 생기기 때문에 3.8.3 버젼으로 설치하는 것을 권장한다.

2023년 3월 3일
·
0개의 댓글
·

Stanford CS224n Lec1: SVD and Word2Vec

Word Vectors 우리는 NLP task에 단어를 입력으로 사용한다. NLP task를 수행하기 위해서는 단어간의 유사성과 차별성을 파악/적용할 수있어야 한다. 영어에는 1300만 개의 단어가 있고 서로 연관성이 있는 단어들이 많다. 단어들을 벡터로 표현하고 그 공간안에서 유사성을 내포할 수 있는 N 차원 벡터 공간이 존재할 것이다(N << 13 million). 1. One-hot encoded Vector 각각의 단어를 |V|(Vocabulary 수) 차원의 벡터 공간에 하나의 차원의 원소만을 1로 가지고 나머지 차원의 값은 0인 벡터로 나타내는 방법이 있다. 즉, 단어의 개수만큼의 벡터 차원이 있어야 한다. 문제점 : **word vector가 모두 orthogonal하기에 단어간의

2023년 2월 9일
·
0개의 댓글
·
post-thumbnail

Word2Vec, Glove

Word2Vec : 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 하는 방법 Word Embedding : 분산표현(Distributed Representation)을 이용해 단어간 의미적 유사성을 벡터화하는 작업 의미가 비슷한 단어("관련성") → 비슷한 벡터값을 갖게 한다 → 분류 테스크 진행 시 잘 부합됨, 머신러닝 task를 할 때 좋은 요건이 된다. +) 만약 단어가 정 반대의 의미를 가지고 있다고 임베딩 벡터가 반대 방향을 가르키는 뜻이 아니다. 기존 one-hot-vector(= 희소표현 방법 = Sparse Representation, target : 1, 나머지 : 0) 단어벡터간 유사도를 계산할 수 X → Word2Vec(분산표현의 학습방법)을 이용해 단어의 의미를 수치화 Word2Vec 학습방식 CBOW(Continuous Bag of Words) : 주변에 있는 단어들을 입력으로

2023년 2월 9일
·
0개의 댓글
·
post-thumbnail

word2vec/GLOVE

Stanford의 cs224n 강의를 보고 복습차원에서 word2vec과 glove에 대해 정리하였습니다. 저번 강의에서는 word2vec에 대해서 주요 개념들을 정리하였습니다. 이번 챕터에서는 저번챕터에 이어 word2vec과 Glove에 대해서 알아보겠습니다. word2vec ▶저번시간 내용 random한 word vector로 초기화한다. 주어진 중심단어에 대해 주변단어들을 예측하는 과정의 반복을 통해 word vector를 update하며 학습을 진행한다. 이 과정을 통해 단어간의 similarity를 반영한 word vector를 가지게 된다. more detail word2vec에는 두가지 algorithm이 존재합니다. skip-grams 그 중 첫번째인 Skip-grams algorithm은 이전 챕터에서 나왔던 방법입니다. 이 방법은 중심단어를 기준으로 주변의 단어를 예측하는 식으로 학습을 해나가는 방법입니다. window si

2023년 2월 4일
·
0개의 댓글
·
post-thumbnail

word2vec

Stanford의 cs224n 강의를 보고 복습차원에서 word2vec에 대하여 정리하였습니다. 언어라는 것은 지식을 전달하는 매개체로서 인간의 발전을 이끌어 왔고 현대에서도 아주 중요한 역할을 해오고 있습니다. cs224n의 강의는 이러한 인간의 언어를 어떻게 하면 컴퓨터가 인간의 언어를 더 잘 인식하게 만들고 문맥을 이해하며 사람과 비슷하게 언어를 이용하게 할 수 있을까에 초점을 맞추고 있습니다. 위에 보이는 그림은 OPEN-AI의 GPT-3 모델의 여러 NLP TASK 수행 결과인데 완벽하지는 않지만 여러 TASK에서 자연스럽게 문장을 만들어나가는 모습을 볼 수 있습니다. 이처럼 하나의 모델이 인간의 언어를 어떻게 이해하고 여러가지 태스크를 수행할 수 있었는지에 대해서 한번 알아보겠습니다. 컴퓨

2023년 2월 1일
·
0개의 댓글
·
post-thumbnail

NLP_word2vec(1)

자연어 처리에서 우선적으로 고민해야할 문제는 자연어를 어떻게 컴퓨터가 처리할 수 있도록 만드는가이다. 쉽게 말해 자연어 자체를 컴퓨터가 이해할 수 없으니 인코딩해야하는데 어떤 방식을 취하냐이다. 결국 이 인코딩을 word to vector라고 생각해볼 수 있다. 이 문제가 어려운 이유는 자연어 자체가 굉장히 복잡하고 이해하기 어려우며 맥락 의존적이기 때문이다. 같은 말이라도 다양한 의미가 있고 같은 의미라고 하더라도 맥락에 따라 해석이 달라질 수 있다. 과거 사용된 방법은 wordnet과 같은 동의어 사전을 활용하는 방식이다. 하지만 결국 사전식에 의존한 방식은 모든 맥락을 다루지 못할 뿐더러, 신조어에 대처할 수 없다. 또 다른 방식으로 원핫 인코딩을 생각해볼 수 있다. 각 단어의 개별성을 인정하는 방식으로 원핫인코딩을 하는 것인데 이때 문제는 단어별 유사성과 맥락을 전혀다루지 못한다는 것이다. 왜냐면 원핫 인코딩은 각 벡터간 orth

2023년 1월 15일
·
0개의 댓글
·
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

106일차 시작.... (자연어 처리)

📊 NLP (Natural Language Processing) 📌 자연어 처리란? > * 정의 > - 자연어의 의미를 분석하여 컴퓨터를 통해 사람들이 원하는 어떤 결과를 처리할 수 있도록 하는 일을 말한다. > > * 종류 > 음성 인식, 문서 요약, 감성 분석, 텍스트 분류, 질의 응답 시스템, 챗봇 > > * NLP 처리 전, 전처리 작업 > - 워드 임베딩(Word Embedding) 📊 NLP를 위한 자연어 전처리 📌 워드 임베딩(Word Embedding)이란? > * 정의 > - 코퍼스(단어, 문장 등)를 수치화해서 벡터로 변경하는 작업 > - 단어를 밀집 벡터(dense vector)의 형태로 표현하는 작업 > > * 워드 임베딩 종류 > > _1) 카테고리형 인코딩 : 원-핫

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

임베딩

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

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

[논문리뷰] Convolutional Neural Networks for Sentence Classification

Abstract 본 논문에서는 사전 학습된 word vector에 CNN을 사용한 sentence classification 모델을 제안한다. 특히 간단한 CNN 모델 + 약간의 하이퍼파라미터 튜닝과 static vector를 통해 여러 벤치마크에서 훌륭한 성과를 거두었다. word vector를 task-specific하게 튜닝시켜줌으로서 성능을 향상시킬 수 있다. 또한, 추가적으로 아키텍쳐의 간단한 수정을 통해 task-specific word vector와 static vector를 둘 다 사용하는 새로운 아키텍처를 제안한다. 이 모델은 7개의 태스크 중 4개의 태스크(감성분석, 질문 분류 문제 포함)에서 SOTA를 달성했다. 1. Introduction CNN은 지역적 특징에 적용되는 convolving filter를 가진 layer를 활용한다. 원래는 비전 분야를 위해 고안되었지만, 이후 자연어처리에 대해

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

파이썬 머신러닝 완벽 가이드 - 9. Text Analytics(1) (Encoding, Vectorize)

Text Analytics 텍스트 분석 TA(Text Analytics or Text Mining) 비정형 텍스트에서 의미있는 정보를 추출하는 것에 좀 더 중점을 두고 발전 머신러닝, 언어 이해, 통계 등을 활용해 모델을 수립하고 정보를 추출해 비즈니스 인텔리전스나 예측 분석 등의 분석 작업을 주로 수행한다. 텍스트 분류 : 문서가 특정 분류/카테고리에 속하는 것을 예측하는 기법 ← 지도학습 감성 분석 : 텍스트에서 나타나는 감정/판단/믿음/의견/기분 등의 주관적인 요소들을 분석하는 기법 ← 지도&비지도학습 텍스트 요약 : 텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법 ex) 토픽 모델링 (Topic Modeling) 텍스트 군집화와 유사도 측정 : 비슷한 유형의 문서에 대해 군집화를 수행하는 기법 ← 비지도학습 NLP(Nature Language Processing)

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

Word2Vec 과 Item2Vec, ANN

Word2Vec → Item2Vec 텍스트 분석 방법인 Word2Vec에서 추천 시스템 임베딩으로 발전한 Item2Vec의 관계, 차이점에 대해 배운 강의 내용을 정리 (RecSys 5강) Embedding에 관하여 Sparse Representation : 원핫 인코딩 같이 1,0으로 표현되며, 아이템의 전체 가짓수와 차원 동일 Dense Representation : 실수 값으로 표현되며, 아이템의 전체 가짓수보다 훨신 작은 차원 Word Embedding 텍스트 분석을 위해 단어를 벡터로 표현하는 방법 비슷한 단어일수록 embedding vector가 가까운 위치에 분포 이렇게 표현하기 위해서는 학습 모델이 필요하다 → MF도 이러한 학습의 일종이라고 볼 수도 있다 Word2Vec 뉴럴 네트워크 기반, 간단한 구조라 효율적으로 빠른 학습 가능 학습 방법 : CBOW, Skip-Gram, Skip-Gram w/ Negative Sa

2022년 10월 14일
·
0개의 댓글
·