فيديو

جدول المحتويات:

Anonim

Word Embedding هو رصاصة فضية لحل العديد من مشكلة البرمجة اللغوية العصبية. اعتمدت معظم بنية البرمجة اللغوية العصبية الحديثة (NLP) دمج الكلمات والتخلي عنها (BoW) وتخصيص Dirichlet Latent (LDA) والتحليل الدلالي الكامنة (LSA) إلخ.

بعد قراءة هذا المقال ، ستعرف:

  • تاريخ كلمة التضمين
  • كلمة تضمين التصميم
  • تطبيق نموذج تضمين الكلمة الجاهزة
  • تضمين التصور
  • يبعد

تاريخ كلمة التضمين

تقليديًا ، نستخدم حقيبة الكلمات لتمثيل ميزة (مثل TF-IDF أو Count Vectorize). إلى جانب BoW ، يمكننا تطبيق LDA أو LSA على ميزة الكلمات. ومع ذلك ، لديهم بعض القيود مثل ناقلات عالية الأبعاد ، ميزة متفرق. Word Embedding هو ميزة كثيفة في ناقل الأبعاد المنخفض. ثبت أن تضمين الكلمات يوفر ميزة أفضل للمتجه في معظم مشكلة البرمجة اللغوية العصبية.

في عام 2013 ، ميكولوف وآخرون. جعل كلمة التضمين شعبية. في نهاية المطاف ، فإن دمج الكلمات هو أحدث ما في لغة البرمجة اللغوية العصبية. أصدر مجموعة أدوات word2vec وسمح لنا بالاستمتاع بالنموذج الرائع المدرّب مسبقًا. في وقت لاحق ، توفر gensim غلافًا مدهشًا حتى نتمكن من اعتماد نماذج مختلفة لتضمين الكلمات تم تدريبها مسبقًا بما في ذلك Word2Vec (بواسطة Google) و GloVe (بواسطة Stanford) و fastText (عبر Facebook).

12 سنة قبل توماس وآخرون. يقدم Word2Vec و Bengio et al. نشر ورقة 1 لمعالجة نمذجة اللغة وهي الفكرة الأولية لتضمين الكلمات. في ذلك الوقت ، أطلقوا على هذه العملية اسم "تعلم التمثيل الموزع للكلمات".

في عام 2008 ، قدم رونان وجاسون 3 مفهومًا للنموذج المدرَّب مسبقًا ويظهران أنه أسلوب رائع لمشكلة البرمجة اللغوية العصبية. أصبح دمج Word مشهورًا حتى أصدر Tomas نموذجًا تم تدريبه مسبقًا (Word2Vec) في عام 2013.

الجدول الزمني:

  • 2001: بنجو وآخرون. قدم مفهوم كلمة التضمين
  • 2008: قدم رونان وجيسون مفهوم النموذج المدرّب مسبقًا
  • 2013: ميكولوف وآخرون. صدر نموذج قبل المدربين وهو Word2Vec

كلمة تضمين التصميم

انخفاض الأبعاد

لمعالجة المشكلة ذات الأبعاد العالية ، استخدم تضمين الكلمات مسافة متجهة محددة مسبقًا مثل 300 لتقديم كل كلمة. لأغراض العرض التوضيحي ، أستخدم 3 أبعاد لتمثيل الكلمات التالية:

  • أبل: 1.11 ، 2.24 ، 7.88
  • البرتقالي: 1.01 ، 2.04 ، 7.22
  • السيارة: 8.41 ، 2.34 ، -1.28
  • الجدول: -1.41 ، 7.34 ، 3.01

كما تم تعريفه مسبقًا لمساحة المتجه (أي 3 في العرض التوضيحي أعلاه) ، يتم إصلاح عدد البعد (أو الميزة) بغض النظر عن حجم الجسم. مقارنة بـ BoW ، سيتم زيادة عدد الأبعاد عند زيادة الكلمات الفريدة. تخيل أن لدينا 10 آلاف كلمة فريدة في مستنداتنا ، عدد الميزات في BoW هو 10 كيلو (بدون تصفية كلمة عالية / منخفضة التردد) في حين يمكن أن يبقى البعد في 3 في التجريبي لدينا.

العلاقة الدلالية

بشكل عام ، ترمز كلمة vector إلى العلاقة الدلالية بين الكلمات. يعد مفهومًا مهمًا جدًا لتضمين الكلمات لأنه يستفيد من معالجة مشكلة البرمجة اللغوية العصبية. سيتم إغلاق متجهات الكلمات إذا كان لها معنى مماثل. على سبيل المثال ، سيكون الشراء والشراء أقرب. بخلاف BoW ، لا يمثل سوى 0 أو 1 (حساب وجود كلمة أم لا) ولا يمكن أن يمثل ما إذا كانت كلمتان لهما معنى مماثل أم لا.

في المثال أعلاه ، قد تلاحظ أن ناقلات Apple و vector الخاص بـ Orange مغلقان عن غيرهما. في حين أن ناقل Apple بعيد جدًا عن ناقل السيارة نسبيًا.

حقيبة مستمرة من الكلمات (CBOW) وتخطي غرام

اقترح ميكولوف وآخرون معماريين جديدين 4 يقللان من تعقيد الحساب ويتضمنان سياقًا إضافيًا.

CBOW هو أن استخدام كليهما ن الكلمات قبل وبعد كلمة الهدف (ث). على سبيل المثال ، "كلمة متجه ترميز العلاقة الدلالية بين الكلمات". إذا كانت النافذة (ن) هي 3 ، فإليك المجموعة الفرعية لقائمة التنبؤ:

  • الحالة 1 ، قبل الكلمات: {فارغ} ، بعد الكلمات: (كلمة ، ناقل ، ترميز) ، توقع كلمة: "the"
  • الحالة 2 ، قبل الكلمات: (the) ، بعد الكلمات: (المتجه ، يرمز الدلالي) ، التنبؤ كلمة: "كلمة"

يستخدم Skip-gram الأسلوب المعاكس الذي يستخدم الكلمة الهدف للتنبؤ بالكلمات n قبل الكلمة الهدف وبعدها. على سبيل المثال ، "كلمة متجه ترميز العلاقة الدلالية بين الكلمات". إذا كانت النافذة (ن) هي 3 ، فإليك المجموعة الفرعية لقائمة التنبؤ:

  • الحالة 1 ، التنبؤ بالكلمة: "the" ، الكلمات: (word ، ناقل ، ترميز)
  • الحالة 2 ، التنبؤ بالكلمة: "الكلمة" ، الكلمات: (the، vector، encodes، semantic)

أخذ العينات السلبية

بدلاً من الاستفادة من كل الكلمات الأخرى كسجلات تدريب سلبي. ميكولوف وآخرون. اقترح استخدام كمية صغيرة مناسبة من سجل التدريب السلبي لتدريب النموذج. بحيث تصبح العملية كلها أسرع بكثير.

إذا لم تكن معتادًا على أخذ العينات السلبية ، يمكنك التحقق من هذه المقالة للحصول على مزيد من المعلومات.

تطبيق نموذج تضمين الكلمة الجاهزة

قدم التاريخ والهندسة المعمارية النموذجية ، كيف يمكننا استخدام كلمة تضمين لمعالجة مشكلة البرمجة اللغوية العصبية؟

هناك طريقتان للتعامل مع تضمين الكلمات:

  • الاستفادة من النموذج الجاهز
  • بناء نموذج مجال معين.

هذه المادة سوف تتخذ النهج الأول. اختيار 3 نماذج معروفة مسبقًا مدربة والاستفادة من gensim لتحميل هذا النموذج. Gensim ، مكتبة NLP المعروفة ، تقوم بالفعل بتنفيذ واجهة للتعامل مع هذه النماذج الثلاثة. من أجل الأسهل ، يمكنك فقط استخدام بلدي المجمع لتحميل هذه النماذج 3.

Word2Vec

يتم تدريب متجهات الكلمات هذه على أخبار google المقدمة بواسطة Google. استنادًا إلى 100 مليار كلمة من بيانات أخبار Google ، قاموا بتدريب النموذج ذي 300 بُعد.

ميكولوف وآخرون. استخدام تخطي غرام وأخذ العينات السلبية لبناء هذا النموذج الذي صدر في عام 2013.

word_embedding = WordEmbedding ()
word_embedding.load (source = 'word2vec' ، file_path = word2vec_file_path)

طباعة (word_embedding.get_vector (source = 'word2vec' ، word = 'apple'))

انتاج |

-0.06445312 -0.16015625 -0.01208496 0.13476562 -0.22949219 0.16210938
0.3046875 -0.1796875 -0.12109375 0.25390625 -0.01428223 -0.06396484

قفاز

يتم توفير المتجهات العالمية لتمثيل الكلمات (GloVe) بواسطة فريق Stanford NLP. توفر Stanford طرازات مختلفة من 25 إلى 50 و 100 و 200 إلى 300 أبعاد على أساس 2 و 6 و 42 و 840 مليار رمز.

يطبق فريق Stanford NLP احتمالية حدوث كلمة مشتركة لبناء التضمين. بمعنى آخر ، إذا كانت كلمتين تتعايشان كثيرًا من الوقت ، فقد يكون لكلتا الكلمتين معنى مماثل لذلك ستكون المصفوفة أقرب.

word_embedding = WordEmbedding ()
word_embedding.load (source = 'glove'، file_path = glove_file_path)

طباعة (word_embedding.get_vector (source = 'glove' ، word = 'apple'))

انتاج |

0.52042001 -0.83139998 0.49961001 1.28929996 0.1151 0.057521
-1.37530005 -0.97312999 0.18346 0.47672001 -0.15112001 0.35532001

fastText

تم إصدار fastText بواسطة Facebook والذي يوفر 3 موديلات ذات 300 أبعاد. تم تدريب أحد النماذج المدربة مسبقًا باستخدام كلمة فرعية. على سبيل المثال ، "الفرق" ، سيتم تدريبه بواسطة "di" و "dif" و "diff" وما إلى ذلك.

word_embedding = WordEmbedding ()
word_embedding.load (source = 'fasttext'، file_path = fasttext_file_path)

طباعة (word_embedding.get_vector (source = 'fasttext' ، word = 'apple'))

انتاج |

0.26407328 0.30484504 0.04900438 -0.44377801 0.16519009 -0.09473443
-0.01351437 -0.17237368 0.0374852 0.34962645 0.14334701 -0.11134619

تضمين التصور

واحدة من أحدث لغة البرمجة اللغوية العصبية هي تضمين الكلمات ، ما هو في الواقع؟ إنها مصفوفة وأبسط طريقة هي إحداثي x و y لكن لدينا 300 بعدًا وليس بعدين.

يمكننا تصور ذلك باستخدام تحليل المكون الرئيسي (PCA) أو T- الموزعة Stochastic Neighbor Embedding (t-SNE). من خلال الاستفادة من TensorBoard ، يمكن تقديم التصور بسهولة.

word_embedding.build_visual_metadata (التضمين = التضمين ، الكلمات = الكلمات ، file_dir = '. / word_embedding')

يبعد

للوصول إلى جميع التعليمات البرمجية ، يمكنك زيارة بلدي github repo.

  • ما هو النموذج الجاهز الذي يجب استخدامه؟ اعتمادا على البيانات الخاصة بك ، ذلك من الممكن أن تكون جميعها غير مفيدة لبيانات نطاقك المحددة.
  • يجب علينا تدريب كلمة تضمين قاعدة طبقة على البيانات الخاصة بك؟ وفقا لتجربتي ، إذا كنت تتعامل مع لا يمكن العثور على النص الخاص بالنطاق ومعظم كلمتك من النموذج الجاهز، قد تفكر في بناء تخصيص طبقة تضمين الكلمات.
  • يختار Tensorboard أول 100000 متجه نظرًا لقلق مورد المستعرض. يوصي اختيار جزء صغير من ناقلات بنفسك.
  • الحد الأقصى لحجم طراز GloVe و Word2Vec و fasttext هو ~ 5.5GB و ~ 3.5GB و ~ 8.2GB على التوالي. يستغرق حوالي 9 و 1 و 9 دقائق لـ GloVe و Word2Vec و fasttext على التوالي. هذا قد لا يسهل نشرها في الإنتاج مع الموارد المحدودة.

مرجع

1 يوشوا بنجيو ، دوشارم ريجين وفنسنت باسكال. نموذج اللغة الاحتمالية العصبية. 2001. http://papers.nips.cc/paper/1839-a-neural-probabilistic-language-model.pdf

2 يوشوا بنجو ، دوشارم ريجين ، فنسنت باسكال وجانفين كريستيان. نموذج اللغة الاحتمالية العصبية. مارس 2003. http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf

3 كولوبرت رونان ، وستون جاسون. بنية موحدة لمعالجة اللغة الطبيعية: شبكات عصبية عميقة مع تعلم تعدد المهام. 2008. http://ronan.collobert.com/pub/matos/2008_nlp_icml.pdf

4 توماس ميكولوف ، جريج كورادو ، كاي تشن وجيفري دين. تقدير كفاءة تمثيلات الكلمات في مساحة المتجهات. سبتمبر 2013. http://arxiv.org/pdf/1301.3781.pdf

عني

أنا عالم بيانات في منطقة الخليج. التركيز على أحدث ما توصلت إليه علوم البيانات والذكاء الاصطناعي ، وخاصة في البرمجة اللغوية العصبية (NLP) والنظام الأساسي ذي الصلة. يمكنك الوصول إلي من المدونات المتوسطة أو LinkedIn أو Github.

موصى به اختيار المحرر