freeCodeCamp/guide/arabic/machine-learning/latent-dirichlet-allocation/index.md

16 KiB

title localeTitle
Latent Dirichlet Allocation تخصيص ديريتشليت الكامنة

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

لنفترض أن لديك مجموعة من الجمل التالية:

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

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

الجملتان 1 و 2: 100٪ Topic A الجملتان 3 و 4: 100٪ موضوع B الجملة 5: 60٪ الموضوع أ ، 40٪ الموضوع ب الموضوع A: 30 ٪ من البروكلي ، الموز 15 ٪ ، 10 ٪ وجبة الإفطار ، 10 ٪ مضغ ، ... (عند هذه النقطة ، يمكنك تفسير الموضوع A ليكون عن الطعام) الموضوع B: 20٪ chinchillas ، 20٪ من القطط ، 20٪ لطيف ، 15٪ هامستر ، ... (عند هذه النقطة ، يمكنك تفسير الموضوع B ليكون عن الحيوانات اللطيفة)

السؤال ، بالطبع ، هو: كيف تقوم LDA بهذا الاكتشاف؟

نموذج LDA

بمزيد من التفصيل ، تمثل LDA المستندات كمخلوقات من الموضوعات التي تبصق الكلمات مع بعض الاحتمالات. يفترض أن يتم إنتاج المستندات بالطريقة التالية: عند كتابة كل مستند ، أنت

حدد عدد الكلمات N سيكون المستند (مثلاً ، حسب توزيع Poisson). اختر خليط موضوع للمستند (وفقًا لتوزيع Dirichlet على مجموعة ثابتة من موضوعات K). على سبيل المثال ، بافتراض أن لدينا موضوعين غذائيين للحيوانات والطيور أعلاه ، يمكنك اختيار الوثيقة بحيث تتكون من 1/3 طعام و 2/3 حيوانات لطيفة. قم بتوليد كل كلمة في الوثيقة من خلال: ... اختيار أول موضوع (وفقا لتوزيع متعدد الحدود التي قمت باختبارها أعلاه ؛ على سبيل المثال ، قد تختار موضوع الغذاء مع احتمال 1/3 وموضوع الحيوانات لطيف مع احتمال 2/3). ... ثم استخدام الموضوع لتوليد الكلمة نفسها (وفقا لتوزيع الموضوع متعدد الحدود). على سبيل المثال ، قد يخرج موضوع الطعام كلمة "بروكلي" مع احتمال 30 ٪ ، "الموز" مع احتمال 15 ٪ ، وهلم جرا.

بافتراض أن هذا النموذج المولِّد لمجموعة من المستندات ، يحاول LDA الرجوع عن الوثائق للعثور على مجموعة من الموضوعات التي من المحتمل أن تكون قد ولَّدت المجموعة.

مثال

دعونا نجعل مثالا. وفقًا للعملية المذكورة أعلاه ، عند إنشاء مستند معين D ، يمكنك ذلك

تقرر أن D سيكون 1/2 حول الغذاء و 1/2 حول الحيوانات لطيف. اختر 5 ليكون عدد الكلمات في D. اختر الكلمة الأولى التي تأتي من موضوع الطعام ، والتي تعطيك كلمة "بروكلي". اختر الكلمة الثانية القادمة من موضوع الحيوانات لطيف ، والتي تمنحك "الباندا". اختيار الكلمة الثالثة قادمة من موضوع الحيوانات لطيف ، مما يتيح لك "رائعتين". اختيار الكلمة الرابعة قادمة من موضوع الغذاء ، مما يتيح لك "الكرز". اختر الكلمة الخامسة التي تأتي من موضوع الطعام ، مما يمنحك "الأكل".

وبالتالي فإن الوثيقة التي تم إنشاؤها في إطار نموذج LDA ستكون "البروكلي الباندا رائعتين أكل الكرز" (لاحظ أن LDA هو نموذج حقيبة الكلمات).

تعلم

افترض الآن أن لديك مجموعة من المستندات. لقد اخترت عددًا ثابتًا من مواضيع K التي تريد اكتشافها ، وتريد استخدام LDA لتعلم تمثيل الموضوع لكل وثيقة والكلمات المرتبطة بكل موضوع. كيف تفعل هذا؟ إحدى الطرق (المعروفة باسم أخذ عينات Gibbs المنهارة *) هي كالتالي:

راجع كل مستند ، وقم بتعيين كل كلمة في المستند عشوائياً إلى أحد مواضيع K. لاحظ أن هذا التعيين العشوائي يعطيك بالفعل تمثيليْن موضوعيْن لجميع الوثائق وتوزيع الكلمات لكل المواضيع (وإن لم يكن ذلك جيدًا). لذلك لتحسينها ، لكل وثيقة د ... ... من خلال كل كلمة ث في د ... ........ لكل موضوع t ، يحسب أمرين: 1) p (الموضوع t | المستند d) = نسبة الكلمات في الوثيقة d التي يتم تعيينها حاليًا لموضوع t ، و 2) p (الكلمة w | topic t ) = نسبة التخصيصات لموضوع ر على جميع الوثائق التي تأتي من هذه الكلمة ث. إعادة تعيين موضوع جديد ، حيث تختار الموضوع t مع الاحتمالية p (الموضوع t | المستند d) * p (الكلمة w | topic t) (وفقًا لنموذجنا المولِّد ، هذا هو أساسًا احتمال أن الموضوع t يولد الكلمة w ، لذلك من المنطقي أن نعيد صياغة موضوع الكلمة الحالية بهذا الاحتمال). (أيضًا ، أقوم بتوضيح أكثر من شيئين هنا ، مثل استخدام priors / pseudocounts في هذه الاحتمالات). ... وبعبارة أخرى ، في هذه الخطوة ، نفترض أن جميع تخصيصات الموضوع باستثناء الكلمة الحالية المعنية صحيحة ، ثم تحديث تخصيص الكلمة الحالية باستخدام نموذجنا لكيفية إنشاء المستندات. بعد تكرار الخطوة السابقة لعدد كبير من المرات ، ستصل في النهاية إلى حالة مستقرة تقريبًا حيث تكون مهامك جيدة جدًا. لذا استخدم هذه التعيينات لتقدير مخاليط الموضوع لكل وثيقة (عن طريق حساب نسبة الكلمات المخصصة لكل موضوع ضمن تلك الوثيقة) والكلمات المرتبطة بكل موضوع (عن طريق حساب نسبة الكلمات المخصصة لكل موضوع بشكل عام).

شرح ليمان

في حال كان النقاش أعلاه قليل من التزجيج ، فإليك طريقة أخرى للنظر إلى LDA في نطاق مختلف.

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

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

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

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

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

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

لكل فئة ، يمكنك حساب الأشخاص المعينين لهذه الفئة لمعرفة ما لديهم مصلحة خاصة. من خلال النظر إلى الأشخاص أنفسهم ، يمكنك تفسير الفئة أيضًا (على سبيل المثال ، إذا كانت الفئة X تحتوي على الكثير من الأشخاص القدامى الذين يرتدون قمصانًا وتحمل كرات السلة ، قد تفسر X بأنها مجموعة "لاعبي كرة السلة"). لكل مكان P وفئة الاهتمام C ، يمكنك حساب نسب الأشخاص في P بسبب C (ضمن المجموعة الحالية من المهام) ، وتمنحك هذه تمثيل P. على سبيل المثال ، قد تعلم أن الأشخاص الذين يتعطلون في بارنز أند نوبل تتكون من 10٪ من محبي موسيقى الجاز ، و 50٪ من عشاق الأنيمي ، و 10٪ من لاعبي الجاز ، و 30٪ من طلاب الجامعات.

مثال العالم الحقيقي

أخيرًا ، لنذهب إلى مثال حقيقي. تقدمت بطلب LDA إلى مجموعة من رسائل سارة بالين الإلكترونية منذ فترة قصيرة (راجع http://blog.echen.me/2011/06/27/… لمدونة مدونة ، أو http://sarah-palin.heroku.com / للتطبيق الذي يسمح لك بتصفح رسائل البريد الإلكتروني من خلال الموضوعات التي تعلمتها LDA) ، فإليك بعض الموضوعات التي تعلمتها الخوارزمية:

علم حساب المثلثات / الأسرة / الهام: الأسرة ، والشبكة ، والبريد ، والله ، ابن ، من ، تهاني ، والأطفال ، والحياة ، والطفل ، أسفل ، علم حساب المثلثات ، وطفل رضيع ، ولادة ، والحب ، أنت ، متلازمة ، خاصة جدا ، خاصة ، يبارك ، القديمة ، الزوج ، سنوات ، شكرا ، أفضل ، ... الحياة البرية / BP Corrosion: لعبة ، أسماك ، موس ، الحياة البرية ، الصيد ، الدببة ، القطبية ، الدب ، الكفاف ، إدارة ، منطقة ، لوحة ، مطاردة ، ذئاب ، سيطرة ، قسم ، سنة ، إستعمال ، ذئب ، موطن ، صياد ، كاريبو ، برنامج ، دينبي ، صيد الأسماك ، ... الطاقة / الوقود / النفط / التعدين: الطاقة ، الوقود ، التكاليف ، النفط ، ألاسكا ، الأسعار ، التكلفة ، الاسمية ، الآن ، عالية ، المنزل ، العام ، الطاقة ، الألغام ، الأزمة ، الأسعار ، الموارد ، الحاجة ، المجتمع ، البنوك العادية ، الخصم ، الاستخدام ، التعدين ، القرى ، ... الغاز: الغاز ، النفط ، خطوط الأنابيب ، أغيا ، المشروع ، الطبيعي ، الشمال ، المنتجون ، الشركات ، الضرائب ، الشركة ، الطاقة ، التنمية ، المنحدر ، الإنتاج ، الموارد ، الخط ، خط الغاز ، ترانكانادا ، مليار ، خطة ، إدارة ، مليون ، الصناعة ، ... التعليم / النفايات: المدرسة ، النفايات ، التعليم ، الطلاب ، المدارس ، مليون ، القراءة ، البريد الإلكتروني ، السوق ، السياسة ، الطلاب ، السنة ، عالية ، الأخبار ، الولايات ، البرنامج ، الأول ، التقرير ، الأعمال ، الإدارة ، النشرة ، المعلومات ، التقارير ، 2008 ، الربع ، ... الحملة الرئاسية / الانتخابات: البريد ، الويب ، من ، شكرا ، أنت ، مربع ، ماكين ، سارة ، جدا ، جيد ، عظيم ، جون ، الأمل ، الرئيس ، بإخلاص ، wasilla ، العمل ، الحفاظ على ، جعل ، إضافة ، الأسرة ، الجمهوري ، دعم ، القيام ، po ، ...

واقترح ريدينج: