Natural Language Processing - BD-SEARCH/MLtutorial GitHub Wiki

๊ธฐ์ดˆ ๊ฐœ๋…

Language understanding

  • NLU : ์ž‘์„ฑ๋œ ํ…์ŠคํŠธ์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ด (text -> meaning)
    • ex) named-entity recognition, question answering, sentiment analysis
  • NLG : ํŠน์ •ํ•œ ์ž…๋ ฅ์„ ์กฐ๊ฑด์œผ๋กœ ํ…์ŠคํŠธ ์ƒ์„ฑ (meaning -> text)
    • ex) machine translation, conversational response generation

Language Model

  • Language Model: ๋‹จ์–ด ์‹œํ€€์Šค์— ๋Œ€ํ•œ ํ™•๋ฅ  ๋ถ„ํฌ. k๊ฐœ์˜ ๋‹จ์–ด ๋ฐฐ์—ด์ด ๋‚˜์™”์„ ๋•Œ ์‹ค์ œ๋กœ ๊ทธ๋Ÿฐ ๋ฐฐ์—ด์ด ๋‚˜์˜ฌ ํ™•๋ฅ ์„ ์˜๋ฏธํ•œ๋‹ค.
    • example: P(I am a boy) = 0.001, P(I a boy am) = 0.000000000001
  • ๋ชจ๋ธ์„ ํ•™์Šตํ•  ๋•Œ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ language model์ด ๋‚˜์˜จ๋‹ค.

Language Model์—๋Š” unigram model๊ณผ n-gram model์ด ์žˆ๋‹ค. unigram model์€ ๋‹จ์–ด ์‹œํ€€์Šค์˜ ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•  ๋•Œ ๋‹จ์ˆœํžˆ ๊ฐ๊ฐ์˜ ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ฌ ํ™•๋ฅ ์„ ๊ณฑํ•ด์„œ ๊ณ„์‚ฐํ•œ๋‹ค. n-gram model์€ ๋‹จ์–ด ์‹œํ€€์Šค ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•  ๋•Œ, ์•ž์— n-1๊ฐœ์˜ ๋‹จ์–ด ์‹œํ€€์Šค๊ฐ€ ๋‚˜์˜ฌ ๋•Œ ๊ทธ ๋‹ค์Œ์— ๋‚˜์˜จ ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ฌ ํ™•๋ฅ ์˜ ๊ณฑ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ์— ์„ค๋ช…์ด ๋˜์–ด ์žˆ๋‹ค.

๋ชจ๋ธ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•œ ๋ฌธ์„œ์— ๋”ฐ๋ผ ํ™•๋ฅ ๊ฐ’์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š” ์ ์„ ์ด์šฉํ•˜์—ฌ, ๋ฌธ์„œ ๋ถ„๋ฅ˜์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. IT ๋ฌธ์„œ๋กœ ๋งŒ๋“  language model, ์—ฐ์˜ˆ ๋ฌธ์„œ๋กœ ๋งŒ๋“  language model ๋“ฑ ๋ฌธ์„œ ์ฃผ์ œ๋ณ„๋กœ ๊ฐ๊ฐ language model์„ ๋งŒ๋“ ๋‹ค. ์ฃผ์ œ๋ณ„ language model๋กœ ๊ฐ๊ฐ ๋‹จ์–ด ์‹œํ€€์Šค๊ฐ€ ๋‚˜์˜ฌ ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•˜๋ฉด, ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ language model์˜ ์ฃผ์ œ๊ฐ€ ๊ธ€์˜ ์ฃผ์ œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ํ˜„์‹ค์ ์œผ๋กœ unigram model์ด๋‚˜ 2-gram model์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•œ๊ณ„์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ n ๊ฐ’์ด ๋„ˆ๋ฌด ํฌ๋ฉด ๋ชจ๋ธ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋„ ๋ฌธ์ œ์ด๊ณ , ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ model์ด ํ•™์Šตํ•˜์ง€ ๋ชปํ•œ ๋‹จ์–ด์˜ ์Œ๋„ ๋งŽ์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ์•„์ฃผ ๋งŽ์ง€ ์•Š๋‹ค๋ฉด 2-gram model๋„ ์ž˜ ๋™์ž‘ํ•˜์ง€ ์•Š์•„์„œ unigram model์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

TF-IDF

TF-IDF(Term Frequency-Inverse Document Frequency)

  • ๋ฌธ์„œ ๋‚ด์—์„œ ๊ฐ€์žฅ ๋น„์ค‘์žˆ๊ฒŒ ๋‹ค๋ฃจ๋Š” ๋‹จ์–ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ด๋‹ค.
  • ํŠน์ • ๋‹จ์–ด๊ฐ€ ๋ฌธ์„œ์—์„œ ๋‚˜์˜ค๋Š” ๋นˆ๋„๊ฐ€ ๋†’์œผ๋ฉด์„œ, ๋‚˜์˜ค๋Š” ๋ฌธ์„œ ์ˆ˜๊ฐ€ ์ ์„์ˆ˜๋ก ๊ฐ’์ด ํฌ๋‹ค.
    • ์—ฌ๋Ÿฌ ๋ฌธ์„œ์—์„œ ๊ณจ๊ณ ๋ฃจ ๋‚˜์˜ค๋Š” ๋‹จ์–ด(์žˆ์Šต๋‹ˆ๋‹ค, ์ž…๋‹ˆ๋‹ค ๋“ฑ)๋Š” ๋ณ„ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ„์ฃผํ•œ๋‹ค.
    • ํ•œ ๋ฌธ์„œ์—์„œ๋งŒ ์ž์ฃผ ๋‚˜์˜ค๋Š” ๋‹จ์–ด(ํ‚ค์›Œ๋“œ, ์ „๋ฌธ ์šฉ์–ด, ๊ณ ์œ  ๋ช…์‚ฌ ๋“ฑ)๋Š” ๋งŽ์€ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ„์ฃผํ•œ๋‹ค.

TF-IDF๋Š” TF(Term Frequency)์™€ IDF(Inverse Frequency)์˜ ๊ณฑ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • TF (Term Frequency): ๋ฌธ์„œ ๋‚ด์— ํŠน์ • ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ค๋Š” ๋นˆ๋„์ˆ˜. ๋นˆ๋„์ˆ˜๊ฐ€ ํด์ˆ˜๋ก ๊ฐ’์ด ์ปค์ง„๋‹ค.
  • IDF(Inverse Frequency): ํŠน์ • ๋‹จ์–ด๊ฐ€ ๋‚˜์˜จ ๋ฌธ์„œ ๊ฐœ์ˆ˜์˜ ์—ญ์ˆ˜. ํŠน์ • ๋‹จ์–ด๊ฐ€ ๋‚˜์˜จ ๋ฌธ์„œ ์ˆ˜๊ฐ€ ์ ์„์ˆ˜๋ก ๊ฐ’์ด ์ž‘์•„์ง„๋‹ค.

TF-IDF ๊ฐ’์ด ํฐ ๋‹จ์–ด๋Š” ๊ทธ ๋ฌธ์„œ์—์„œ ์ค‘์š”ํ•œ ๋‹จ์–ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ์ฐธ๊ณ  ๋งํฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Naive Bayes Classifier

Bayes Theorem์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์ „ ํ™•๋ฅ ๊ณผ ์‚ฌํ›„ ํ™•๋ฅ ์„ ์„œ๋กœ ๋ฐ”๊ฟจ์„ ๋•Œ ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ณต์‹์ด๋‹ค.

P(A|B) = P(B|A)P(A)/P(B)

์ด ๊ณต์‹์€ ์ŠคํŒธ ํ•„ํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ธ "์ŠคํŒธ ๋ฌธ์„œ์—์„œ ์–ด๋Š ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ฌ ํ™•๋ฅ "์„ ํ†ตํ•ด "์–ด๋Š ๋‹จ์–ด๊ฐ€ ๋‚˜์™”์„ ๋•Œ ์ŠคํŒธ ๋ฌธ์„œ์ผ ํ™•๋ฅ "์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Embedding

ํ…์ŠคํŠธ ๋ถ„์„ ๋ชจ๋ธ

ํ…์ŠคํŠธ๋Š” Sequence๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ผ์„œ ๋ถ„์„ํ•  ๋•Œ RNN์ด๋‚˜ CNN์ด ๋งŽ์ด ์“ฐ์ธ๋‹ค.

TextCNN

Seq2CNN

SyntaxNet

๋…ผ๋ฌธ ๋งํฌ: https://arxiv.org/abs/1603.06042

์ž์—ฐ์–ด๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ, ๋ฌธ์žฅ์„ ํŒŒ์‹ฑํ•˜์—ฌ ๋‹จ์–ด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋‚ด๋†“๋Š” ๋ชจ๋ธ์ด๋‹ค. 2016๋…„์— Google์ด ๋งŒ๋“ค์—ˆ๋‹ค.

Attention Mechanism

์‘์šฉ

๋ฌธ์žฅ ๋ถ„๋ฅ˜

๋ฌธ์žฅ์„ ํŠน์ •ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ŠคํŒธ ๋ฌธ์„œ ๋ถ„๋ฅ˜๋ผ๋˜๊ฐ€, ๋ฆฌ๋ทฐ์˜ ๊ธ๋ถ€์ • ๋ถ„๋ฅ˜, ๊ธ€์˜ ์ฃผ์ œ ๋ถ„๋ฅ˜ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์žฅ์„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๊ฐ™์€ ์›๋ฆฌ๋กœ ๋ฌธ๋‹จ์ด๋‚˜ ๊ธ€๋„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๊ณ„ ๋ฒˆ์—ญ

seq2seq๋ฅผ ํ™œ์šฉํ•ด ๊ธฐ๊ณ„ ํ•™์Šต ์‹œ์Šคํ…œ์„ tensorflow๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ์— ๋‚˜์™€ ์žˆ๋‹ค.

์ด ๊ฒƒ์„ ์ด์šฉํ•ด์„œ ์ฑ—๋ด‡(Chatbot)๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๊ณ„ ๋ฒˆ์—ญ์—์„œ ์›๋ณธ ์–ธ์–ด๋ฅผ "์ž…๋ ฅ ๋ฌธ์žฅ"์œผ๋กœ, ๋ฒˆ์—ญ๋œ ์–ธ์–ด๋ฅผ "๋Œ€๋‹ต ๋ฌธ์žฅ"์œผ๋กœ ๋Œ€์‘ํ•˜์—ฌ ํ•™์Šต์„ ์‹œํ‚ค๋ฉด ๊ฐ„๋‹จํ•œ ์ฑ—๋ด‡์ด ์™„์„ฑ๋œ๋‹ค.

*[Deep Learning] seq2seq ๋ฅผ ์ด์šฉํ•œ ์ฑ—๋ด‡ (Neural Machine Chatbot): tensorflow/nmt๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฑ—๋ด‡์„ ๋งŒ๋“  ์˜ˆ์ œ

ํ•œ๊ตญ์–ด ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ

  • ํ•œ๊ตญ์–ด ๋ฌธ๋ฒ• ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ: link

์ฃผ์˜์ 

์˜์–ด์™€ ๋‹ฌ๋ฆฌ ํ•œ๊ตญ์–ด๋Š” ๊ฐ™์€ ์–ด๊ทผ์„ ์—ฌ๋Ÿฌ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์–ด, ํ˜•ํƒœ์†Œ ๋ถ„์„์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค. (์˜ˆ: ๋ฐ”๊พธ๋‹ค, ๋ฐ”๊พธ๋‹ˆ, ๋ฐ”๊ฟ”, ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค, ...) TextCNN ๊ฐ™์€ ๊ฒฝ์šฐ ํ˜•ํƒœ์†Œ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ด์šฉํ•˜๊ธฐ๋„ ํ•˜๋‚˜, BERT์™€ ๊ฐ™์ด ํ†ต๊ณ„ ๊ธฐ๋ฐ˜์˜ Tokenizer๋ฅผ ์ด์šฉํ•˜๋Š” ๋ชจ๋ธ๋„ ์žˆ๋‹ค.

ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ์ข…๋ฅ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

ํ•œ๊ตญ์–ด ๋ง๋ญ‰์น˜

ํ•œ๊ตญ์–ด ๋ง๋ญ‰์น˜๋ž€ ํ•œ๊ตญ์–ด๋กœ ๋œ ๋ง์ด๋‚˜ ๊ธ€์„ ๋ชจ์•„, ๋ฌธ์žฅ, ์–ด์ ˆ, ํ˜•ํƒœ์†Œ ๋ณ„๋กœ ๋ถ„์„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์˜ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. ์ฃผ์š” ๋ง๋ญ‰์น˜๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ๋‹ค.

  • ๊ตญ๋ฆฝ๊ตญ์–ด์› ๋ง๋ญ‰์น˜: ๊ตญ๋ฆฝ๊ตญ์–ด์›์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•œ๊ตญ์–ด ๋ง๋ญ‰์น˜. ๋‹ค์šด๋กœ๋“œ(๋‚ด๋ ค๋ฐ›๊ธฐ)๋ฅผ ํ•˜๋ ค๋ฉด ๋กœ๊ทธ์ธ(๋“ค์–ด๊ฐ€๊ธฐ)์ด ํ•„์š”ํ•˜๋‹ค.

๋ฌธ์ž ๋‹จ์œ„ ์ธ์ฝ”๋”ฉ

์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ๊ฒฝ์šฐ

  • ๋ฌธ๋ฒ•์ ์ธ ์˜๋ฏธ๋ฅผ ์ถ”์ถœํ•  ๋•Œ
    • ๊ฐœ์ฒด๋ช… ์ธ์‹, ํ’ˆ์‚ฌ ๋ถ„์„ ๋“ฑ
    • ๋ฌธ๋ฒ•์ ์ธ ์˜๋ฏธ๋Š” ๋‹จ์–ด ์ „์ฒด๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ผ๋ถ€ ๊ธ€์ž๋งŒ ์ผ์น˜ํ•ด๋„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Œ
      • ์˜ˆ) '๊ณต๋ถ€ํ•œ๋‹ค'๊ฐ€ '๋ฌด์—‡์„ ํ•˜๋Š” ๊ฒƒ'์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค๋ฉด, 'ํ•™์Šตํ•œ๋‹ค' ๋“ฑ 'ํ•œ๋‹ค'๊ฐ€ ๊ณตํ†ต๋  ๊ฒฝ์šฐ ๋ชจ๋‘ '๋ฌด์—‡์„ ํ•˜๋Š” ๊ฒƒ'์ด๋ผ๋Š” ๊ฒƒ์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ชจ๋ฅด๋Š” ๋‹จ์–ด๋ฅผ ๋ฒกํ„ฐ๋กœ ์ธ์ฝ”๋”ฉํ•ด์•ผ ํ•  ๋•Œ

์ฐธ๊ณ ์ž๋ฃŒ