كيف علمنا الذكاء الاصطناعي للإجابة على أسئلة الدعم. تجربة Yandex.Taxi

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

في Yandex.Taxi ، من الخيارين ، اخترنا الخيار الثالث - استخدام الذكاء الآلي لإنشاء دعم فني بوجه بشري. اسمي تاتيانا سافيليفا ، وتشارك مجموعتي في التعلم الآلي على البيانات غير المنظمة. وبمقتضى الأمر - أشارك رؤى المستخدم ، وأخبرنا عن كيفية أتمتة عملية معقدة ، وتنظيم عمل فرق مختلفة تمامًا ، وبطبيعة الحال ، تطبيق التعلم العميق والاختراق التقني في الممارسة (بدونهم).



لماذا أتمتة أي شيء على الإطلاق؟


يبدو ، لماذا اختراع هيكل دعم متعدد المراحل - توظيف المزيد من الناس. ربما يعمل هذا إذا تم دعم حوالي 10 طلبات في اليوم. ولكن عندما يميل عدد مكالمات المستخدم إلى مليون (وهي نسبة مئوية صغيرة من الرحلات إلى Yandex Taxi ، ولكنه مثير للإعجاب تمامًا) ، عليك التفكير في تكتيكات أكثر موثوقية: العثور على عدد كاف من المشغلين وتدريبهم الذين يمكنهم التعامل مع المشاكل غير النمطية في مثل هذه الأحجام يكون أكثر صعوبة على الأقل .

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

يتزايد عدد المكالمات - تستغرق معالجتها وقتًا أطول. إنتاجية العوامل ، العامل البشري - هل هناك العديد من الأسباب التي تبطئ النظام ، حيث تذهب الفاتورة لمدة دقائق؟ يمكن التحايل على العديد من هذه القيود بمساعدة آلة: لن يتم الخلط بينها في حالة التعب ، وتتخذ القرارات بشكل أسرع.

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

من أين نبدأ؟


لنفترض أنك قد حالفك الحظ: لم يصل السائق ولم يتصل. ماذا سيحدث لاتصالك بدعم Yandex.Taxi؟



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

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

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

لاختبار هذه الفكرة ، تم تطوير اقتراح - نظام تلميح يقدم لموظفي الدعم الخيارات الثلاثة الأكثر تفضيلاً للرد على الطلب الحالي:



نجحت التجربة: في 70٪ من الحالات ، اختار المشغلون إحدى الرسائل المقترحة ، مما قلل وقت الاستجابة بنسبة 10٪. يبدو أن الوقت قد حان لأتمتة السطر الأول بشكل كامل.

بحاجة إلى خطة.ماذا يفعل موظف الخط الأمامي ؟

  1. يقرأ النص ، ويحدد موضوع العلاج.
  2. يفحص معلومات الرحلة.
  3. يختار أحد الإجابات المعدة ، مع مراعاة أول نقطتين.

مثال للاختراق. معطى: طلب نص لمستخدم متعثّر ، بعض معلومات الرحلة ، فريق دعم مهني.



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

ما الذي يجب أن يفعله نظام الرد التلقائي؟

كل نفس. حتى المتطلبات الأساسية للإجابات لن تتغير:

الجودة

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

السرعة
خاصة إذا كان الموقف حرجًا والإجابة مهمة الآن.

المرونة والقابلية للتطوير:

المهمة ذات العلامة النجمية: على الرغم من أن إنشاء نظام دعم مع تاكسي قد بدأ ، فمن المفيد نقل النتيجة إلى خدمات أخرى: Yandex.Food أو Yandex.Lavka ، على سبيل المثال. أي ، عند تغيير منطق الدعم - قوالب الاستجابة ، مواضيع المكالمات ، إلخ. - أريد إعادة تكوين النظام في أيام ، وليس أشهر.

كيف يتم تنفيذه


المرحلة الأولى: نحدد موضوع النص باستخدام ML.

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

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

تم تدريب BERT مسبقًا على مهمتين مع نصوص غير مخصصة. في البداية ، يتم استبدال 15٪ من الرموز المميزة بشكل عشوائي بـ [MASK] ، وتتنبأ الشبكة ، استنادًا إلى السياق ، بالرموز الأولية - وهذا يوفر للنموذج "ثنائية الاتجاه" طبيعية. المهمة الثانية تعلمنا تحديد العلاقة بين الاقتراحات: هل تم إدخال مدخلين متتاليين أم متناثرين عبر النص؟

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

المزيد عن الملاءمة: بالنسبة لجميع خدماتنا - بما في ذلك سيارات الأجرة - تم تطوير مكتبة كاملة من وحدات هندسة النماذج وطرق التحقق من حدود الاحتمالية. يتيح لك:

  • , : , — ;
  • , . , . , , , .

المرحلة 2. نحن نعمل مع معلومات حول الرحلة: نحن ننشر قواعد العمل لكل قالب.تم

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

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

القاعدة: نوع_الدفع هو" بطاقة "وحالة المعاملة هي" clear_success "و transaction_sum == order_cost

فقط لقوالب دعم العملاء ، أكمل خبراؤنا بالفعل أكثر من 1.5 ألف قاعدة.

المرحلة 3. نختار الإجابة: نجمع بين الموضوعات النصية المناسبة وقواعد العمل الخاصة بالقوالب.

كل موضوع يتطابق مع قوالب الاستجابة المناسبة: يتم تحديد الموضوع من خلال طرق ML ، ويتم التحقق من صحة النماذج التي تستجيب لها من خلال القاعدة من الفقرة السابقة. سيتلقى المستخدم استجابة ، تحقق منها القيمة "True". إذا كان هناك العديد من هذه الخيارات ، فسيتم اختيار الأكثر شعبية بين موظفي الدعم.



بالمناسبة ، لا تتغير عمليات التفاعل مع السائقين في Yandex.Taxi على الإطلاق: يحدد النموذج القالب المطلوب فقط للمشغل ويجيب بشكل مستقل على المستخدم.

وضع اللمسات الأخيرة


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

  1. تطوير غير متصل - في هذه المرحلة ، تتغير النماذج ، يتم إعداد القواعد ؛
  2. خدمة الإنتاج - خدمة صغيرة تلتقط التحديثات وتطبقها وتستجيب للمستخدمين في الوقت الفعلي ؛
  3. تحليل لاحق للنتائج للتأكد من أن النموذج الجديد يعمل بشكل صحيح ، المستخدمون سعداء بالإجابات التلقائية.



ومرة أخرى إلى الأمثلة. أعلى قائمة أمنيات العملاء الأكثر شعبية (وكيف نتعامل معهم بدون كتابة كود):

تاكسي لديه إجابات تلقائية رائعة: أريد نفس الشيء في Yandex.Ed

لتوصيل أي دعم لنظامنا ، تحتاج إلى أربع خطوات بسيطة:

  1. إنشاء شجرة موضوع للنصوص ؛
  2. تطابق كل موضوع مع الأنماط ؛
  3. املأ مجموعة من القواعد بالنماذج في لوحة المشرف ؛
  4. قم بتوفير جدول مراسلات بين طلبات المستخدم وإجابات الدعم.

إذا كان كل هذا موجودًا ، فسنحدد المسار لتحميل جديد ، وسيتعلم النموذج من البيانات المستلمة وسيسحب إلى خدمتنا الصغيرة جنبًا إلى جنب مع جميع القواعد المحددة (التكامل مع موضوع ML محدد). يرجى ملاحظة: لا يوجد منطق جديد مكتوب ، كل ذلك في إطار عملية موجودة!

لقد تغير منطق الدعم ، نريد قواعد جديدة من

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

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

أضفنا موضوعًا جديدًا ، نريد تغيير النموذج ، نحتاج إلى كل شيء للعمل غدًا.

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

إذا ظهرت بالفعل مواضيع جديدة أو متغيرة في إجابات موظفي الدعم من الخط الأول ، فإن النموذج ، مع إعادة التدريب المنتظم ، سيشدد هذه البيانات تلقائيًا ويحسب العتبات لها (للبيانات من الأسبوع الماضي ، باستثناء المجموعة المؤجلة للاختبار).

في عينة الاختبار ، تتم مقارنة النماذج القديمة والجديدة وفقًا لمقاييس خاصة - الدقة ، يتم إصلاح المشاركة تلقائيًا. إذا كانت التغييرات إيجابية ، يتم طرح نموذج جديد في الإنتاج.

نقوم بتحليل المقاييس: لا تغرق ، لا تنكسر


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

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

المستخدم: بفضل السائق ، وصلت السيارة في الوقت المحدد ، قام السائق بعمل جيد ، كل شيء سار بشكل مثالي! الدعم
: سنعاقب السائق ، وهذا لن يحدث مرة أخرى.

لحسن الحظ ، كان الإطلاق اختبارًا. وكانت المشكلة هي: تعلّم النموذج الاستجابة للمراجعات بتقييم أقل من 4 ، وأحيانًا عرضنا عن طريق الخطأ مراجعاتها بـ 4 و 5 نجوم. بالطبع ، بسبب قيود التعلم ، لا يوجد شيء أكثر ذكاءً من الخلايا العصبية يمكنه الإجابة. عند تنفيذ هذه الحالات ، تكون نادرة (0.1٪ من الإجمالي) - نتتبعها ونتخذ الإجراءات المناسبة: ستستجيب الشبكة العصبية لرسالة المستخدم المتكررة.

الاستنتاجات والخطط للمستقبل


بعد توصيل نظام الاستجابة التلقائية ، بدأنا في الاستجابة بسرعة أكبر لطلبات المستخدمين وإيلاء أقصى قدر من الاهتمام للحالات المعقدة بالفعل التي تتطلب تحقيقًا تفصيليًا. نأمل أن يساعدنا ذلك في تحسين جودة Yandex.Taxi وتقليل عدد الحوادث غير السارة.

يغلق نموذج الإصلاح التلقائي حوالي 60٪ من السطر الأول ، دون إهدار متوسط ​​تقييم المستخدم. نخطط لزيادة تطوير الطريقة وزيادة نسبة الإجابات التلقائية على السطر الأول إلى 99.9٪. وبالطبع ، استمر في مساعدتك - الدعم في تطبيقاتنا وتبادل الخبرات حول ذلك على حبري.

All Articles