Word2Vec이 확장된 임베딩 방법
구글에서 발표한 문서를 vector로 변경하는 document embedding 모델
- Doc2Vec에선 paragraph id(document id)를 하나의 단어(paragraph token)처럼 사용해 문서를 훈련 데이터로 사용
- Doc2Vec은 document id와 각 문서, 문장에 등장했던 단어들이 서로 가까워지도록 document vector를 움직인다.
- 단어가 다르더라도 단어의 벡터들이 비슷하다보니 각 문장의 document vectors가 비슷해진다.
- v(cat)
v(‘a little cat sit on table’) ≃ v(‘a little dog sit on board’) 가 된다.
≃ v(dog), v(table) ≃ v(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 |