Transfer learning untuk model bahasa

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

David Cecchini

Data Scientist

Gagasan di balik transfer learning

Transfer learning:

  • Mulai dengan bobot awal yang lebih baik dari acak
  • Pakai model yang dilatih pada himpunan data sangat besar
  • Model data science "open-source"
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Arsitektur yang tersedia

Contoh dasar: 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
    • Menggunakan kata dan n-gram karakter
  • ELMo X = [I, really, loved, this], y = movie
    • Menggunakan kata, embedding per konteks
    • Menggunakan Deep bidirectional language models (biLM)
  • Word2Vec dan FastText tersedia di paket gensim dan ELMo di tensorflow_hub
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Contoh menggunakan Word2Vec

from gensim.models import word2vec

# Latih model w2v_model = word2vec.Word2Vec(tokenized_corpus, size=embedding_dim, window=neighbor_words_num, iter=100)
# Dapatkan 3 kata paling mirip dengan "captain" w2v_model.wv.most_similar(["captain"], topn=3)
[('sweatpants', 0.7249663472175598),
('kirk', 0.7083336114883423),
('larry', 0.6495886445045471)]
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Contoh menggunakan FastText

from gensim.models import fasttext

# Buat instance model ft_model = fasttext.FastText(size=embedding_dim, window=neighbor_words_num)
# Bangun kosakata ft_model.build_vocab(sentences=tokenized_corpus)
# Latih model ft_model.train(sentences=tokenized_corpus, total_examples=len(tokenized_corpus), epochs=100)
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Ayo berlatih!

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Preparing Video For Download...