Recursive Neural Networks Can Learn Logical Semantics

درخت‌های بازگشتی شبکه عصبی (TreeRNNها) برای به‌دست آوردن معنی جملات در کاربردهای بسیاری موفق بوده اند، اما سؤالی که باقی می‌ماند این است که آیا بازنمایی‌های با طول ثابتی که این درخت‌ها یاد می‌گیرند، می‌توانند taskهای استنتاج منطقی را پشتیبانی کنند یا خیر. ما به این سؤال با بررسی اینکه آیا دو مدل ساده TreeRNN و TreeRNTNs، می‌توانند روابط منطقی را به‌درستی با استفاده از این بازنمایی‌ها شناسایی کنند یا خیر پاسخ می‌دهیم. در مجموعه اول آزمایشات ما داده‌های مصنوعی را از یک گرامر منطقی تولید می‌کنیم و از آن برای ارزیابی توانایی مدل‌ها برای یادگیری روابط منطقی استفاده می‌کنیم. سپس مدل‌ها را بر روی داده‌های چالشی طبیعی ارزیابی می‌کنیم. هر دو مدل در هر سه آزمایش بر روی داده‌های شبیه‌سازی شده به طور کلی به خوبی جواب می‌دهند و این نشان می‌دهد که آنها می‌توانند بازنمایی مناسب برای استنتاج منطقی در زبان طبیعی را بیاموزند.
1. مقدمه
مدل‌های درختی شبکه عصبی بازگشتی برای معنای جملات در بسیاری از کاربردهای پیشرفته زبانی، از جمله تحلیل احساسات، توصیف تصویر و تشخیص نقل قول موفق بوده‌اند. این نتایج ما را ترغیب می‌کنند که این مدل‌ها را برای یادگیری تولید و استفاده از اصطلاحات معنایی قوی برای جمله‌ها توانا کنیم. با این وجود، سؤالی که باقی می‌ماند این است که آیا چنین مدلی می‌تواند عملکردهای گرامری مبتنی بر منطق را تطبیق دهد یا خیر.
کارهای اخیر در روش‌های جبری دارای چارچوب غنی برای محاسبات معنایی قطعاتی از زبان طبیعی است، اما هنوز روش‌های موثری برای یادگیری این بازنمایی از داده‌ها در یادگیری ماشین معمولی به دست نیامده است. تجربیات گذشته درباره استدلال تا حد زیادی محدود به عبارات کوتاه بوده است. با این حال، برای درک صحیح زبان طبیعی، ضروری است که این پدیده‌ها را در حالت کلی خود مدل کنیم.
این مقاله چهار آزمایش یادگیری را توصیف می‌کند که به طور مستقیم توانایی این مدل‌ها را برای یادگیری بازنمایی‌هایی که از رفتارهای معنایی خاص پشتیبانی می‌کنند، ارزیابی می‌کنند. ما یک معماری شبکه عصبی جدید برای استنتاج زبان طبیعی معرفی می‌کنیم که به‌طور مستقل بردارهای نمایندگی را برای هر دو جمله‌ای با استفاده از مدل‌های TreeRNN یا TreeRNTN محاسبه می‌کند بر اساس این بازنمایی‌ها رابطه بین جملات را قضاوت می‌کند. که به ما اجازه می‌دهد توانایی این دو مدل را برای نشان دادن تمام اطلاعات معنایی لازم در جمله‌ها بیان کنیم.
بسیاری از کارهای نظری در مورد استنتاج زبان طبیعی شامل منطق طبیعی است که سیستم های رسمی هستند که قواعد استنتاج بین کلمات زبان طبیعی، عبارات و جملات را بدون نیاز به بازنمایی‌های متوسط در یک منطق زبانی مصنوعی تعریف می‌کنند. در سه آزمایش اول ، توانایی مدل‌ها را برای یادگیری پایه‌های استنتاجی زبان طبیعی را با آموزش آنها برای تکثیر رفتار منطق طبیعی مک کارتی و منینگ بر روی داده‌های مصنوعی تست می‌کنیم. این منطق هفت رابطه متقارن انحصاری ترادف، تلقی، تضاد و ثبات متقابل را تعریف می‌کند که در جدول ... خلاصه شده است. اولین آزمایش با استفاده از این منطق، استنتاج را با روابط منطقی ساده پوشش می‌دهد، و دوم آن را به استدلال با عبارات ساخته شده با توابع بازگشتی ترکیب می‌کند و سوم، پیچیدگی‌های اضافی را که از تعریف به دست می‌آید، پوشش می‌دهد. اگر چه عملکرد مدل TreeRNN ساده در اولین آزمایش ما تا حدودی ضعیف است، اما مدل قوی‌‎تر TreeRNTN در همه موارد به خوبی کار می‌کند و بدین معنی است که آن را آموخته است و مفاهیم منطقی مورد نظر را شبیه‌سازی کرده است.
آزمایشات با داده‌های شبیه‌‎سازی شده توانایی شبکه‌های عصبی برای یادگیری ساختن و استفاده از اصطلاحات معنایی برای جملات طبیعی پیچیده از مجموعه‌های آموزشی مناسب را نشان می‌دهد. با این حال، ما نیز علاقمند هستیم که ببینیم آیا می‌توانند این بازنمایی‌ها را از متن طبیعی یاد بگیرند یا خیر. برای پاسخگویی به این سؤال، ما مدل‌های خود را به داده‌های چالشی اعمال می‌کنیم. اندازه کوچک این بدنه، یک عیب است که با این حال قادر هستیم به دستیابی به کارایی رقابتی آن هستیم.
2. شبکه عصبی درختی
دامنه آزمایش‌ها در این مقاله محدود به مدل‌هایی از شبکه عصبی می‌شود که معنی عبارات پیچیده با ترکیب معنی قطعات کوچکتر آن با استفاده از توابع خاصی به‌دست می‌آید. در مدل ما، معنی کلمه یک بردار با ابعاد n است. یک تابع آموزش داده شده داریم که هر جفت از کلمات را به یک بردار با ابعاد n نگاشت می‌کند. این بردارها می‌توانند با بردارهای دیگر ترکیب شوند تا معنی عبارات پیچیده‌تری را نشان دهند و بدین ترتیب یک ساختار درختی تشکیل می‌دهند. وقتی که تمام جمله را بتوانیم با استفاده از این ساختار درختی نمایش دهیم، به عنوان یک ورودی برای قسمت‌های بعدی مورد استفاده قرار می‌گیرد.
برای استفاده از مدل بازگشتی برای کاربرد مورد نظر، از معماری نشان داده شده در شکل ... استفاده می‌کنیم. در این معماری دو عبارتی که با هم مقایسه می‌شوند، با استفاده از درخت‌های جداگانه پردازش می‌شوند و نتایج حاصل را با هم مقایسه می‌کنیم و رابطه بین دو عبارت بر اساس هفت رابطه نشان داده شده در جدول 1 به‌دست می‌آید.

جدول 1. هفت رابطه منطقی مک کارتی و منینگ

برای بخش تعبیر جملات شبکه، هر دو مدل درخت شبکه عصبی بازگشتی را با تابع لایه شبکه عصبی استاندارد و آن دسته از شبکه‌های عصبی که تابع لایه‌ای قدرتمندتر تابع لایه‌ای شبکه تانسور دارند، ارزیابی می‌کنیم. سپس تابع غیرخطی f(x)=tanh(x) به خروجی هر دو تابع لایه‌ای اعمال می‌شود.
معادله 1

معادله 2

در بالا،x^{(l)} و x^{(r)} نمایشگر ستون‌های بردار فرزندان چپ و راست گره هستند و گره خروجی است. درخت شبکه عصبی بازگشتی فرزندان چپ و راست گره را به هم پیوند می‌دهد، آنها را در ماتریس وزن‌های یادگیری شده ضرب می‌کند و یک بایاس b را به آن اضافه می‌کند.درخت شبکه عصبی تنسور بازگشتی، یک تنسور T با ابعاد n*n*n را به درخت در مرحله قبل اضافه می‌کند و تعاملات چندگانه بین بردارهای فرزند را مدل میکند. لایه مقایسه از تابعی مشابه تابع قسمت ترکیب (یا یک لایه NN یا یک لایه NTN) با پارامترهای مستقل یادگیری شده و یک تابع غیرخطی جداگانه استفاده می‌کند. در اینجا، به جای استفاده از تابع غیر خطی tanh، نتایج بهتری را با تابع اصلاح شده f(x)=max(x,0)+0.01min(x,0) پیدا کردیم.
پارامترها را در محدوده مناسب به‌طور یکنواخت مقداردهی اولیه می‌کنیم و مدل را با استفاده از شیب گرادیان تصادفی (SGD) با نرخ یادگیری محاسبه شده با استفاده از الگوریتم AdaDelta آموزش می‌دهیم. بردار ویژگی‌های classifier را 75 در نظر می‌گیریم اما ابعاد لایه بازگشتی به‌صورت دستی به‌دست می‌آید. . در آزمایش‌هایی که از داده‌های مصنوعی استفاده می‌شود، نتایج به طور متوسط نتایج با بیش از 5 بار اعتبارسنجی گزارش داده می‌شود، در حالیکه واریانس برآورد شده معمولا کمتر از دو درصد است.
3. استدلال روابط معنایی
ساده ترین استنتاج در منطق طبیعی شامل عبارات اتمیک با استفاده از روابط جدول 1 حاصل می‌شود. به عنوان مثال، از رابطه p_1 \sqsupset p_2 بین دو گزاره می توان رابطه p_2 \sqsubset p_1 را با استفاده از تعریف مستقیم روابط به دست آورد. اگر از یکی از گزاره ها نتیجه گرفته شود که p_2 \sqsubset p_3، با استنتاج نظریه اساسی مجموعه‌ها میتوان نتیجه گرفت که p_1 \sqsubset p_3 . مجموعه کامل از چنین نتیجه‌هایی در جفت روابط پایه در جدول 2 نشان داده شده است. آزمایش اول این است که هر کدام از مدل‌ها یاد بگیرند استدلال بین عبارات منطقی را به صورت جداگانه انجام دهد.
جدول 2. در بخش 3، توانایی مدل‌ها برای یادگیری روابط بین جفت عبارت‌ها با استفاده از قواعد گفته شده در این بخش سنجیده می‌شود.

آزمایش
ما آزمایشات خود را با ایجاد یک مدل جهانی آغاز می‌کنیم که در آن عبارات به دو مجموعه آموزش و تست تقسیم می‌کنیم. شکل 1 ساختار این فرم با سه موجودیت (b، a و c) و هشت اصطلاح گزاره ای (p1-p8) را نشان می‌دهد. سپس یک رابطه گزاره ای برای هر جفت اصطلاح موجود در مدل تولید می‌کنیم. سپس گزاره‌های تولید شده را به‌طور یکنواخت به مجموعه‌های آموزش و تست تقسیم می‌کنیم و نمونه‌های تست را از مجموعه آموزش حذف می‌کنیم. در هر آزمایش، یک مدل با 80 اصطلاح را بر روی یک دامنه از 7 عنصر ایجاد می کنیم، مجموعه‌ای از 3200 نمونه آموزشی و یک مجموعه تست از 2960 نمونه ساخته میشود. سپس مدل‌ها را با استفاده از توابع آموزشی شبکه عصبی و شبکه تنسور عصبی آموزش می‌دهیم.
شکل 1.

نتایج
نتایج جدول 3 نشان می‌دهد که تنسور شبکه عصبی قادر است با دقت بالایی روابط بین عبارت‌ها را بین بردارهای خود رمزگذاری کند و می تواند از این اطلاعات برای بدست آوردن روابطی که به طور آشکار در داده های آموزشی موجود نیستند، استفاده کند. شبکه عصبی نیز به خوبی می‌تواند عمل کند اما مرتکب اشتباهاتی نیز می‌شود که باعث می‌شود یک سوال باقی بماند که آیا شبکه عصبی با این خصوصیات می‌تواند بازنمایی‌ها را یاد بگیرد یا خیر.
جدول 3

4. ساختار بازگشتی
یک سیستم استنتاج زبان طبیعی موفق باید استنتاج روابط را نه تنها بر اساس آشنایی با نمادهای اتمی، بلکه بر اساس ساختارهای جدیدی که از این نمادها به صورت مجزا به‌دست می‌آید، انجام دهد. در این قسمت نشان می‌دهیم که مدل‌های ما می توانند مفاهیم ترکیب را بر روی این ساختارها بیاموزند.
آزمایشات
همان‌طور که در بخش 3 مشاهده کردیم، داده‌های مصنوعی را از یک سیستم رسمی تولید می‌کنیم، اما اکنون با استفاده از فرمول‌های پیچیده، نمادهای غیرقابل تجزیه را جایگزین می‌کنیم. این فرمول‌ها یک منطق گزاره‌ای کامل کلاسیک را نشان می‌دهند: هر نماد اتمی یک متغیر در دامنه {F,T} است. جدول 4 این منطق را تعریف می‌کند، و جدول 5 نمونه‌های کمی از روابط گزاره‌ای از داده‌ها را نشان می‌دهد. برای محاسبه رابطه بین گزاره‌ها،به متغیرهای گزاره‌ای مجموعه‌ای از مقادیر را به‌گونه‌ای تخصیص می‌دهیم که هر یک از گزاره‌های موجود را برآورده کنند و سپس به‌طور معکوس این تخصیص‌ها را به یکی از هفت رابطه در جدول 1 تبدیل می‌کنیم. در نتیجه، هر یک از روابط گزاره‌ای، یک قضیه معتبر در منطق گزاره‌ای را نشان می‌دهد و برای موفقیت، مدل‌ها باید یاد بگیرند که یک رفتار تکرار شود. پس از تولید داده‌های دلخواه و حذف داده‌های نامناسب 20% از هر قسمت را برای قسمت تست انتخاب می‌کنیم.
جدول4

جدول 5

برای اینکه مدل را به ساختارهای ناشناخته، آموزش نمونه‌های با بیش از 4 اپراتور منطقی را متوقف می‌کنیم که 60 هزار نمونه آموزش عبارات کوتاه و 21 هزار داده آزمون باقی می‌ماند. علاوه بر دو مدل درختی، یک شبکه عصبی پایه که تا حد زیادی مشابه شبکه عصبی درختی است، آموزش داده می‌شود؛ با این تفاوت که به جای استفاده از یک تابع ترکیبی آماری، بردارهای موجود در هر عبارت را قبل از انتقال به لایه مقایسه با هم جمع می‌کنیم.
نتایج
شکل 2 رابطه بین دقت آزمون و اندازه statement را نشان می‌دهد. درحالی‌که مدل شبکه عصبی پایه عملکرد خوبی نداشته است، اما هر دو مدل بازگشتی بر روی نمونه‌های کوچک داده‌های تست عمل می‌کنند.به‌طوری‌که درخت شبکه عصبی دقت 98% و درخت شبکه تنسور عصبی دقتی بالاتر از 99% بر روی فرمول‌های با طول کمتر از 5 دارند و نشان می‌دهد که توانایی یادگیری منطق را دارند. دقت آموزش برای شبکه عصبی پایه 66.6%، برای درخت شبکه عصبی 99.4% و برای درخت شبکه تنسور عصبی 99.8% بود.
شکل 2

در آموزش حداکثر اندازه عبارت‌ها را 4 قرار می‌دهیم، اما با افزایش اندازه عبارات عملکرد هر دو مدل درختی کاهش می‌یابد. با وجود عملکرد قوی‌تر TreeRNTN در جملات کوتاه، با افزایش اندازه عبارت، عملکرد آن سریع‌تر از TreeRNN کاهش می‌یابد. این قضیه نشان می‌دهد که TreeRNTN ساختارهای با طول ثابت را به خوبی یاد می‌گیرد، اما نمی‌توانند آن را به حالت‌های کلی‌تر تعمیم دهند. دو عامل ممکن است در یادگیری این عبارات تاثیر داشته باشند: حتی در عبارات با طول کوچک، تعداد پارامترهای تابع ترکیب TreeRNTN، هشت برابر TreeRNN است. همچنین TreeRNTN با رگولاریزاسیون کمتر، عملکرد بهتری دارد.
5. استدلال و درک معنا در جملات منفی و دارای سور
همانطور که در قسمت‌های قبل مشاهده کردیم، مدل‌های بازگشتی می‌توانند به‌طور تقریبی منطق ترکیبی را بیاموزند. اما پیچیدگی زبان طبیعی می‌تواند بیش از این باشد. برای اینکه بدانیم آیا مدل‌های پیشنهادی ما می‌توانند معیار مناسبی برای تشخیص این پیچیدگی‌ها بیایند یا خیر، بررسی می‌کنیم که با افزایش پیچیدگی تا چه اندازه می‌توانند بازنمایی‌های مناسبی را برای عبارات دارای سور در زبان طبیعی را بیابند.
آزمایشات
داده‌های ما شامل جفت جملات تولید شده از دستور زبان ساده زبان انگلیسی است. هر جمله شامل یک ، یک اسم و یک فعل کمکی است که اسم و فعل ممکن است منفی باشند.ما از سورهای some، most، all، two و three و معانی منفی آنها no، not all، not most، less than two و less tahn three، پنج اسم و چهار فعل کمکی و یک نماد not می‌شود.
در هر اجرا، به‌صورت تصادفی، مجموعه جملات معتبر را به دو مجموعه آموزش و تست تقسیم می‌کنیم. به‌طوری‌که 27 هزار جفت در مجموعه آموزش و 7هزار جفت در مجموعه تست قرار داشته باشند. از آنجا که در مدل پشنهادی، جملات تست در آموزش شرکت داده نمی‌شوند، برای استدلال نمی‌توان از روش گفته شده در قسمت 3 استفاده کند و باید به جای آن روابط بین کلمات را به دست آورد و سیستم منطق کلی را برای آنها فرا بگیرد.
نتیجه
نتایج نشان داده شده در جدول 6 هر دو مدل درختی قادر به یادگیری منطق اساسی به طورتقریبا کامل هستند. مدل شبکه عصبی پایه می‌تواند داده‌های موجود در قسمت آموزش را فرابگیرد، اما قادر به تعمیم آن به موارد دیگر نیست. هیچ الگوی صحیحی برای اشتباهاتی که ساختارهای درختی مرتکب می‌شوند وجود ندارد و هیچ خطایی در بازنویسیمجدد مدل وجود ندارد، و این نشان می دهد که برای رفع این مشکل هیچ مانعی جدی برای یادگیری مدل وجود ندارد.
جدول 6

بحث و نتیجه‌گیری
این پژوهش ابتدا دو مدل بازگشتی را براساس سه وظیفه استنتاجی طبیعی بر روی داده‌های مصنوعی ارزیابی می‌کند، سپس نشان می‌دهیم که همین مدل‌ها می‌توانند برای انجام یک کار بر روی زبان طبیعی آموزش داده شوند. نتایج بدست آمده نشان می‌دهد که TreeRNTNها، و به طور بالقوه TreeRNN ها، می‌توانند استنتاج منطقی را از مجموعه‌های آموزشی مناسب بدست آورند. این نتایج برای آینده مدل‌های در حوزه معناشناسی امیدوارکننده است.
پیاده‌سازی
پیاده‌سازی پژوهش مورد نظر در محیط متلب انجام شده است که لینک آن در زیر آمده است.
https://github.com/sleepinyourhat/vector-entailment