πŸ“—
JunegLee's TIL
  • TIL
  • python
    • class
    • String Basic
    • regularExpression
    • String function
    • Generator
    • String format
    • getset
    • module
    • while
    • numpy
    • print()
    • matplotlib
    • for
    • Boolean
    • tuple
    • package
    • input(variable)
    • list
    • if
    • file
    • type()
    • pandas
    • function
    • dictionary
    • ꡬ문 였λ₯˜μ™€ μ˜ˆμ™Έ
    • builtinFunction
    • Constructor
  • algorithm
    • sort
      • mergeSort
      • insertionSort
      • bubbleSort
      • heapSort
      • quickSort
      • selectionSort
    • recursion
    • Greedy
    • DepthFirstSearch
    • basic
      • DataStructure
    • hash
    • BreadthFirstSearch
  • tensorflow
    • keras
      • layers
        • Flatten
        • Flatten
        • Dense
        • Dense
        • Conv2D
        • Conv2D
    • tensorflow1x
    • tensorflow2x
  • DB
    • setting
    • join
    • subQuery
    • overview
  • deep-learning
    • neuralNetwork
    • perceptron
    • neuralNetworkLearning
    • convolution neural network
    • Gradient Descent
    • Linear Regression
    • backPropagation
    • logistic regression
    • overview
  • textPreprocessing
    • overview
  • java
    • basics
      • generic
      • Variable
      • String
    • theory
      • Object Oriented Programing
  • NLP
    • Embedding
    • Natural Language Processing
Powered by GitBook
On this page
  • μ›Œλ“œ μž„λ² λ”© (Word Embedding)
  • ν¬μ†Œ ν‘œν˜„(Sparse Representation)
  • λ°€μ§‘ν‘œν˜„(Dense Representation)
  • Word2Vec
  • CBOW(Continuous Bag of Words) vs Skip-gram 방식
  • λ„€κ±°ν‹°λΈŒ μƒ˜ν”Œλ§(Negative Sampling)
  • Word2Vec λͺ¨λΈ 평가
  • Glove
  • FastText
  • ELMo(Embeddings from Language Model)
  • Universal sentence encoder

Was this helpful?

  1. NLP

Embedding

μ›Œλ“œ μž„λ² λ”© (Word Embedding)

  • 단어λ₯Ό λ°€μ§‘ν‘œν˜„ ν˜•νƒœμ˜ λ²‘ν„°λ‘œ ν‘œν˜„ν•˜λŠ” 방법

  • μ›Œλ“œ μž„λ² λ”© 과정을 톡해 λ‚˜μ˜¨ 벑터λ₯Ό μž„λ² λ”© 벑터(embedding vector)라고 함

  • Word2vec, Glove, FastText와 같은 방법둠이 있음

원-ν•« 인코딩

μ›Œλ“œ μž„λ² λ”©

고차원(전체 단어 개수)

저차원, μ‚¬μš©μž μ§€μ •

ν¬μ†Œ 벑터

λ°€μ§‘ 벑터

1, 0으둜 ν‘œν˜„

μ‹€μˆ˜λ‘œ ν‘œν˜„

μœ μ‚¬λ„ 계산 λΆˆκ°€λŠ₯

μœ μ‚¬λ„ 계산 κ°€λŠ₯

ν¬μ†Œ ν‘œν˜„(Sparse Representation)

  • 벑터 λ˜λŠ” ν–‰λ ¬μ˜ 값이 λŒ€λΆ€λΆ„ 0으둜 ν‘œν˜„λ˜λŠ” 방법

  • 원-ν•« 인코딩(one-hot encoding)방식

μ˜ˆμ‹œ) 1만개의 단어가 있고, κ°•μ•„μ§€μ˜ μΈλ±μŠ€λŠ” 5μ˜€μ„ λ•Œ, κ°•μ•„μ§€ = [ 0 0 0 0 1 0 0 0 0 0 0 0 … μ€‘λž΅ … 0] # 이 λ•Œ 1 λ’€μ˜ 0의 μˆ˜λŠ” 9995개.

λ°€μ§‘ν‘œν˜„(Dense Representation)

  • μ‚¬μš©μžκ°€ μ„€μ •ν•œ κ°’μœΌλ‘œ λͺ¨λ“  λ‹¨μ–΄μ˜ 벑터 ν‘œν˜„μ˜ 차원을 λ§žμΆ”λŠ” 방법

  • λ²‘ν„°μ˜ 차원이 μ‘°λ°€ν•΄μ‘Œλ‹€κ³  ν•˜μ—¬ λ°€μ§‘ 벑터(dense vector)라고 함

μ˜ˆμ‹œ) κ°•μ•„μ§€ = [0.2 1.8 1.1 -2.1 1.1 2.8 ... μ€‘λž΅ ...] (이 λ²‘ν„°μ˜ 차원은 128)

Word2Vec

  • λΉ„μŠ·ν•œ μœ„μΉ˜μ—μ„œ λ“±μž₯ν•˜λŠ” 단어듀은 λΉ„μŠ·ν•œ 의미λ₯Ό κ°€μ§„λ‹€λΌλŠ” κ°€μ • (강아지와 κ³ μ–‘μ΄λŠ” λΉ„μŠ·ν•˜λ‹€)

  • 쀑심 단어와 μ£Όλ³€ λ‹¨μ–΄λ‘œ ν•™μŠ΅ν•˜λ―€λ‘œ 라벨링이 ν•„μš” μ—†μŒ -> λΉ„μ§€λ„ν•™μŠ΅(unsupervised learning)

  • CBOW(Continuous Bag of Words), Skip-gram 방식

CBOW(Continuous Bag of Words) vs Skip-gram 방식

  • CBOW : 주변에 μžˆλŠ” λ‹¨μ–΄λ‘œλΆ€ν„° 쀑심 단어λ₯Ό 예츑

  • Skip-gram : 쀑심 λ‹¨μ–΄μ—μ„œ μ£Όλ³€ 단어λ₯Ό 예츑

λ„€κ±°ν‹°λΈŒ μƒ˜ν”Œλ§(Negative Sampling)

  • μ£Όλ³€ 단어-쀑심 단어 관계λ₯Ό κ°€μ§€κ³  μ§€μ •ν•œ μœˆλ„μš° μ‚¬μ΄μ¦ˆ 내에 μ‘΄μž¬ν•˜λ©΄ 1, κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ 0으둜 이진뢄λ₯˜ 문제둜 λ³€κ²½ν•˜μ—¬ ν•™μŠ΅ν•˜λ©΄ 더 λΉ λ₯΄κ²Œ ν•™μŠ΅ν•  수 있음

  • 전체 단어가 μ•„λ‹ˆλΌ, 일뢀에 λŒ€ν•΄μ„œλ§Œ ν•™μŠ΅ν•˜λ„λ‘ μƒ˜ν”Œλ§

  • μ—¬κΈ°μ„œ μ›λ„μš°λŠ” 쀑심 단어λ₯Ό μ˜ˆμΈ‘ν•˜κΈ° μœ„ν•΄μ„œ μ•ž, λ’€λ‘œ λͺ‡ 개의 단어λ₯Ό 볼지에 λŒ€ν•œ λ²”μœ„μ΄λ‹€

Word2Vec λͺ¨λΈ 평가

  • 코사인 μœ μ‚¬λ„(Cosine Similarity)

    • 코사인 μœ μ‚¬λ„λŠ” 두 νŠΉμ„± 벑터 κ°„μ˜ μœ μ‚¬ 정도λ₯Ό 코사인 κ°’μœΌλ‘œ ν‘œν˜„ν•œ 것

    • 코사인 μœ μ‚¬λ„λŠ” -1μ—μ„œ 1κΉŒμ§€μ˜ 값을 κ°€μ§„λ‹€

    • '-1' 은 μ„œλ‘œ μ™„μ „νžˆ λ°˜λŒ€, '0' 은 μ„œλ‘œ 독립, '1' 은 μ„œλ‘œ 같은 경우λ₯Ό 의미

  • μœ ν΄λ¦¬λ“œ 거리(Euclidean Distance)

  • μžμΉ΄λ“œ μœ μ‚¬λ„(Jaccard Similarity

  • Word Analogy

    • μœ μΆ”λ₯Ό ν†΅ν•œ ν‰κ°€λ‘œ μœ μΆ”μ— λŒ€ν•œ 데이터가 μ‘΄μž¬ν•΄μ•Ό ν…ŒμŠ€νŠΈλ₯Ό ν•  수 있음

Glove

  • 카운트 기반 방식은 단어 의미의 μœ μΆ”κ°€ λΆˆκ°€λŠ₯, 예츑 κΈ°λ°˜μ€ 전체적인 톡계 정보λ₯Ό 반영 λͺ»ν•¨

  • GloVeλŠ” 이λ₯Ό μœ„ν•΄ 카운트 기반과 예츑 κΈ°λ°˜μ„ λͺ¨λ‘ μ‚¬μš©

  • μž„λ² λ”© 된 쀑심 단어와 μ£Όλ³€ 단어 λ²‘ν„°μ˜ 내적이 전체 μ½”νΌμŠ€μ—μ„œμ˜ λ™μ‹œ λ“±μž₯ ν™•λ₯ μ΄ λ˜λ„λ‘ λ§Œλ“œλŠ” 것

FastText

  • Facebook researchμ—μ„œ κ³΅κ°œν•œ 단어 μž„λ² λ”© 기법

  • 단어λ₯Ό n-gram으둜 λ‚˜λˆ„μ–΄ ν•™μŠ΅

    • n-gram의 λ²”μœ„κ°€ 2-5둜 μ„€μ •ν•œ 경우 : assumption = {as, ss, su, …, ass, ssu, sum, …, mptio, ption, assumption}

  • μ‹€μ œ μ‚¬μš© μ‹œμ—λŠ”, μž…λ ₯ 단어가 사전에 μžˆμ„ 경우 ν•΄λ‹Ή λ‹¨μ–΄μ˜ 벑터λ₯Ό κ³§λ°”λ‘œ λ¦¬ν„΄ν•˜κ³  사전에 μ—†λŠ” 경우 (OOV, Out-of-Vocabulary) μž…λ ₯ λ‹¨μ–΄μ˜ n-gram vectorλ₯Ό ν•©μ‚°ν•˜μ—¬ λ°˜ν™˜

ELMo(Embeddings from Language Model)

  • λ¬Έλ§₯을 λ°˜μ˜ν•œ μ›Œλ“œ μž„λ² λ”© 기법

  • κΈ€μžκ°€ 같은 단어도 λ‹€λ₯Έ λœ»μ„ κ°€μ§€λŠ” κ²½μš°κ°€ 있음 (λ°”λ‹€ μœ„μ— 'λ°°'κ°€ λ– μžˆλ‹€. λ‚˜λ¬΄μ— 'λ°°'κ°€ μ—΄λ Έλ‹€.)

  • Pre-trained λͺ¨λΈμ˜ μ‹œμž‘

Universal sentence encoder

  • ꡬ글이 κ³΅κ°œν•œ pretrained model둜 λ¬Έμž₯을 고차원 λ²‘ν„°λ‘œ 인코딩

  • 짧은 λ¬Έμž₯λ³΄λ‹€λŠ” κΈ΄ λ¬Έμž₯μ—μ„œ 더 쒋은 μ„±λŠ₯을 λ³΄μž„

  • μ—¬λŸ¬κ°€μ§€ 버전이 있으며, ν•œκ΅­μ–΄λ₯Ό ν•¨κ»˜ μ§€μ›ν•˜λŠ” multilingual 버전이 쑴재

  • 속도가 λΉ λ₯Έ CNN 버전, μ†λ„λŠ” λŠλ¦¬μ§€λ§Œ μ„±λŠ₯이 더 λ›°μ–΄λ‚œ Transformer 버전이 쑴재

PreviousNLPNextNatural Language Processing

Last updated 3 years ago

Was this helpful?