More Related Content
More from keunbong kwak (11)
PR12 논문 리뷰 Distributed Representations of Sentences and Documents
- 2. © NBT All Rights Reserved.
이논문을선정한이유
추천 엔진에서의
Cold Start Problem
- 3. © NBT All Rights Reserved.
이논문을선정한이유
추천 엔진에서의
Cold Start Problem
컨텐츠 태깅
- 4. © NBT All Rights Reserved.
이논문을선정한이유
추천 엔진에서의
Cold Start Problem
컨텐츠 태깅
문서 유사도
- 5. © NBT All Rights Reserved.
이논문을선정한이유
추천 엔진에서의
Cold Start Problem
컨텐츠 태깅
컨텐츠 유사도컨텐츠 임베딩
- 6. © NBT All Rights Reserved.
참고 자료
Lucy Park님 Pycon 발표자료
https://www.lucypark.kr/docs/2015-pyconkr/#1
Ratsgo님 블로그
https://ratsgo.github.io/natural%20language%20processing/2017/03/08/word2vec/
PyData 2017 발표자료
https://www.youtube.com/watch?v=zFScws0mb7M
- 7. © NBT All Rights Reserved.
개요
Word2Vec의후속버전Doc2Vec
• 문장 분석을 위한 새로운 embedding방식을 제안
• Word2Vec의 아이디어를 활용
• PV-DM & PV-DBOW
- 8. © NBT All Rights Reserved.
문제정의–이논문에서풀고자했던것
• 문장, 문단, 문서의 특징을 capture할 수 있는 embedding
• Embedding을 통한 Classification 성능 향상
- 9. © NBT All Rights Reserved.
Word2Vec
딥러닝을 활용한 자연어처리에
단어가 출현하는 위치를 기반으로 단어를 학습시켜보자 (Skip-grams)
Center word
(Position t)
Output Context words
(m word window)
Output Context words
(m word window)
P(wt+1|wt)P(wt-1|wt)
“저는
P(wt-2|wt)
관심이 많습니다”
P(wt+2|wt)
- 10. © NBT All Rights Reserved.
Word2Vec
단어가 출현하는 위치를 기반으로 단어를 학습시켜보자
- 11. © NBT All Rights Reserved.
Word2Vec
학습 결과
의미, 문법과 관련된 정보들이 Capture 된다!
- 13. © NBT All Rights Reserved.
모델설명PV-DM(예시)
“나는 배가 고파서 밥을 먹었다”
Paragraph Dictionary Word Dictionary
ID Paragraph
1 나는 배가 고파
서 밥을 먹었다
ID Word
1 나는
2 배가
3 고파서
4 밥을
5 먹었다
- 14. © NBT All Rights Reserved.
모델설명PV-DM(예시)
“나는 배가 고파서 밥을 먹었다”
Paragraph Embedding Word Embedding
ID Paragraph
Embedding
1 [0.5, 0.41, 0.55
…]
ID Word Embedding
1 [0.2, 0.11, 0.55 …]
2 [0.9, 0.41, 0.75 …]
3 [0.4, 0.15, 0.53 …]
4 [0.3, 0.78, 0.48 …]
5 [0.6, 0.23, 0.12 …]
- 15. © NBT All Rights Reserved.
모델설명PV-DM(예시)
“나는 배가 고파서 밥을 먹었다”
Step Input Label
1 [나는 배가 고파서 밥을 먹었다, 나는, 배가, 고파서] 밥을
2 [나는 배가 고파서 밥을 먹었다, 배가, 고파서, 밥을] 먹었다
- 16. © NBT All Rights Reserved.
모델설명PV-DM(예시)
“나는 배가 고파서 밥을 먹었다”
Step Input Label
1 [d1, w1, w2, w3] w4
2 [d1, w2, w3, w4] w5
- 17. © NBT All Rights Reserved.
모델설명PV-DM(예시)
“나는 배가 고파서 밥을 먹었다”
Step Input Label
1
[[0.5, 0.41, 0.55 …], [0.2, 0.11, 0.55 …]
, [0.9, 0.41, 0.75 …], [0.4, 0.15, 0.53 …]]
[0,0,0,0,1,0]
2
[[0.5, 0.41, 0.55 …], [0.9, 0.41, 0.75 …],
[0.4, 0.15, 0.53 …], [0.3, 0.78, 0.48 …]]
[0,0,0,0,0,1]
- 18. © NBT All Rights Reserved.
PV-DMInferenceStage
- 20. © NBT All Rights Reserved.
모델설명PV-DBOW(예시)
“나는 배가 고파서 밥을 먹었다”
Step Input Label
1 나는 배가 고파서 밥을 먹었다 나는
2 나는 배가 고파서 밥을 먹었다 배가
3 나는 배가 고파서 밥을 먹었다 고파서
4 나는 배가 고파서 밥을 먹었다 밥을
5 나는 배가 고파서 밥을 먹었다 먹었다
- 24. © NBT All Rights Reserved.
그이외의발견들
• PV-DM이 PV-DBOW 보다 일반적으로 더 좋은 성능을 낸다
• PV-DM이랑 PV-DBOW를 concat으로 합치는게 sum 보다 낫다
• Window size는 5~12로 잡는게 일반적으로 좋더라
- 25. © NBT All Rights Reserved.
사용해보기
https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb
- 31. © NBT All Rights Reserved.
결론
• Word2Vec과 유사한 아이디어로 문서도 Embedding 가능
• 성능도 꽤 잘 나옴
• 쉽게 활용 가능