الرسم البياني المعرفي للبحث: البناء من مصادر متعددة



أريد أن أتحدث عن الرسم البياني للمعرفة وعن إحدى طرق بنائه من عدة مصادر مواضيعية.

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

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

الرسم البياني المعرفي


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


تين. 1. مثال على الرسم البياني المعرفي

هناك رسوم بيانية معرفية مفتوحة يمكن تنزيلها واستخدامها. يتم عرض أمثلة وبعض الإحصائيات حول أشهر الرسوم البيانية للمعرفة المفتوحة في الجدول. 1.

الجدول. 1. إحصائيات الرسوم البيانية للمعرفة المفتوحة

الرسم البياني المعرفيعدد السجلاتعدد الأشياءتردد التحديث
قاعدة حرةأكثر من 3 مليارات49 مليونلم يتم تحديته
Wikidata748 مليون18 مليونمرة في الأسبوع (تزايدي - مرة في اليوم)
دبيديا411 مليون4 مليونآخر تحديث في أغسطس 2019

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

هناك على الأقل ثلاثة حلول ممكنة لهذه المشاكل.

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

بدأنا في تنفيذ النهج الثالث. قبل البدء في حل هذه المشكلة ، تحتاج إلى التحضير. والحقيقة هي أن البيانات في المصادر يتم تقديمها بتنسيقات مختلفة. على سبيل المثال ، في Wikidata يكون JSON ، في Cinema Search - HTML. يجب تحويلها إلى نفس التنسيق. ننتقل إلى N-Triples، لأنه من الملائم معالجتها بالتوازي ، وفي هذه الحالة ، من المهم حقًا ، لأننا نعمل مع البيانات الضخمة. يستغرق تفريغ JSON الموسع Wikidata حوالي 720 غيغابايت ، وتبلغ صفحة HTML Search Movie 230 غيغابايت ، لذلك يتم حل جميع المهام تقريبًا في مجموعة باستخدام نموذج MapReduce.

اللصق المزدوج


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

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

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

قبل تدريب النموذج ، سيكون من الجيد الحصول على البيانات من مكان ما. كنا محظوظين ، كل ما نحتاجه موجود بالفعل في الرسوم البيانية المفتوحة للمعرفة. على سبيل المثال ، في Wikidata ، هناك أقل قليلاً من 200 ألف كائن ، وروابط للأفلام والبرامج التلفزيونية لـ KinoPoisk ، وأقل بقليل من 100 ألف رابط لأشخاص KinoPoisk. سوف نتدرب على هذه البيانات.

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


تين. 2. سياق الكائن هناك

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

يمكن استخدام السلاسل في وقت واحد معًا ، أو تجميعها حسب أنواع العلاقات التي ترتبط بها الكائن. كما يتم النظر في المطابقات المطلقة والنسبية حسب المجموعة.

لنأخذ شيئين: ليونيل ميسي (ليونيل ميسي) وليونيل ريتشي (ليونيل ريتشي) ، علامة التبويب. 2.

الجدول. 2. بعض العلاقات لكائنين ليونيل ميسي وليونيل ريتشي.

اسم العلاقةليونيل ميسيليونيل ريتشي
اسمليونيل ميسي"ليونيل ريتشي"
عيد الميلاد24 يونيو 1987"20 يونيو 1949"
نادي كرة قدمنادي برشلونة-

لا تتطابق الأسماء تمامًا ، لذلك ستكون المطابقة الكاملة في الاسم صفرًا. لكن عدد الكلمات المطابقة في الاسم هو 1 ، لأن الاسم الأصلي "Lionel" يطابق كلا الجسمين. سيكون معامل الجاكار (نسبة حجم التقاطع إلى حجم الاتحاد) للاسم 0.2:

J(Messi,Richie)=|«Lionel»||«»,«»,«Lionel»,«Messi»,«Richie»|


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

يتم عرض تصنيف أفضل الميزات التي يستخدمها النموذج في الشكل. 3.


تين. 3. أهم العلامات المستخدمة:

إن أفضل ما يميز نموذجنا هو المصادفة النسبية للكلمات. يخفي هذا الاسم المركب مجموع معاملات الجاكار لجميع العلاقات. من المثير للاهتمام أنه إذا تجاهلنا تمامًا كل التعلم الآلي من هذه المهمة وتركنا حدًا مناسبًا تقريبًا بقيمة هذه الميزة ، فإن جودة النموذجF1- سينخفض ​​القياس بنسبة 20٪ فقط. إذا أخذنا العلامات الموضحة أعلاه ، فقم بتدريب XGBoost عليها خارج الصندوق ، 250 شجرة بارتفاع 4 ، ثم سنحصل على مقاييس جيدة جدًا.

الطاولة. 3. مقاييس نموذج الجودة على بيانات الاختبار.

اسم المقياسالقيمة
الاحكام0.961531
الاكتمال (استدعاء)0.963220
F10.962375
الجامعة الأمريكية0.999589

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


تين. 4. مشكلة الأشياء "الكبيرة"

لدينا نسخ مكررة في البطاقة. يبدو أنه على ما يرام ، ولكن في الواقع المشكلة أعمق بكثير ، يعاني اتساق البيانات. هذا لأنه في بيانات التدريب لدينا لا توجد مثل هذه الأشياء على الإطلاق. هنا من الضروري تطبيق نهج مختلف ، لاستخدام عدد كبير من العلاقات بين هذه الأشياء لمصلحتها الخاصة. في التين. يظهر 5 رسم تخطيطي لهذا النهج. يجب أن يكون هناك شيئان X و Y ، متصلان بواسطة المصنف. تنتمي هذه الكائنات إلى رسوم بيانية مختلفة ويرتبط كل كائن ببعض الكائنات الأخرى في الرسم البياني الخاص به. يرتبط الكائن X بالكائنات A و B و C من خلال العلاقاتr1، r2، r3، والكائن Y بالكائنات D و E و F باستخدام العلاقات r1، r2و r4. لكننا نعلم الآن أن الكائنات X و Y هي في الواقع كائن واحد من العالم الحقيقي.


تين. 5. اللصق الإضافي

دعونا نطرح فرضيتين:

  • H1:P(D|A)=p=P(D|¬A)- شيء Dغير متصل بأي شكل من الأشكال ويحدث بشكل مستقل عن الكائن A.
  • H2:P(D|A)=p1p2=P(D|¬A)- نوع من العلاقة بين Dو Aكل شيء على هذا النحو.

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

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

استنتاج


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

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

All Articles