ملصقات إعادة التشغيل الذكية



مرحبا يا هابر! اليوم قمنا بإعادة تشغيل ICQ . تعتمد الميزات الرئيسية للرسول الجديد على تقنيات الذكاء الاصطناعي: ملصق الرد السريع الذكي ونظام المطالبة النصية للرد على رسالة واردة ، واقتراح ملصقات للعبارات المدخلة ، والتعرف على الرسائل الصوتية وغيرها.

في هذه المقالة سوف أتحدث عن واحد منهم - الرد الذكي. ستوفر هذه الميزة وقت المستخدمين ، حيث سيحتاجون فقط للنقر على الملصق الذي يعجبهم من الملصقات المعروضة. في الوقت نفسه ، ستعمل الميزة على تعميم استخدام الملصقات المختلفة وزيادة الانفعالية العاطفية للتواصل.

إعداد البيانات


تم حل المهمة من مجال البرمجة اللغوية العصبية بمساعدة التعلم الآلي والشبكات العصبية. تم التدريب على البيانات المعدة خصيصا من الدردشات العامة. تم استخدام الأزواج: جزء من الحوار وملصق أرسله أحد المستخدمين رداً على آخر رسالة من المحاور. من أجل أخذ السياق في الاعتبار بشكل أفضل ، يتكون جزء من الحوار من رسائل المحاور الأخيرة التي يتم لصقها معًا ، ومن رسائل المستخدم المعروضة عليها. يمكنك تجربة عدد الرسائل ، على سبيل المثال ، تستخدم Google ML Kit سياق من 10 رسائل [1] .

إحدى المشاكل التي واجهتني هي أن تكرار استخدام الملصقات ، بدءًا من أكثرها شيوعًا ، ينخفض ​​بشكل حاد. علاوة على ذلك ، يبلغ إجمالي عدد الملصقات أكثر من مليون. يوضح الشكل أدناه التردد التنازلي لاستخدام الملصقات الأكثر شيوعًا البالغ عددها 4000. لذلك ، تم اختيار 4000 ملصقات شعبية مع إزالة بعض الملصقات الأكثر شيوعًا للتدريب من أجل تقليل التوزيع غير المتكافئ لمجموعة التدريب.


ترددات استخدام 4000 ملصق الأكثر شعبية بترتيب تنازلي.

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

اختيار النموذج


للتنبؤ ، يتم استخدام نموذج سيامي DSSM ، عن طريق القياس مع نموذج الرد الذكي في Mail.ru (يتم وصف بنية مماثلة في [2]) ، ولكن مع بعض الاختلافات. ميزة النموذج السيامي في الكفاءة للاستدلال ، حيث يتم حساب الجزء المقابل للملصقات مقدمًا. للإجابة على الحروف ، يستخدم النموذج الأصلي كيسًا من كلمات n-gram لتمثيل النص ، وهو ما يبرر الكتابة: يمكن أن يكون النص كبيرًا ، ونحتاج إلى فهم التفاصيل العامة وإعطاء بعض الإجابات القصيرة القياسية. في حالة المحادثات والملصقات ، يكون النص قصيرًا ، والكلمات الفردية أكثر أهمية هنا. لذلك ، تقرر استخدام عمليات تضمين الكلمات الفردية كميزات وإضافة طبقة LSTM لها. تم استخدام فكرة مشابهة لاستخدام طبقة LSTM في حالة النصوص القصيرة ، على سبيل المثال ، للردود النصية في Google Allo messenger [3] وفي نموذج التنبؤ المبتسم المقابل لرسائل DeepMoji القصيرة [4]. يوضح الشكل أدناه بشكل تخطيطي النموذج.


نموذج العمارة.

في الشكل ، الطبقات الأولية هي تضمين كلمات رمزية واردة (يسار) وملصقات (يمين). لترميز الكلمات ، تم استخدام قاموس يتضمن 100 ألف من الكلمات الأكثر شيوعًا. لفصل الرسائل من مستخدمين مختلفين ، تم استخدام رمز مميز خاص. التدريب من البداية إلى النهاية. بعد حساب التضمينات لتسلسل الكلمات ، ننتقل إلى طبقة LSTM ، ثم يتم نقل حالتها إلى الطبقات المتصلة بالكامل مع تنشيط المماس. ونتيجة لذلك ، في التشفير الأيسر عند الإخراج نحصل على متجه يمثل النص ، وفي اليمين - المتجه المقابل للملصق. يحدد المنتج القياسي للمتجهات كيفية ملاءمة النص والملصق معًا. تم أخذ أبعاد التضمين ، ناقل الحالة الداخلية لـ LSTM ، وناقل الإخراج يساوي 300.

تبدو الوظيفة الموضوعية للتدريب كما يلي:



حيث K هو حجم الدفعة ،

S (x i ، y i ) هو المنتج القياسي للمتجهات الناتجة للحصول على أمثلة إيجابية لأزواج ملصقات النصوص ،

S (x i ، y j )- منتج عددي للمتجهات من أجل الأمثلة السلبية لأزواج الملصقات النصية. تم إنشاء أمثلة سلبية لأزواج الملصقات النصية بسبب الاختلاط العشوائي للأزواج الصحيحة الأصلية. نظرًا لأن الملصقات العالمية الشائعة ، من المحتمل أنه عند الاختلاط مرة أخرى ، يتبين أنه الزوج الصحيح ، في مرحلة إعادة التدريب ، تم استخدام تحكم إضافي كجزء من الدفعة بحيث لا توجد نصوص مشابهة للأزواج الإيجابية والسلبية مع ملصق واحد. وخلال التجارب تعمل بشكل أفضل إذا الأمثلة السلبية لاستخدام أقل من وK . في ضوء ضجيج البيانات ، عمل التدريب على دفعات كبيرة بشكل أفضل. لم يعقّد تعقيد النموذج وإضافة طبقة الانتباه تحسنًا ملحوظًا في الدقة ، وهو بالأحرى يتحدث عن القيود المرتبطة بالبيانات ونوعيتها.

نظرًا لأنه تم اختيار النهج مع قاموس الكلمات الفردية ، بدلاً من حرف n-gram ، فقد مرونة النموذج فيما يتعلق بالأخطاء المطبعية. تم إجراء تجربة مع تدريب تضمين النص السريع ، والذي يتم تدريبه مباشرة في الشبكة ، وبالتالي تقليل تأثير الأخطاء. في هذه الحالة ، كان التدريب أسوأ ، وساعدت إضافة طبقة الانتباه بشكل ملحوظ. بعد وزن مؤشرات الجودة وعوامل أخرى ، تقرر الخوض في نموذج أبسط. في هذه الحالة ، يتم حل مشكلة الخطأ المطبعي باستخدام المدقق الإملائي في موقف لا توجد فيه الكلمة في القاموس. في الوضع العادي ، لا يتم استخدام المدقق الإملائي ، لأن بعض الكلمات التي تحتوي على أخطاء هي ميزة الدردشة غير الرسمية.

الحصول على إجابات


كيف يعمل النموذج في مرحلة الاستدلال؟

نحن نحسب ناقلات الملصقات المحسوبة بواسطة التشفير الأيمن مقدمًا. في مرحلة معالجة الطلب ، يتم استخدام برنامج التشفير الأيسر فقط للحصول على متجه للنص الوارد. بعد ذلك ، تحتاج إلى الحصول على قائمة الملصقات بترتيب تنازلي للمنتج القياسي للنص ومتجه الملصق. يمكن القيام بذلك مباشرة عن طريق ضرب جميع ناقلات الملصقات ، أو استخدام أقرب خوارزميات البحث المجاورة لهذا المقياس. على سبيل المثال ، في [2] يُقترح استخدام التكمية الهرمية للبحث عن المنتج الداخلي الأقصى (MIPS). قمنا بتطبيق خوارزمية بحث HNSW ، وهذا أعطى تسارعًا كبيرًا مقارنة بالبحث الشامل.

جعل الإجابات متنوعة


المرحلة التالية هي تنويع الملصقات المقترحة ، حيث غالبًا ما تكون الملصقات المتطورة متشابهة.

ثلاث ملصقات مقترحة لعبارة "Hello": بدون تنوع وبتنويع.

تم اختبار العديد من خيارات التنويع. أسهل طريقة هي تحديد أفضل ملصقات N ، مع مراعاة الحد الأقصى للنتيجة ، ثم تحديد الملصق العلوي ، وتحديد الملصقين الآخرين مع أقصى مسافة بين بعضهما البعض ، مع الحد من الفرق المسموح به في المسافات إلى الملصق العلوي. يمكن الجمع بين هذا النهج باستخدام نتائج وضع العلامات اليدوية للملصقات عن طريق التلوين العاطفي (إيجابي ، سلبي ، محايد) ، والاختيار من بين أفضل ملصقات N بألوان مختلفة ، إن وجدت.

خيار آخر هو تجميع الملصقات حسب عمليات التضمين الخاصة بها ، وعند إخراج النتائج ، حدد ما لا يزيد عن ملصق واحد من المجموعة. بالنسبة للتجميع ، تم استخدام حزمة UMAP + HDBSCAN. UMAP عبارة عن خوارزمية فعالة جديدة لتقليل الأبعاد تفوق t-SNE المثبتة بالفعل. تم تطبيق تقليل البعد على اثنين ، ثم تم استخدام خوارزمية التجميع HDBSCAN. تم تحديد حوالي 100 مجموعة. لا يتم حل هذه المهمة تلقائيًا بالكامل ، مع إعدادات مختلفة ، كان من الممكن تحقيق تجميع ما يصل إلى 70 ٪ من الملصقات ، ولكن بعد ذلك المراجعة اليدوية ، يلزم التحقق. لذلك ، استقرنا على الخيارات الأبسط الموصوفة أعلاه ، لأن نتائجها كانت جيدة.


ملصقات التجميع على التضمينات.

النتائج


ونتيجة لذلك ، حصلنا على ملصق إعادة تشغيل ذكي بسيط وفعال ، والذي أظهر جودة جيدة جدًا للإجابات. وفقًا لاختبارات 1000 عبارة مختلفة ، من البسيط إلى المعقد نسبيًا ، وفقًا للمستجيبين ، تم استدعاء الملصق العلوي مناسبًا تمامًا في أكثر من 75 ٪ من الحالات. في اختبار 100 عبارة أبسط وأكثر شيوعًا ، تكون النتيجة أكثر إثارة للإعجاب: تم ​​استدعاء الملصق العلوي مناسبًا تمامًا في 93 ٪ من الحالات.

أمثلة على الملصقات التي يقدمها نموذج الإجابات.

ما هي عيوبه؟

نظرًا لعدم التوازن في مجموعة بيانات التدريب ، فإن بعض الكلمات لها تأثير كبير غير ضروري. على سبيل المثال ، غالبًا ما تؤدي كلمة "حب" في بعض السياق إلى اقتراح ملصقات "رومانسية" مختلفة ، نظرًا لوجود انحياز في هذا الاتجاه في بيانات التدريب. إن إدخال أوزان إضافية لكلمات التردد والملصقات ، بالإضافة إلى زيادة العبارات ، لم يحل المشكلة تمامًا ، ولكنه حسن الوضع جزئيًا.

نحن لا نستريح على أمجادنا ، وتستمر عملية تحسين جودة نماذجنا ، ويتم إجراء التجارب لتعديل البنية والآليات لإعداد البيانات واستخدامها.

المؤلفات


  1. Google updates ML Kit with Smart Reply API for third-party Android and iOS apps. 9to5google.com/2019/04/05/ml-kit-smart-reply
  2. Matthew Henderson, Rami Al-Rfou, Brian Strope, Yun-Hsuan Sung, Laszlo Lukacs, Ruiqi Guo, Sanjiv Kumar, Balint Miklos, and Ray Kurzweil. Efficient Natural Language Response Suggestion for Smart Reply. arXiv:1705.00652v1, 2017.
  3. Pranav Khaitan. Chat Smarter with Allo. ai.googleblog.com/2016/05/chat-smarter-with-allo.html
  4. Bjarke Felbo, Alan Mislove, Anders Søgaard, Iyad Rahwan, Sune Lehmann. Using millions of emoji occurrences to learn any-domain representations for detecting sentiment, emotion and sarcasm. arXiv:1708.00524v2, 2017.

All Articles