Học chuyển giao cho mô hình ngôn ngữ

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

David Cecchini

Data Scientist

Ý tưởng của học chuyển giao

Học chuyển giao:

  • Bắt đầu với trọng số tốt hơn ngẫu nhiên
  • Dùng mô hình huấn luyện trên bộ dữ liệu rất lớn
  • Mô hình khoa học dữ liệu mã nguồn mở
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Kiến trúc sẵn có

Ví dụ cơ bản: I really loved this movie

  • Word2Vec
    • Continuous Bag of Words (CBOW) X = [I, really, this, movie], y = loved
    • Skip-gram X = loved, y = [I, really, this, movie]
  • FastText X = [I, rea, eal, all, lly, really, ...], y = loved
    • Dùng từ và n-gram ký tự
  • ELMo X = [I, really, loved, this], y = movie
    • Dùng từ, embedding theo ngữ cảnh
    • Dùng mô hình ngôn ngữ sâu hai chiều (biLM)
  • Word2Vec và FastText có trong gói gensim, ELMo trong tensorflow_hub
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Ví dụ với Word2Vec

from gensim.models import word2vec

# Train the model w2v_model = word2vec.Word2Vec(tokenized_corpus, size=embedding_dim, window=neighbor_words_num, iter=100)
# Get top 3 similar words to "captain" w2v_model.wv.most_similar(["captain"], topn=3)
[('sweatpants', 0.7249663472175598),
('kirk', 0.7083336114883423),
('larry', 0.6495886445045471)]
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Ví dụ với FastText

from gensim.models import fasttext

# Instantiate the model ft_model = fasttext.FastText(size=embedding_dim, window=neighbor_words_num)
# Build vocabulary ft_model.build_vocab(sentences=tokenized_corpus)
# Train the model ft_model.train(sentences=tokenized_corpus, total_examples=len(tokenized_corpus), epochs=100)
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Hãy thực hành!

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Preparing Video For Download...