Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dynamic Word Cloud Using Word2Vec - 1st Presentation

249 views

Published on

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

We propose a dynamic word cloud using word2vec

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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. 감사합니다

×