학교/졸프

Doc2Vec

daykim 2021. 8. 17. 16:44

Word2Vec이 확장된 임베딩 방법

구글에서 발표한 문서를 vector로 변경하는 document embedding 모델

 

  • Doc2Vec에선 paragraph id(document id)를 하나의 단어(paragraph token)처럼 사용해 문서를 훈련 데이터로 사용
  • Doc2Vec은 document id와 각 문서, 문장에 등장했던 단어들이 서로 가까워지도록 document vector를 움직인다.

  • 단어가 다르더라도 단어의 벡터들이 비슷하다보니 각 문장의 document vectors가 비슷해진다.
  • v(cat) ≃ v(dog), v(table) ≃ v(board) 이기 때문에
    v(‘a little cat sit on table’) ≃ v(‘a little dog sit on board’) 가 된다.
  • 이는 entity - descriptor 의 관계로 생각할 수 있습니다.
    임베딩을 하고 싶은 entity 에 대하여 이를 기술할 수 있는 단어, 혹은 이와 비슷한 list of descriptor 를 정의할 수 있다면, entity 의 임베딩 벡터를 학습할 수 있다.

 

Doc2Vec 알고리즘

  • PV-DM(Distributed Memory version of Pharagraph Vector)
  • PVDBOW(Distributed Bag Of Words)

PV-DM

paragraph vector와 앞의 단어들을 사용해 다음에 나오는 단어를 유추한다.

window라는 정해진 사이즈의 단어들을 문맥정보(context)로 사용하며 맨 앞에서부터 한 단어씩 옆으로 이동하며 훈련 데이터로 사용한다.

같은 paragraph에서 생성된 훈련 데이터에서는 하나의 paragraph vector로 공유되기 때문에 패러그래프 벡터는 훈련시 문서의 주제를 잡아주는 memory 같은 역할을 한다.

 

PV-DBOW

위 방식에서 나오는 context 단어들을 사용하지 않고, paragraph id만 가지고 이 패러그래프에서 나오는 단어를 랜덤하게 예측하는 방식

input은 paragraph vector고 output은 paragraph에서 랜덤하게 뽑은 단어들이다.

 

 

 

참고 URL

'학교 > 졸프' 카테고리의 다른 글

크롤링 속도 개선  (0) 2023.07.09
LDA(Latent Dirichlet Allocation  (0) 2021.08.19
selenium 네이버 뉴스 크롤링  (0) 2021.06.29
AWS EC2에서 Flask 구동하기  (0) 2021.06.28
Nginx와 Flask를 활용해서 서빙하기  (0) 2021.06.25