Anything2Vec, Word2Vec의 NLP 정복기

워드임베딩은 자연어 처리에서 딥러닝의 성공을 뒷받침하는 주요 동력 중 하나입니다. NLP 이외의 기술자조차 word2vec으로 명사와 성별 또는 국가 이름과 자본의 의미 관계를 모델링하는 놀라운 능력에 대해 들어 봤습니다. 그러나 word2vec의 성공은 단어 수준을 훨씬 뛰어 넘습니다. 이 word2vec과 같은 모델에서 영감을 얻어 필자는 문장에서 트윗과 의학 개념에 이르기까지 다양한 언어 단위에 대한 삽입 방법을 연구하였습니다.

 

 

word2vec
연속적인 벡터로 단어를 표현하는 아이디어는 오래 전부터 있었지만 이전의 방법은 word2vec만큼 성공하지 못했습니다.
Mikolov와 동료에 의해 일련의 논문에서 대중화된 word2vec은 단어 임베딩을 학습시키는 두가지 방법을 제공합니다 :

-연속적인 bag-of-word(CBOW) 모델에서 컨텍스트 단어는 현재 단어를 예측하는 데 사용됩니다
-skip-gram 모델에서 현재 단어는 컨텍스트 단어를 예측하는 데 사용됩니다.

의미상으로 유사한 단어가 유사한 문맥에서 발생하기 때문에, 결과물인 임베딩은 단어의 의미론적 속성을 성공적으로 포착합니다. 사실, 사전 훈련된 word2vec 임베딩에 포착된 의미(및 구문) 정보는 많은 딥러닝 모델이 소규모 데이터 세트를 넘어 일반화하는 데 도움이 되었습니다. 그렇다면 이 프레임워크가 단어 수준과 그 이상에서 모두 큰 영향을 미쳤다는 것은 놀라운 일이 아닙니다. 경쟁 모델인 GloVe는 단어 벡터를 훈련시키는 대안적인 방법을 제공하고, 다른 모델은 word2vec 접근법을 다른 언어 단위로 확장하려고 시도해 왔습니다.

sense2vec
원래 word2vec 모델의 한 가지 문제점은 모든 단어를 단일 포함으로 매핑한다는 것입니다. 단어가 여러 가지 의미를 가지고 있다면, 이들은 모두 동일한 벡터로 인코딩됩니다. 이 문제를 해결하기 위해 Trask와 동료들은 의미를 구별하기 위해 감독 라벨을 사용하는 word2vec의 변형인 sense2vec를 개발 했습니다.

CNN 품사태깅
일부 작업에는 단어에 대한 보다 구체적인 정보가 필요합니다. 예를 들어, 품사 태깅은 형태소와 같은 더 작은 단위로 인코딩 된 단어 내 정보로부터 엄청난 이득을 얻을 수 있습니다. 영어로 된 어휘 부사식은 좋은 예입니다. 이러한 이유로, 많은 신경망 접근법은 문자 수준에서 적어도 부분적으로 작동합니다. 좋은 예가 품사 수준 기능을 추출하기 위해 CNN을 사용하는 품사 태그 지정을 위한 Dos Santos와 Zadrozny의 모델입니다 . 그러나 문자 삽입은 일반적으로 감독 방식으로 훈련됩니다. 이렇게하면 word2vec 임베딩과는 별도로 설정되며, 교육 절차는 완전히 감독되지 않습니다.

 

 

Skip-Thought Vector
그러나 모든 NLP 작업에 세부 정보가 필요하지는 않으며 그 중 많은 부분이 단일 단어보다 큰 단위에 중점을 둡니다. Kiros의 “Skip-Thought Vector”는 word2vec 모델을 문장 수준으로 번역하는 직접적인 방법을 제시합니다. 단어의 컨텍스트를 예측하는 대신 문장 주위의 문장을 예측합니다. skip-thought vector는 요즘 기계 번역에서 널리 보급되는 인코더-디코더 패턴을 따릅니다. RNN 인코더는 입력 문장을 문장 벡터에 매핑한 다음 다른 RNN이 이 벡터를 디코딩하여 다음(또는 이전) 문장을 생성합니다. 구문 분석과 텍스트 분류와 같은 일련의 작업을 통해 이 건너뛰는 프레임워크는 문장의 의미 내용을 모델링하는 강력한 방법임을 입증합니다.

tweet2vec
불행하게도, 문장은 항상 Kiros 등이 모델링한 것 만큼 행동하지 않습니다. 특히 소셜 미디어 콘텐츠는 길들이기 힘든 짐승입니다. 예를 들어, 트윗은 단락으로 결합되지 않으며 속어, 철자 오류 및 특수 문자로 가득합니다. 이것이 Dhingra와 동료가 개발한 tweet2vec 모델입니다. 단어 기반 네트워크가 아닌 문자 기반 네트워크를 사용합니다. 첫째, 양방향 Gated Recurrent Unit은 트윗의 모든 문자를 앞뒤로 전달합니다. 그런 다음 두가지 최종 상태가 결합되고 이 포함이 softmax 출력 레이어로 투영됩니다. 해시 태그를 예측하기 위해 네트워크를 학습합니다. 같은 해시 태그가 있는 트윗은 의미 상으로 비슷한 내용을 가져야합니다. 그 결과 tweet2vec은 실제로 해시 태그 예측에서 단어 기반 모델을 능가하는 것으로 나타났습니다. 특히 문제의 트윗에 많은 희귀 단어가 포함되어있는 경우 특히 그렇습니다.

doc2vec
위의 문장 모델링 방법은 단어 기반이든 문자 기반이든 모든 입력 문장의 길이가 동일해야합니다(단어 또는 문자). 길이가 상당히 긴 문단이나 문서를 다루는 경우에는 실용적이지 않습니다. 이러한 유형의 데이터에는 Mikolov의 문장, 단락 또는 전체 문서와 같은 가변 길이 텍스트 시퀀스를 모델링하는 접근 방식인 doc2vec이 있습니다. 문서와 단어 모두에 대한 포함을 빌드하고 슬라이딩 윈도우 컨텍스트에서 다음 단어를 예측하기 위해 이러한 포함을 연결합니다. 예를 들어, 슬라이딩 윈도우에서 고양이가 앉아 있으면, 문서 벡터는 다음 단어를 예측하기 위해 앉아있는 고양이의 단어 벡터와 연결됩니다. 문서 벡터는 각 문서마다 고유합니다. 단어 벡터는 문서간에 공유됩니다. 경쟁 업체와 비교하여 doc2vec은 몇가지 고유한 장점이 있습니다. 단어 순서를 고려하고 더 긴 문서로 일반화하며 레이블이 지정되지 않은 데이터로부터 학습할 수 있습니다. 결과 문서 벡터가 정서 분석과 같은 다운 스트림 작업에 사용될 때, 이 모델은 경쟁력이 있음을 증명합니다.

lda2vec
하지만 단락이나 문서에서 멈춥니다. word2vec 프레임워크에 빠진 다음 피해자는 주제 모델링입니다. Latent Dirichlet Allocation과 같은 전통적인 주제 모델은 분산된 단어 표현을 활용하지 못하기 때문에 단어 간의 의미론적 유사성을 모델링하는 데 도움이 될 수 있습니다. Moody의 lda2vec은 단어, 주제, 문서 벡터를 같은 공간에 임베드하여 이를 해결하는 것을 목표로합니다. lda2vec에서는 단어 벡터가 단어가 나오는 문서의 벡터와 합쳐져 얻어집니다. LDA와 같은 토픽 분포를 얻기 위해 이 문서 벡터는 토픽 벡터의 가중치 합으로 정의됩니다. 여기서 가중치는 희소하고 음수가 아니며 합계가 1입니다. Moody의 실험에 따르면 lda2vec은 의미 론적으로 일관된 주제를 제시하지만 불행히도 그의 논문은 LDA 주제와의 명백한 비교를 제공하지 않았습니다.

topic2vec
Niu와 Dai의 topic2vec은 word2vec와 유사합니다. CBOW 설정에서 컨텍스트 단어는 단어와 주제 벡터를 예측하는 데 사용됩니다. skip-gram 설정에서 이 두 벡터 자체가 컨텍스트 단어를 예측합니다. Niu와 Dai는 그들의 주제가 LDA가 생산 한 것보다 의미 론적으로 일관성이 있다고 주장하지만, 단지 몇 가지 예를 제시하기 때문에 그들의 논증은 오히려 단편적이라고 느껴진다. 더욱이 topic2vec은 여전히 코퍼스의 각 단어에 대한 주제 지정이 주제 벡터를 학습하는 데 필요하기 때문에 LDA에 의존합니다.

 

 

med2vec
고전적인 NLP 작업을 정복한 후에는 대량의 텍스트가 풍부한 전문 분야에 대한 임베딩 방법도 발견되었습니다. 하나의 좋은 예가 med2vec입니다. 의학 영역에 word2vec을 적용하였습니다.

author2vec
과학 문헌의 영역에서 논문 내용과 공동 저자를 캡쳐하여 저자에 대한 표현을 배웁니다.

citation2vec
인용을 보고 논문을 임베딩합니다.

프레임워크가 단어나 다른 언어 단위를 포함하는 데 사용 되든, 결과 벡터는 딥러닝 방법의 성공에 큰 역할을했습니다. 동시에, 그들은 여전히 ​​명확한 제한이 있습니다. 단순 토큰은 비교적 쉽게 임베딩 할 수 있지만 단어 의미와 주제는 다른 문제입니다. 어떻게 우리는 embedding dimension을보다 해석하기 쉽게 만들 수 있을까요? 그리고 단어 순서를 넘어 명확한 언어 정보를 추가함으로써 얻을 수 있는 것은 무엇일까요? 이러한 측면에서, 임베딩은 여전히 ​​초기 단계에 있습니다.

원문
http://nlp.yvespeirsman.be/blog/anything2vec/

Tags:

word2vec

워드임베딩

embedding

sense2vec

Skip-Thought

tweet2vec

doc2vec

lda2vec

topic2vec

med2vec

author2vec

citation2vec