반응형

 

배울 점이 많은 강의가 있어서 추천드리며, 시리즈로 글을 쓰고자 합니다.

 

비정형 데이터 분석 3/11 문장, 문단, 문서 임베딩(Embedding)

youtu.be/1tb2njpp8-s

 

설명 구조

 

지난 시간까지 배운 내용돌아보면

가장 고전적방법

가장 보편적방법

예시로 간단히 소개

 


키워드 및 핵심 내용

 

문장, 문단, 문서, Categoly (자연어) 임베딩

 

Doc2Vec

- 문장 분석을 위한 임베딩

- Word2Vec과 유사한 아이디어(CBOW, Skip gram) 활용

 

PV-DM (Paragraph Vector - Distributed Memory model)

- paragraph-id(문서정보) + 단어들 -> 다음 단어 예측

- paragraph-id는 그 문장의 모든 단어들과 학습 -> 그 문장의 주제 정보 함축

- paragraph vector 가 문서의 주제를 저장(Memory) -> PV-DM 명명

 

PV-DBOW (Paragraph Vector - Distributed Bag Of Words)

- skip gram(중심단어로 주변단어 예측) : PV-DBOW(paragraph-ID로 주변단어 예측)

- paragraph vector는 그 문서(문단, 문장)의 모든 정보 함축

 

사례) Wikipedia 문단 벡터의 시각화(t-SNE 차원축소)

- 비슷한 주제끼리 임베딩 됨

 

- 리뷰 데이터의 임베딩

- 평점이 유사한 문단, 단어끼리 임베딩

- 특정 평점과 가까이 있는 문단은 해당 평점을 받을 확률이 높다는 의미

 

 

자연어 이외의 임베딩

 

- 일별 뉴스 임베딩

- 서로 가까이 있는 사건으로 사회, 경제, 정치적 상황의 유사성 예측 가능

 

- 시스템 콜 임베딩

- 시스템 작업 로그 -> 정상적 로그와 떨어져 있는 의심이 가는 이상 행동 사용자 파악

 

- 방송 임베딩(afreecaTV Live2Vec)

- 시간순 시청 이력을 문장, 문단으로 보고 임베딩(학습)하여 유사한 방송 추천

 


 

[유사도 기법]

https://wikidocs.net/24654

 

1. 유클리드 거리(Euclidean distance)

 

다차원 공간에서 두 개의 점 pq가 각각p=(p1, p2, p3,...,pn)과q=(q1, q2, q3,...,qn)의좌표를 가질 때 두 점 사이의 거리를 계산하는 유클리드 거리 공식은 다음과 같습니다.

2. 자카드 유사도(Jaccard similarity)

 

A와 B 두 개의 집합이 있다고 합시다. 이때 교집합은 두 개의 집합에서 공통으로 가지고 있는 원소들의 집합을 말합니다. 즉, 합집합에서 교집합의 비율을 구한다면 두 집합 A와 B의 유사도를 구할 수 있다는 것이 자카드 유사도(jaccard similarity)의 아이디어입니다.

자카드 유사도는 0과 1사이의 값을 가지며, 만약 두 집합이 동일하다면 1의 값을 가지고, 두 집합의 공통 원소가 없다면 0의 값을 갖습니다. 자카드 유사도를 구하는 함수를J라고 하였을 때, 자카드 유사도 함수J는 아래와 같습니다.

두 개의 비교할 문서를 각각doc1,doc2라고 했을 때doc1doc2의 문서의 유사도를 구하기 위한 자카드 유사도는 이와 같습니다.

 

즉, 두 문서doc1,doc2사이의 자카드 유사도J(doc1, doc2)는두 집합의 교집합 크기를 두 집합의 합집합 크기로 나눈 값으로 정의됩니다.

 


[이은아님 강의 모음]

www.youtube.com/playlist?list=PLGAnpwASolI0vViZItiP90nWI_s9m91Av

 

이은아님 머신러닝 자연어처리 - YouTube

 

www.youtube.com

 


 


 

 

반응형
반응형

배울 점이 많은 강의가 있어서 추천드리며, 시리즈로 글을 쓰고자 합니다.

비정형 데이터 분석 1/11 신경망언어모델(NNLM)

youtu.be/myG2BhlVyH8

 

설명 구조

- 비교를 통해서 ~이 등장하게 된 히스토리

- 문제점이 있습니다. 한

- ~의 문제점을 극복하기 위해 등장한 것이 ~입니다.

- 이러한 문제를 해결하기 위해 등장한 개념이 ~입니다.

- 개념

- 구조

 


키워드 및 핵심 내용

출현빈도 기반 언어모델(Count-based Language Models) / 통계적 언어 모델(Statistical Language Model, SLM)

- Bag-of-Words

- Chain Rule

- 문제점 : 학습 데이터에 없는 조건(조합)은 확률을 계산할 수 없음

- N-Gram

- Markov Assumption

- 모든 단어가 출현했다는 가정이 아니라 n개만 출현했을 때의 확률과 같다고 봄(이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려)

- 예) bi-grams (두단어)

- 문제점 : 학습 데이터에 나타나지 않는 단어 조합은 확률이 0

- (n을 크게 선택하면 정확하게 예측할 확률은 높아지지만 실제 훈련 코퍼스에서 해당 n-gram을 카운트할 수 있는 확률은 적어지므로 희소 문제는 점점 심각해집니다. 또한 n이 커질수록 모델 사이즈가 커진다는 문제점도 있습니다.)

신경망 기반 언어모델(Neural Network-based Language Models)

- NNLM

- 신경망을 이용한 첫번째 시도

- 카운트 기반 텍스트 변환(one-hot vector / Sparce representation) -> 분산표상(continuous vector / Dense representation)

- 입력 단어의 다음 단어가 출력될 확률이 높도록 신경망 학습

- 신경망 구조 : 입력층, 은닉층, 출력층

- 입력층 : one-hot vector

- 출력층 : Softmax 함수 적용

- NPLM 구조 : 가중치, 바이어스, parameter 차원수 정의

- NPLM 학습 : 확률적 경사상승법(Stochastic gradient ascent)

- Word2Vec

- GloVe

- Fasttext


 

[언어모델 추가 자료]

translate.google.com/translate?hl=en&sl=en&tl=ko&u=https%3A%2F%2Fwikidocs.net%2F21692&anno=2&prev=search

 

언어 모델(Language Model, LM)이란? 언어라는 현상을 모델링하고자 단어 시퀀스(또는 문장)에 확률을 할당(assign)하는 모델입니다.

자연어 처리에서 단어 시퀀스에 확률을 할당하는 일이 왜 필요할까요? 예를 들어보겠습니다. 여기서 대문자 P는 확률을 의미합니다.

a. 기계 번역(Machine Translation):

P(나는 버스를 탔다) > P(나는 버스를 태운다)P(나는 버스를 탔다) > P(나는 버스를 태운다)

: 언어 모델은 두 문장을 비교하여 좌측의 문장의 확률이 더 높다고 판단합니다.

b. 오타 교정(Spell Correction)

선생님이 교실로 부리나케

P(달려갔다) > P(잘려갔다)P(달려갔다) > P(잘려갔다)

: 언어 모델은 두 문장을 비교하여 좌측의 문장의 확률이 더 높다고 판단합니다.

c. 음성 인식(Speech Recognition)

P(나는 메롱을 먹는다) < P(나는 메론을 먹는다)P(나는 메롱을 먹는다) < P(나는 메론을 먹는다)

: 언어 모델은 두 문장을 비교하여 우측의 문장의 확률이 더 높다고 판단합니다.

언어 모델은 위와 같이 확률을 통해 보다 적절한 문장을 판단합니다.

[NPLM 추가 자료]

https://medium.com/@omicro03/%EC%9E%90%EC%97%B0%EC%96%B4%EC%B2%98%EB%A6%AC-nlp-nplm-f7d0f472ce68


 

[이은아님 강의 모음]

www.youtube.com/playlist?list=PLGAnpwASolI0vViZItiP90nWI_s9m91Av

 

이은아님 머신러닝 자연어처리 - YouTube

 

www.youtube.com


 

 

반응형

+ Recent posts