Word Embeddings (Word2Vec, GloVe, FastText)

рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╣рдо Word Embeddings (Word2Vec, GloVe, FastText) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдиреЗрдВрдЧреЗред NLP рдореЗрдВ word embeddings semantic meaning рдХреЛ numbers рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

ЁЯза Word Embeddings in NLP

рдЬрдм рд╣рдо NLP рдореЗрдВ raw text data рдХреЛ machine learning models рдореЗрдВ input рдХреЗ рд░реВрдк рдореЗрдВ use рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ text рдХреЛ numerical representation (vector form) рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред Simple methods рдЬреИрд╕реЗ Bag of Words (BoW) рдпрд╛ TF-IDF рд╕рд┐рд░реНрдл frequency рдпрд╛ importance рдХреЛ capture рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ semantic meaning (рдЕрд░реНрде) рдХреЛ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рддреЗред рдпрд╣реАрдВ рдкрд░ Word Embeddings рдХрд╛рдо рдЖрддреЗ рд╣реИрдВред

Word embeddings continuous vector representations рд╣реИрдВ, рдЬреЛ words рдХреЗ рдмреАрдЪ semantic similarity рдФрд░ context рдХреЛ preserve рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 'king' рдФрд░ 'queen' embeddings рдореЗрдВ рдХрд░реАрдм рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдЕрд░реНрде related рд╣реИред Word2Vec, GloVe рдФрд░ FastText рддреАрди рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп techniques рд╣реИрдВред

1я╕ПтГг Word2Vec

Word2Vec (by Google, 2013) рдПрдХ neural network рдЖрдзрд╛рд░рд┐рдд рдореЙрдбрд▓ рд╣реИред рдпрд╣ words рдХреЛ high-dimensional vector space рдореЗрдВ map рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рджреЛ рдореБрдЦреНрдп architectures рд╣реИрдВ:

  • CBOW (Continuous Bag of Words): рдЖрд╕рдкрд╛рд╕ рдХреЗ context words рд╕реЗ target word predict рдХрд░рддрд╛ рд╣реИред
  • Skip-gram: рдПрдХ target word рд╕реЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ context words predict рдХрд░рддрд╛ рд╣реИред
      Example: "The cat sits on the mat"
      Skip-gram task: Given "cat", predict ["The", "sits", "on", "the"]
    

ЁЯФ╣ Word2Vec рдХреЗ рдлрд╛рдпрджреЗ

  • Semantic relationships рдХреЛ capture рдХрд░рддрд╛ рд╣реИред
  • Efficient training with large data.
  • Analogies possible: "king - man + woman = queen"

2я╕ПтГг GloVe (Global Vectors for Word Representation)

GloVe (by Stanford) рдПрдХ matrix factorization based approach рд╣реИред рдпрд╣ co-occurrence matrix рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ statistical information рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ word vectors generate рдХрд░рддрд╛ рд╣реИред

      Example:
      рдЕрдЧрд░ "ice" рдФрд░ "steam" рджреЛрдиреЛрдВ "solid" рдФрд░ "gas" рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ frequency рдореЗрдВ рдЖрддреЗ рд╣реИрдВ,
      рддреЛ GloVe рдЗрди relationships рдХреЛ numerical space рдореЗрдВ capture рдХрд░ рд▓реЗрдЧрд╛ред
    
  • Global statistical information use рдХрд░рддрд╛ рд╣реИред
  • Training fast рдФрд░ memory efficient рд╣реИред
  • Pre-trained embeddings available рд╣реИрдВ (Wikipedia, Common Crawl data рдкрд░ trained)ред

3я╕ПтГг FastText

FastText (by Facebook AI Research) Word2Vec рдХрд╛ extension рд╣реИред рдпрд╣ words рдХреЛ character n-grams рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдлрд╛рдпрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ OOV (Out-of-Vocabulary) words рдХреЛ рднреА represent рдХрд░ рд╕рдХрддрд╛ рд╣реИред

      Example:
      Word: "playing"
      Subwords: "play", "lay", "ing"
      Representation = sum of subword vectors
    
  • Rare рдФрд░ misspelled words рдХреЛ handle рдХрд░рддрд╛ рд╣реИред
  • Languages with rich morphology рдХреЗ рд▓рд┐рдП best рд╣реИред
  • OOV problem solve рдХрд░рддрд╛ рд╣реИред

ЁЯУК Comparison of Word2Vec, GloVe and FastText

Method Approach Strength Weakness
Word2Vec Neural Network (CBOW, Skip-gram) Captures context well Does not use global co-occurrence
GloVe Matrix Factorization Uses global statistics Fixed embeddings, less dynamic
FastText Subword Information Handles OOV words Training heavier

ЁЯТб Practical Use Cases of Word Embeddings

  • Sentiment Analysis
  • Machine Translation
  • Text Classification
  • Question Answering Systems
  • Chatbots
  • Semantic Search

тЪб Example with Gensim (Python)

      from gensim.models import Word2Vec
      sentences = [["i", "love", "nlp"], ["nlp", "is", "fun"]]
      model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
      print(model.wv["nlp"])
    

Word embeddings NLP рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ revolution рд▓реЗрдХрд░ рдЖрдП рд╣реИрдВред рдЕрдм simple Bag of Words рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдХрд░ рд╣рдо рдРрд╕реЗ vectors generate рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ words рдХреЗ рдЕрд░реНрде рдФрд░ context рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдЖрдк NLP рдореЗрдВ projects рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Word2Vec, GloVe рдФрд░ FastText рдХреЛ рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕рдордЭрдирд╛ рдЬрд╝рд░реВрд░реА рд╣реИред