O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기

1.668 visualizações

Publicada em

2018.04.21에 있었던 Little Big Data #1 행사에서 "한국어 채팅 데이터로 머신러닝"이라는 주제로 발표했던 내용입니다

Publicada em: Dados e análise
  • Sex in your area is here: www.bit.ly/sexinarea
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Dating for everyone is here: www.bit.ly/2AJerkH
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기

  1. 1. <Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기 조한석 summatic@scatterlab.co.kr 1
  2. 2. 소개 • 머신러닝 엔지니어
 (@스캐터랩, 2016. 1~) • 연애 중
 (2016. 8~) • 곧 결혼
 (2018. 5~) !2
  3. 3. 소개 텍스트앳: 카톡감정분석 진저: 사랑을 이해하는 인공지능 연애의 과학: 모든 연애의 답• 스캐터랩 • 연애 콘텐츠 및 인공지능(?) 회사 • 시리즈 B • 사람들의 일상에 큰 영향을 미치는 연애를 도 와줍니다. • 연애 관련 논문을 쉽게 풀어서 설명해줍 니다. • 채팅 데이터를 분석해서 썸 혹은 연애를 과학적으로 분석해드립니다. • 서비스를 통해 수집된 채팅 데이터를 통해 기 능을 수행하는 인공지능이 아닌 일상적인 대 화를 할 수 있는 인공지능을 개발 중입니다. • 채팅 데이터 비식별화 조치 • 개인을 특정할 수 있는 정보(이름, 유저id 등) 는 저장하지 않습니다. • 개인정보(이름, 전화번호, 계좌번호 등)이 포 함된 문장은 사용하지 않습니다. !3
  4. 4. 발표 내용 • Intro • 소개 • 자연어 처리의 어려움 • 한국어 자연어 처리의 어려움 • 커플 채팅 데이터의 어려움 • 한국어 자연어 처리 • Preprocessing • Word Embedding • Document Similarity • 그 외 !4
  5. 5. Intro
  6. 6. 본격적으로 들어가기에 앞서 • 발표에서 다루는 내용 • 한국어 채팅 데이터를 다룬 경험 • 기본적으로 “상황” -> “문제" -> “해결” 의 형식을 따릅니다. • “해결” 에서는 알고리즘에 대한 개념을 소개합니다. • 머신러닝에 대한 기본 개념은 알고 있다고 가정합니다. • 머신러닝 혹은 발표 주제와 관련된 키워드는 영어를 사용합니다. • 발표에서 다루지 않는 내용 • 구체적인 수식과 알고리즘에 대한 자세한 설명은 하지 않습니다. • 참고자료에 대한 링크는 공개합니다. !6
  7. 7. 한국어 자연어 처리의 어려움 - 언어적 특성에 따른 어려움 • Hell조사 • 어떤 조사를 사용하느냐에 따라 문장의 뉘앙스가 달라집니다. • 자유로운 언어의 변형 • 줄임말 • 쉬운 외국어 표현 • 유행어 • 말장난 <예시> - 여자친구 있어? - 여자친구는 있어? / 여자친구가 있어? 여자친구랑 있어? <예시> 소확행, 성덕, 갑분띠 등 <예시> 더럽, 빼박캔트, 레알트루 <예시> 오지고 지리고 레릿고 <예시> 이런, 삼런, 사런, 오런 !7
  8. 8. • 혀 꼬인 소리 • 맞춤법 혹은 띄어쓰기 • 채팅에서만 할 수 있는 표현 한국어 자연어 처리의 어려움 - 커플 채팅 데이터의 어려움 <예시> 쟉이능 머해 / 알게떠 엽오 / 이제 모할꼬야? / 누워이또 / 나 잘해쪄? / 오구오구 그래쪄? / 
 울애긔 오디얌 빤니왕 <예시> - 오구오구 잘햇당 잘햇어 (X) -> 오구오구 잘했다 잘했어 (O) - 밥먹기전에 전화해줄까? (X) -> 밥 먹기 전에 전화해줄까? (O) - 뭐할꺼야? (X) -> 뭐 할 거야? (O) - 비온다 (X) -> 비 온다 (O) <예시> - 나 솢ㅜ ㅅ병 마셔써ㅓㅓ - 아ㅏㅏㅏㅏㅏㅏㅏㅏ 힘드러ㅓㅓㅓㅓㅓㅓㅓㅓ !8
  9. 9. 한국어 자연어 처리의 어려움 - preprocess의 중요성 • Data Science의 격언 • Garbage in, Garbage out • 너무나도 다양한 형태와 변형이 있기 때문에, 불필요한 정보를 날리고 정제하는 preprocess 과정 이 필수입니다. • 그렇다면 어떤 식으로 preprocess 해야할까요? !10
  10. 10. Preprocessing
  11. 11. Preprocessing - 형태소 분석기 • 형태소 분석기 • 일반적으로 한국어 데이터 preprocess를 위해서 사용하는 툴은 형태소 분석기(POS1 tagger) 입니다. • 형태소: 의미를 가지는 최소 단위 • 파이썬에서 가장 많이 사용하는 라이브러리는 KoNLPy2 • 한국어 정보처리를 위한 파이썬 패키지 • 꼬꼬마, 트위터, 한나눔 등 형태소 분석기 1) POS: Part of speech 2) http://konlpy-ko.readthedocs.io/ko/v0.4.3/ !12
  12. 12. Preprocessing - 형태소 분석기 사용 예시(꼬꼬마) • 자기 너무 보고싶다. 언제 만날까? • 자기_NP 너무_MAG 보_VV 고_ECE 
 싶_VXA 다_EFN ._SF 언제_MAG 
 만나_VV ㄹ까_EFQ ?_SF • 우리 영원히 사랑하자 • 우리_NP 영원히_MAG 사랑_NNG 
 하_XSV 자_ECE • 점심 맛있게 먹어요. 다 먹고 연락해 • 점심_NNG 맛있_VA 게_ECD 먹_VV 
 어요_EFN ._SF 다_MAG 먹_VV 
 고_ECE 연락_NNG 하_XSV 어_ECS <원문> <형태소 분석> !13
  13. 13. Preprocessing - 형태소 분석기 사용 예시(꼬꼬마) • 쟉이 넘넘 보고시펑. 언제봐? • 쟉_UN 이_JKS 넘_MAG 넘_MAG 
 보_VV 고_ECE 시_NNG 펑_MAG 
 언제_MAG 보_VV 아_ECS ?_SF • 우리사랑 포에버 • 우리_NP 사랑_NNG 포_NNG 
 에_JKM 벌_VV • 점심 맛나게머겅. 다먹구톡해ㅋㅋ • 점심_NNG 맛나_VA 게_ECD 머_NP 
 겅_UN ._SF 다_MAG 먹_VV 구_ECE 톡_MAG 하_VV 어_ECS ㅋㅋ_EMO <원문> <형태소 분석> !15
  14. 14. Preprocessing - 형태소 분석기 • 잘 안되는 이유 • 형태소 분석기 학습에 사용된 데이터(말뭉치, corpus)의 단어 분포가 채팅 데이터의 단어분포 와 다름 • 말뭉치(corpus) • 자연어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합 !17 출처: https://ko.wikipedia.org/wiki/말뭉치
  15. 15. Preprocessing - 형태소 분석기 • Sejong Corpus • National Institute of the Korean Language, 1998-2007. • 채팅데이터에 비해 아주 예쁘고 잘 정제된 형태의 데이터 • 온실 속의 화초에서 키운 애를 야생에 던져놓았으니 살아남을 리가 있나 (..) !18 출처: https://ithub.korean.go.kr/user/guide/corpus/guide1.do
  16. 16. • 모든 데이터를 합리적인 기준으로 패턴을 찾고 그 패턴으로 preprocess • 일종의 normalize(표준화) • 이 원칙을 바탕으로 preprocessing • 채팅 데이터에는 문법에 맞지 않는 데이터가 많으니까 • 문법적 요소를 제외한 방식의 tokenizing <예시> 만약 count(“어디야”) < count(“오디야?”)이면, “오디야”는 문법적으로 틀린 표현이지만 기준으로 삼을 수 있다. Preprocessing - 형태소 분석기 대안 !19
  17. 17. Preprocessing - Tokenizing • Tokenizing: 여러 단어로 이루어진 문장 혹은 어절에서 단어를 구분하는 것 • 영어의 경우에는 띄어쓰기 단위로 token이 나뉘어지지만, 한국어는 그렇지 않음. • 형태소가 의미를 가진 최소의 단위라면, token은 의미를 가진 실질 단위 • “의미를 가진 실질 단위”를 “단어”라고 생각한다면 tokenizing 문제는 문장에서 단어를 추출하는 문제로 생각할 수 있습니다. !20 <예시> before tokenizing: 제철에 수확한 국산 유기농 양배추와 브로콜리를 엄선하고 국산 사과즙을 더해 맛있는 유기가공식품 인증제품입 니다. after tokenizing: 제철 / 에 / 수확 / 한 / 국산 / 유기농 / 양배추 / 와 / 브로콜리 / 를 / 엄선 / 하고 / 국산 / 사과즙 / 을 /더해 / 맛있 는 / 유기가공식품 / 인증 /제품 / 입니다.
  18. 18. • 가정 • 연속된 글자의 연관성이 높을 수록 단어일 가능성이 높음 • c1c2..cn-1 다음에 cn이 많이나온다면 문자열 c1..cn은 단어일 것 • 공식 Preprocessing - Tokenizing(Cohesion Probability) !21 <예시> “빅데이” 라는 연속된 글자 다음에 “터”라는 글자가 나타나는게 가장 자연스럽다. 출처: https://ratsgo.github.io/from%20frequency%20to%20semantics/2017/05/05/cohesion/
  19. 19. Preprocessing - Tokenizing(Cohesion Probability) • 예시) 개꿀잼이다 • 개꿀잼이다 = 개꿀잼 + 이다 !22 substring count - count(개) = 20000 - count(개꿀) = 1500 - count(개꿀잼) = 1200 - count(개꿀잼이) = 30 - count(개꿀잼이다) = 15 cohesion probability - CP(개꿀) = 0.2738 - CP(개꿀잼) = 0.3914 - CP(개꿀잼이) = 0.1968 - CP(개꿀잼이다) = 0.2371
  20. 20. Preprocessing - Tokenizing • 단어를 추출하는 방법은 Cohesion probability 외에 다른 방법들도 있습니다. • 구체적인 이론과 코드는 다음 자료를 참고해주세요. • [파이콘 2017] 노가다 없는 텍스트 분석을 위한 한국어 NLP - 김현중 • 이론 • https://www.slideshare.net/kimhyunjoonglovit/pycon2017-koreannlp • 코드 • https://github.com/lovit/soynlp !23
  21. 21. Word Embedding
  22. 22. Word Embedding - Word2Vec • 단어 정보를 이용하여 머신러닝을 하려면 단어를 vector로 변환해주어야 합니다. • 이를 word embedding 또는 word representation이라고 합니다. • 가장 대표적인 알고리즘은 word2vec • You shall know a word by the company it keeps (Firth, J. R. 1957:11) !25
  23. 23. Word Embedding - Word2Vec의 한계 • word2vec은 이론도 간단하고 공개되어 있는 패키지가 많아서 이용이 간단하지만 OOV 문제가 있습니다. • OOV(Out-of-vocabulary): 데이터에 포함되어 있지 않은 (=dictionary에 없는) vocabulary 는 vector로 나타낼 수 없는 문제 • training 단계에서는 모델의 input으로 들어가는 vocabulary를 통제하기 때문에 OOV 문제가 생 기기 어렵지만, inference 단계에서는 충분히 생길 수 있습니다. • inference 단계: 모델을 서비스에 실제로 적용하는 단계 • 커플간의 채팅은 의도적으로든 실수로든 오타를 많이 내서 사전에 없는 단어가 만들어질 확률 이 높음 • 채팅데이터는 다른 텍스트데이터(뉴스, 문학작품 등)에 비해 한 문서당 단어의 수가 적기 때문 에, dictionary에 없는 단어가 하나라도 들어오면 큰 문제가 발생할 수 있습니다. !26
  24. 24. • word2vec과 비슷한 원리이나 두 단어간의 점수를 측정하는 부분이 다름 • word2vec: • • fasttext: • where the set of n grams appearing in w • 단어 내부의 subword를 이용하는 방식 Word Embedding - Fasttext !27 <예시> w: Alpaca n grams of w (n=3) = <Al, Alp, lpa, pac, aca, ca> 출처: Bojanowski, P., Grave, E., Joulin, A., & Mikolov, T. (2016). Enriching word vectors with subword information. arXiv preprint arXiv: 1607.04606.
  25. 25. Word Embedding - Fasttext + 한국어 • 한국어 데이터에 fasttext를 적용하는 방법은 두 가지가 있습니다. • 글자(character) 단위의 subword를 사용하는 방법 • 자모 단위의 subword를 사용하는 방법 • 글자 단위보다 자모 단위가 더 작으므로, OOV 문제에 대해 더 유연하게 대처할 수 있습니다. !28 <예시> subwords(미세먼지는) = <미세, 미세먼, 세먼지, 먼지는, 지는> <예시> 미세먼지는 = ㅁㅣ_ㅅㅔ_ㅁㅓㄴㅈㅣ_ㄴㅡㄴ subwords(미세먼지는) = <ㅁㅣ, ㅁㅣ_, ㅣ_ㅅ, …, ㄴㅡㄴ>
  26. 26. Word Embedding - Fasttext • 실제 사용 예시 !29 엽오 - 쟈긔, 0.8590 - 여보, 0.8465 - 여뿌, 0.8180 - 자긔, 0.8055 - 자깅, 0.8018 - 댜긔, 0.8017 - 내꼬, 0.8007 - 자기, 0.7983 - 여봉, 0.7972 - 뽀야, 0.7948 오빵 - 여붕, 0.9022 - 여봉, 0.8986 - 요봉, 0.8887 - 자깅, 0.8866 - 어빵, 0.8567 - 옵빵, 0.8498 - 옵빠, 0.8474 - 오라방, 0.8413 - 여뽕, 0.8335 - 여뿌, 0.8191
  27. 27. Word Embedding - Fasttext • 자세한 이론과 코드는 다음을 참고해주세요 • 이론 • Bojanowski, P., Grave, E., Joulin, A., & Mikolov, T. (2016). Enriching word vectors with subword information. arXiv preprint arXiv:1607.04606. • 코드 • https://github.com/facebookresearch/fastText • https://radimrehurek.com/gensim/models/fasttext.html • https://github.com/summatic/hangul_jamo_fasttext !30
  28. 28. Sentence Similarity
  29. 29. Setence Similarity • 자연어 처리 분야서 주로 다루는 문제 중 하나는 서로 다른 두 document간의 유사도를 비교하는 문제입니다. • 커플 채팅데이터가 일반적인 document와 다른점은 short sentence라는 점입니다. • 가장 쉽게 비교할 수 있는 방법은 word embedding과 같이 문장을 vector로 embedding해서 cosine similarity를 이용하는 방법입니다. !32 <예시> sim(우리 여보는 어디야, 자기 어디까지 왔어?)
  30. 30. Sentence Similarity - BOW + Word Embedding • 문장에 있는 모든 word의 vector를 단순히 더하는 방식의 방법 • doc2vec도 포함합니다 • word embedding의 성능에 큰 영향을 받습니다 • 그렇다면 word embedding은 신뢰할 수 있을까요? • 채팅 데이터에서 학습시킨 word embedding 중 이상한 결과들 • 유사한 단어 != 뜻이 비슷한 단어 !34 - similarity(춥다, 덥다) = 0.9011 - similarity(일찍, 늦게) = 0.8839 - similarity(흰색, 검은색) = 0.9707
  31. 31. Sentence Similarity - RNN • 자연어 처리 관련 딥러닝 모델은 sentence embedding을 위해 RNN 계열의 모델(LSTM, Bi- RNN, GRU 등)을 많이 씁니다. • RNN의 본질은 language modeling • “반갑습니다 캠퍼스 서울입니다.” <-> “반습갑니다 캠퍼스 서울니입다” 중 어떤 문장이 더 말 이 되는지를 판단 • 주어진 sequence에서 다음에 올 단어 혹은 글자를 예측하는 방향으로 embedding이 된다. • 그래서.. “우리 언제볼까”와 “어디까지 왔어”가 비슷하게 embedding 되는 경향이 있습니다. • 두 문장 모두 다음에 올 글자는 “?” !35
  32. 32. Sentence Similarity - Term vector • 문장 혹은 문서를 vector로 표현할 때는 embedding 알고리즘 혹은 모델이 의도하는 방향으로 embedding이 됩니다. • 애매하게 embedding할 바에 term vector로 표현 • one hot encoding이랑 같은 방법이라고 생각하시면 됩니다. • term vector로 표현을 하고 나면 cosine similarity, edit distance 등으로 두 문장의 유사도를 비교할 수 있습니다. !36 <예시> - I love you, you love me - {“I”: 1, “love”: 2, “you”: 2, “me”: 1}
  33. 33. Sentence Similarity - Term vector • term vector로 채팅 데이터를 나타냈을 때 발생하는 문제점 • 단어의 변화에 너무 민감. 특히 짧은 문장이 많은 채팅 데이터일수록 문제가 생길 여지가 많음 • 단어의 의미정보를 이용할 수 없음 • pair1의 유사도가 pair2의 유사도보다 더 커야할 것 같지 않나요? !38 <예시> pair1: I love you <-> I like you pair2: I love you <-> I hate you
  34. 34. Sentence Similarity - ESA Similarity • ESA: Explicit Semantic Analysis • 명시적인 정보(=word vector)를 이용하자 • cosine similarity • ESA similarity !39 I love you I like you similarity I love you I 1 0.2 0.5 like 0.3 0.9 0.4 you 0.5 0.4 1 1 0.9 1
  35. 35. Sentence Similarity - ESA Similarity • ESA: Explicit Semantic Analysis • 명시적인 정보(=word vector)를 이용하자 • cosine similarity • ESA similarity !40 I love you I hate you similarity I love you I 1 0.2 0.5 hate 0.3 0.5 0.4 you 0.5 0.4 1 1 0.5 1
  36. 36. Sentence Similarity - ESA Similarity • ESA: Explicit Semantic Analysis • I love you와의 유사도 비교 • 유의미한 차이를 만들어 낼 수 있습니다. !41 I like you I hate you cosine 0.667 0.667 ESA 0.967 0.833
  37. 37. Sentence Similarity - ESA Similarity • 구체적인 이론과 코드는 다음 자료를 참고해주세요. • 이론 • Song, Y., & Roth, D. (2015). Unsupervised sparse vector densification for short text similarity. In Proceedings of the 2015 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (pp. 1275-1280). • 코드 • (작업중) !42
  38. 38. 기타
  39. 39. 그 외 자잘한 팁 • 한국어 자연어 처리는 preprocessing가 80% 이상 • Zipf’s law • corpus에서 나타나는 단어들을 사용빈도 순으로 나열한다면, 사용빈도와 해당 단어의 수는 반 비례한다 • (문제마다 다르겠지만) 데이터의 모든 단어를 이용할 필요는 없음. 빈도수가 적은 단어는 과감 히 쳐내자 • 문제 정의를 잘 하는것이 모델을 구현하는 것보다 훨씬 중요 • 현실에서 마주하는 문제는 복합적인 요소들이 작용 • 기술적으로 뛰어난 모델을 적용하는 것도 좋지만, 간단한 통계 혹은 count based 모델을 사용 하는 것이 효과적일수도 있다 • unlabeled data에 직접 label을 달아보자 • label을 달다가 보면 뜻밖의 insight를 얻기도 함 !44
  40. 40. WE WANT YOU!
  41. 41. - End of Document - 46

×