*Introduction - Unsupervised Learning (Text-mining or Machine learning?
*Method - Learning Process, Packages
*Explanation Formula
*Case Study of LDA
*Coding with Best LDA Model from Grid search
*Conclusion - insight & Furthur more
*Not edit here
-What is Text-Rank?
-What is Jieba Packages?
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
소개드릴 논문은 오래전에 나왔고, 노드의 구조 또한 단순 하지만, 거리 학습 기반의 One Shot 러닝을 고안하는데 크게 기여하였고, 이전엔 사람이 직접 설계한 특징으로
거리학습을 진행하였지만, 처음으로 Siamese Network를 통하여 DNN을 활용했다는 점에서 의미가 큽니다. 현업에서도 클래스는 많고, 이미지는 적은경우에 대해 유사도를 판단해야 하는 경우 자주 쓰이는 기법이 될 수 있습니다.
오늘 논문 리뷰를 위하여 이미지처리팀 '이예은'님이 자세한 리뷰 도와주셨습니다.
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Sparkhoondong kim
This slide explain the Deep Learning Text NLP for Korean Language. We will also discuss expansion using Spark in Deep Learning Approach to BigData Scale data.
이 슬라이드에서는 한글의 deep learning Text NLP에 대하여 설명한다. 또한, BigData Scale 데이타에 대한 Deep Learning Approach 에 있어, Spark 를 이용한 확장에 대하여도 다룬다.
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
소개드릴 논문은 오래전에 나왔고, 노드의 구조 또한 단순 하지만, 거리 학습 기반의 One Shot 러닝을 고안하는데 크게 기여하였고, 이전엔 사람이 직접 설계한 특징으로
거리학습을 진행하였지만, 처음으로 Siamese Network를 통하여 DNN을 활용했다는 점에서 의미가 큽니다. 현업에서도 클래스는 많고, 이미지는 적은경우에 대해 유사도를 판단해야 하는 경우 자주 쓰이는 기법이 될 수 있습니다.
오늘 논문 리뷰를 위하여 이미지처리팀 '이예은'님이 자세한 리뷰 도와주셨습니다.
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Sparkhoondong kim
This slide explain the Deep Learning Text NLP for Korean Language. We will also discuss expansion using Spark in Deep Learning Approach to BigData Scale data.
이 슬라이드에서는 한글의 deep learning Text NLP에 대하여 설명한다. 또한, BigData Scale 데이타에 대한 Deep Learning Approach 에 있어, Spark 를 이용한 확장에 대하여도 다룬다.
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
DeBERTA : Decoding-Enhanced BERT with Disentangled Attentiontaeseon ryu
오늘 소개해 드릴 논문은 구글의 BERT와 페이스북 현재 메타의 RoBERTa를 기반으로 만들어진 모델입니다. RoBERTa + Disentangled Attention과 enhanced mask decode
두가지의 핵심 기술로 RoBERTa를 더욱 개선 시킨 모델이라고 이해하시면 될 것 같습니다. 추가적으로 Scale Invariant Fine Tuning을 도입하여 RoBERTa를 상당히 많은 테스크에서, NLU 테스크에서는 RoBERTa, BERT이상의 성능을 보여준 논문이기도 합니다.
논문의 자세한 리뷰부터, 백그라운드 지식까지, 자연어처리팀 진명훈님이 도와주셨습니다.
100% Serverless big data scale production Deep Learning Systemhoondong kim
- BigData Sale Deep Learning Training System (with GPU Docker PaaS on Azure Batch AI)
- Deep Learning Serving Layer (with Auto Scale Out Mode on Web App for Linux Docker)
- BigDL, Keras, Tensorlfow, Horovod, TensorflowOnAzure
Zeppelin 노트북, 화재 뉴스 기사 데이터셋:
https://github.com/uosdmlab/playdata-zeppelin-notebook
2016년 10월 14일(금)에 "마루180"서 열린 "데이터야놀자"에서 진행한 세션 "Spark & Zeppelin을 활용한 머신러닝 실전 적용기" 슬라이드입니다. 많은 분들이 빠르고 쉽게 Spark ML을 시작했으면 하는 마음에서 발표를 준비했습니다! 실제로 Spark와 Zeppelin으로 머신러닝을 하며 발생한 문제점과 해결법, 간단한 텍스트 분류 예제와 성능 향상 사례 등의 내용을 담았습니다. 세션에서는 제플린 노트북과 슬라이드를 번갈아가며 진행하였는데, 노트북이 궁금하신 분들은 GitHub에 올려두었으니 직접 실행해보세요^^ (정말 열심히 정리했습니다 ㅠㅠ)
서울시립대학교 데이터마이닝연구실 김태준
*(SlideShare에서도 배달의민족 도현체 쓰고 싶어요)
본 영상은 2021-2 KMOOC-데이터엔지니어링 강의의 원본이며, 강좌 오픈 이후에는 질의 응답 채널으로 이용 예정입니다. 각 Topic에 질문 해주시면 가능한 답은 달아드리도록 하겠습니다.
강의노트 (SlideShare) - https://www.slideshare.net/ssuser4a9113
코드 (GitHub) - https://github.com/JaewookByun/data_engineering
총 11강
구성
- ArrayList 연산
- MyArrayList - 배열 기반 List interface 구현
- LinkedList 연산
- MyLinkedList - 참조 기반 List & Queue interfaces 구현
- HashSet/HashMap 연산
- Lambda Expression
- Stream - Open JDK 15에서 이용가능한 거의 대부분의 연산을 다루려고 노력함
1. LDA
누구나 따라할 수 있는 텍스트마이닝
LDA 본 실습 및 정리
- Fairies NLP Series
*Github: /sanghan1990
*E-mail:sanghan1990@gmail.com
2. Data 유형
결론 및 인사이트
미래
프로젝트진행
용어(부록)
LDA란 무엇인가
두 가지로 구성! 하나는 여러분도 사용할 수 있는
오픈소스 데이터 / 현장 데이터
어떤 패키지를 사용했는지, 어떻게 Time-Schedule
을 짰는지, 시행착오들은 무엇이었는지?
Fairies : Code단으로 자세히 설명부탁드려요!! (아..
말로만퉁칠려고 했는데 ㅜㅜ)
LDA의 Latent 는 무엇이며 D, A는 무엇이고 어떤
프로젝트에 적합한지 말씀해주셔야죠!
Fairies : 굉장히 정성적으로 이해하기 쉽게 저만의
워드로 적어놔보았습니다.
텍스트마이닝이라고 했지만 결국 머신러닝이었으
니 그에 관한 다양한 용어들을 정리해줘야겠죠!
Fairies : 용어설명 하나씩 하면 본질에 벗어날때가
많아. 한 곳에 모아놨습니다.
이건 덕분에 많이 알게됬으니 다른것에 흥미를 가
질래. 뭐가 있을까?
Fairies : 문서가 크든 작든 기계가 알려준 토픽을
찾아서 직관적으로 빠르게 설명을 빠르게 할 수 있
는 방법으로 뭐가 있을지 생각해볼 수 있어요!
구체적으로 뭐가 나온건지 설명해봐?
Fairies : 비지도학습을 통해 categor를 갖지 않아도
학습후 기계가 알아서 토픽을 원하는 만큼을 분류
해주어 해당 뉴스나 텍스트안에서의 토픽을 나누
어 주요단어
를 볼 수 있습니다.
Data 의 유형은 다양합니다. 하지만 텍스트마이닝
의 데이터는 텍스트라 간단하다고 생각하겠지만
실제로 전처리 해야할 부분이 많죠.
Fairies : 딥러닝도 아니고 모델링을 실행하는데 오
래걸리진 않는다 생각하죠. 전처리때문에 시간을
많이 쓴 것 외에도 패키지가 GPU를 사용할 수 없
으니까 시간이 많이 들죠!
6. latent dirichlet allocation
• NLP – LDA (NLP란? 용어설명)
• 잠재 디리클레 할당
• 문서에 잠재되어 있는 topic을 이용해 분류(cluster)하는 방법론
• 잠재변수를 사용.
• 비지도학습
• LDA의 확률분포는 토픽 벡터의 요소가 양수이며 모든 요소를 더한 값이 1인 경우
에 대해서 확률값이 정의되는 분포임.
7. 활용사례
• 트위터 등 비격식 문서를 갖고 연령대, 성별, 지역을 분류한다.
feature를 선택하고 LDA를 이용하여 예측된 확률분포를 활용하
여 분류한 결과, 연령 72%, 성별75%, 지역43%의 납득할만한 예
측 정확도 결과를 얻게 되었다.
8. 활용사례
• 주제가 광범위 하고 양이 많은 데이터에 적용시키기 위해 적용
하였다.
• LDA를 기반으로 트위터 데이터를 분석하여 토픽의 변화 시점
및 패턴을 파악하는 연구를 진행.
9. 활용사례(부정적)
LDA is a poor method made popular by the marketing genius
of some academics who have built their careers on it. It
entirely ignores complicated and important aspects of
linguistics to describe a rather unbelievable generative
process of text that usually doesn’t yield anything meaningful,
surprising, and insightful. If you have every used it, you will
know what I am talking about.
10.
11. Learning
Process
1. 찾고싶은 토픽개수 지정
k
2. K개의 토픽 들 중 하나를
랜덤하게 할당
3. 각 문서 d에 대해 각 단
어 w에
p(topic | document
d),
p(word | document d)
4. p(topic | document d)
* p(word | document d)에
따른 토픽 t 를 고른다.
12. 수식으로 쉽게 이야기 하면
문서를 토픽으로 표현한 것 뿐
1. 푸아송 분포 Choose N ~ Poisson(€) 로 문서에 들어
간 N개 단어를 결정하고
2. 디리클레 분포 Choose theta ~ Dir(alpha)로 k개 토
픽세트에서 토픽을 결정. 1/3은 토픽 1, 1/3은 토픽 2에
들어가는 것
3. 토픽의 다항분포를 갖고 단어 확률 생성한다.
14. Sklearn – LDA()
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html
learning_method : ‘batch’ | ‘online’, default=’online’
Method
used to update _component. Only used in fit method. In general, if the data size is large, the online update will be
much faster than the batch update. The default learning method is going to be changed to ‘batch’ in the 0.20 release.
Valid options:
'batch': Batch variational Bayes method. Use all training data in
each EM update.
Old `components_` will be overwritten in each iteration.
'online': Online variational Bayes method. In each EM update, use
mini-batch of training data to update the ``components_``
variable incrementally. The learning rate is controlled by the
``learning_decay`` and the ``learning_offset`` parameters.
15. 프로젝트
1) 영화
리뷰 데이
터셋
(aclImdb)
1. 데이터 전처리(생략)
2. Bag of word, stop word
3. LDA
4. Print out & sort Topic
사용되는 패키지 : sklearn(LatentDirichletAllocation).
Numpy. Mglearn(print_topics)
18. 2. Bag of word, stop word
• 문서에서 나타나는 단어에 15% 나타나는 단어를 삭제
• 가장 많이 등장하는 10,000개에 대한 Bag Of Word 모델 설계
vect = CountVectorizer(max_features=10000, max_df=.15)
X = vect.fit_transform(text_train)
19. 3. LDA (parameter by
sklearn)
• We build the model and
transform the data in one
step. (모델 생성과 변환을 한
번에)
• Computing transform takes
some time, and we can save
time by doing both at
once(변환 시간이 좀 걸리므로 시
간을 절약하기 위해 동시처리)
• n_topic = 10; 10개의 토픽으로
토픽 모델 학습할 것. 토픽의 수
를 바꾸면 모든 토픽이 바뀐다.
• batch 방법을 사용
• max_iter :기본값 10; 모델 성
능을 위해 max_iter 값 증
# LDA
from sklearn.decomposition import
LatentDirichletAllocation
lda = LatentDirichletAllocation(n_topics=10,
learning_method="batch",
max_iter=25, random_state=0)
document_topics = lda.fit_transform(X)
21. 4. Print out & sort Topic
• # for each topic (a row in the components_), sort the features
(ascending).
• # Invert rows with [:, ::-1] to make sorting descending
• # 내림차순이 되도록 [:, ::-1]을 사용해 행의 정렬을 반대로 바꾼
다.
sorting = np.argsort(lda.components_, axis=1)[:, ::-1]
# get the feature names from the vectorizer:
feature_names = np.array(vect.get_feature_names())
38. • 최신들어서 토픽모델링분야 인기를 유지하고 있는 textrank 는
파이썬으로 구현된 소스들이 많이 있다.
• R로 구현된 한글데이터로 구현된 소스코드나 형태소분석기 등
등을 모색중.
• LDA는 R로 더 자세한 연구를 해보인듯.
• R이 LDA쪽으로 더 많은 연구가 있었으나 한국어데이터셋으로
한 것은 드물다.
42. 아이디어
기사 10개로 나눠
기사 하나씩 보면서. (회사자원을 쓰도록)
다른기사로 넣어봤는데 잘 됨.
새로운 기사 넣으면 어디에 해당될 것이다.
정확도가 된다.
성능을 평가하는 방법은 고려.
설명력있게 설득력있게
43. 인사이트
- 빈도가 많은 단어는 불용어에 가깝고
- 어떠한 토픽은 부정적으로 보이고 칭찬멘트가 많은 단어들로 구성된
것들이 있는지 알아낼수 있다.
- 특정 영화에 대한 의견이거나 평가 점수를 합리화 하거나 강조하기
위한 댓글이라는 사실이 재미있다.
- LDA라는 토픽모델은 라벨이 없거나 있어도 상광넚이 텍스트
말뭉치를 해석하는데 도움을 준다.
- LDA는 확률적 알고리즘이기때문에 random_state 를 바꾸면 결과가
바뀌니 주의하자.
- 보수적으로 평가해야 하는 이유는 비지도학습이기 때문에 과정을
이해하는데 해당 하는 문서를 직접 보지 않고 판단하는건 좋지 않다.
75. Conclusion
In fact, it is such a non-interpretable model that there are papers
written in how to analyze and interpret its output. One such paper
compared analyzing the resultant topics from LDA to reading tea
leaves!
A senior tenured researcher I know performed LDA on text and
then used the learned topics to assign each document to a single
topic, effectively using the LDA mixed-membership model for
publishability when all he eventually wanted was a clustering
model of the text documents.
Use cases of LDA are littered with such incidents where people
used LDA or its variants to seem knowlegeable and smart when
something simpler was far more suitable for their research task.
76. Conclusion
• Finding latent topics in a large corpus of
documents
• Massive automatic movies indexation from
subtitles.
• Topical stock quote motions.
• Modeling musical influence
• Behavior mining of Internet users.