Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Dynamic Word Cloud Using Word2Vec - 1st Presentation

254 vues

Publié le

Reproduction of Word2Vec & Appliaction in Data Science Class in Korea Univ

We propose a dynamic word cloud using word2vec

Publié dans : Ingénierie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Dynamic Word Cloud Using Word2Vec - 1st Presentation

  1. 1. Dynamic Word Cloud Reflecting Flow of Time Using Word2Vec 4팀 : 장민욱, 장하진, 김범수
  2. 2. 목차 • 1부 : Word2Vec Reproduce • Hierarchical softmax • Negative Sampling • SubSampling • 2부 : Dynamic Word Cloud reflecting Flow of Time • What is Dynamic Word Cloud? • How to Collect Big Data?
  3. 3. 팀원 소개 • 장민욱 : 데이터 수집, 응용 아이디어 제시 및 구체화, 기획 담당 • 김범수 : Word2Vec 구현 담당 • 장하진 : 데이터 시각화, 다이나믹스 담당
  4. 4. Implementing word2vec • CBOW, Skip gram • Hierarchical softmax, Negative sampling, Subsampling
  5. 5. CBOW, Skip gram CBOW Skipgram
  6. 6. CBOW • Hidden layer는 • Error propagation시 1번의 output->hidden, 1번의 hidden->input weight update가 일어난다.
  7. 7. Skip gram • Hidden layer는 propagation layer 즉 activation function이 없다. • Error propagation시 C번의 output->hidden, 1번의 hidden->input weight update가 일어난다.
  8. 8. Hierarchical softmax • 일일이 weight를 업데이트 하는 대신에 Huffman tree를 사용한다.
  9. 9. Hierarchical softmax • 연산은 root node로부터 단어노드까지만 이루어지므로 O(V) -> O(lnV)로 연산량이 줄어든다.
  10. 10. Negative sampling • 1개의 Positive sample과 n개의 negative sample에 대해서만 weight update • 어떤기준으로 negative sample을 선정할것인가?
  11. 11. Negative sampling • Unigram distribution • 많이 등장할수록, negative sample로 선택될 확률이 높다.
  12. 12. Negative sampling
  13. 13. Negative sampling • P(wi)에 따라서 unigram table을 단어들로 채운다.
  14. 14. Negative sampling • Negative sample을 뽑을때 table에서 랜덤으로 뽑는다.
  15. 15. Subsampling • 많이 등장한 단어는 너무 많이 학습되어 정확도를 해칠 수 있다 • z(wi) 는 corpus내에서 wi가 등장하는 비율 • P(wi) 는 wi를 subsampling 하지않고 keep할 비율
  16. 16. Subsampling
  17. 17. Subsampling • ran에 P(wi)를 계산한다. • next_random에 0~1사이의 값을 랜덤으로 저장 • ran < next_random 일 경우 subsample
  18. 18. 구현 결과
  19. 19. Developing issues • Window size를 dynamic하게 설정하는 technique은 사용x • Multithread환경에서 weight(공유 자원)에대한 컨트롤이 없다.
  20. 20. Advanced error propagation • Resilent back propagation – one of the fastest error propagation algorithm. • Partial deravative of error 이 양수 일때 • new weight = old weight * 0.5 • else • new weight = old weight * 1.2
  21. 21. Reference • https://arxiv.org/pdf/1411.2738.pdf • http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip- gram-model/ • http://mccormickml.com/2017/01/11/word2vec-tutorial-part-2- negative-sampling/
  22. 22. Dynamic Word Cloud Reflecting Flow of Time Using Word2Vec
  23. 23. What is Word Cloud? A word cloud is a graphical representation of word frequency
  24. 24. What is Dynamic? • 목표 : 키워드과 시간축에 따른 동적 Word Cloud 시각화 • 키워드 -> 시간의 흐름에 따른 데이터 시각화(Word Cloud) • 키워드 데이터라는 가치가 살아있는 생물처럼 • 시간 순서에 따라 단어의 크기와 색이 변화 • Ex) 성장하는 키워드는 빨간 색, 줄어드는 키워드는 파란 색
  25. 25. Why and where to use? • 시간에 따른 트렌드 변화상 분석 • Ex) CNN – 트럼프가 어느 시점을 중심으로 주목받기 시작하였는가? • 한 주제의 시간에 따른 연관 단어의 변화상 분석 • Ex) Wikipedia – USB와 ThunderBolt는 언제부터 연관되어 언급되기 시작하 였나? • 과거를 통한 미래의 변화상 예측
  26. 26. Visualization • 키워드과 시간 지정 후 Word Cloud 출력 • 크기 = 중요도 • 색 = 시간에 따른 변화량
  27. 27. Visualization • 시간축의 조절에 따른 Word Cloud 변화 나타냄 • 웹 인터페이스와 Javascript API (Ex d3.js) 등을 활용하여 구현
  28. 28. How to generate Word Cloud • 1. 데이터 수집 후 월 단위로 학습 • 2. 유저가 Keyword 입력 • 3. 시간대에 따라 동적으로 변화하는 Word Cloud 출력
  29. 29. How many? • 데이터를 얼마나 모을 것인가? • 정보 검색 시간에 다루었던 55만 건의 문서들 • 목표는 억 단위 Web Pages
  30. 30. How to collect Big Data? • 1번째 제안 : Selinium과 beautifulSoup을 이용한 CNN URL Crawling - 기사 페이지에는 다른 기사 링크들이 있다. - 동적으로 URL을 수집하며 분석하는 프로그램을 장시간 돌린다. - CNN만으로 될까? 태그가 뉴스마다 다르다. 도움이 필요하다.
  31. 31. How to collect Big Data? • 2번째 제안 : Dump 파일을 제공하는 DataSet을 사용하자. - 대표적으로 Wiki는 한 달에 두 번 dump를 만들고 xml 형식으로 배포한다. - Dump 파일로 시간대별 학습할 경우, 방향성이 달라진다. - 이것 또한 빅 데이터일까?
  32. 32. How to collect Big Data? • 3번째 제안 : Google Search Engine API를 이용 - 기간 검색을 사용하여 나오는 본문을 크롤링한다. - 원하는 기간을 선택할 수 있고 본문을 자동 추출한다. - 원하는 양과 기간을 선택할 수 있다는 점에서 긍정적
  33. 33. How to collect Big Data? • 4번째 제안 : 공개된 DataSet을 이용 - Carnegie Mellon University에서 제공하는 clueweb09의 경우 09년도 1월-2 월 사이의 십억 web page를 제공 - 이처럼 공개된 데이터셋을 사용하는 방법이 있으나 기간이 제한된다.
  34. 34. How to collect Big Data? • 현재 상황 • Google Search Engine API를 이용하는 3안을 재고 • 4안의 경우 범위와 활용성을 줄이게 될 것
  35. 35. Which data for where? • 시간에 따른 트렌드 변화상 분석 • 일회성인 콘텐츠가 필요하다. • Ex) Crawling한 뉴스 기사 • Ex) Google Search API • 한 주제의 시간에 따른 연관 단어의 변화상 분석 • 시간에 따라 누적되는 데이터가 필요하다. • Ex) Wikipedia Dump
  36. 36. Q&A
  37. 37. 감사합니다

×