Learning Natural Language Inference using Bidirectional LSTM Model and Inner-Attention

تغییرات پروژه از تاریخ 1396/09/06 تا تاریخ 1396/10/09
** یادگیری استنتاج در زبان‌های طبیعی با استفاده از روش‌های LSTM دوطرفه و Inner-Attention**
# مقدمه
استنتاج از طریق متن، به معنای این است که آیا می‌توان جمله‌ای را از جمله اولیه، نتیجه گرفت یا خیر. در تصور کنید جمله‌ای مشاهده می‌شود (عقیده[^Premises]). این جمله مفهومی را می‌رساند که ما را از موضوعی مطلع می‌سازد. حال جمله‌ای دیگر را در نظر بگیرید که بعد از جمله اولیه، بیان می‌شود (فرضیه[^Hypothesis]). 3 نوع استنتاج از جمله دوم نسبت به جمله اول می‌توان به دست آورد. یعنی ممکن است جمله دوم با توجه به جمله اول درست باشد، یا غلط باشد و یا نتوان نسبت به صحت یا اشتباه بودن آن اظهار نظر کرد. به طور مثال جملات زیر را در نظر بگیرید: 

عقیده : پسر در محیطی پوشیده از چمن حرکت می‌کند.
1. پسر داخل اتاق است (اشتباه).
2. پسر بیرون از خانه است (صحیح).
3. پسر داخل پارک است (نامعلوم).

همانطور که در مثال بالا مشاهده می‌شود، 3 وضعیت اشتباه، صحیح و نامعلوم می‌توان با توجه به جمله دوم برداشت کرد.

این مقاله با استفاده از روش‌های یادگیری عمیق LSTM دوطرفه و Inner-Attention به بررسی این موضوع پرداخته است.
**روش LSTM دوطرفه **: LSTM دوطرفه یکی از روش‌های یادگیری عمیق است که برای یادگیری داده‌های ترتیبی[^Sequential] مورد استفاده‌ قرار می‌گیرد. LSTM مدل بهبود یافته RNN است. در مدل RNN ممکن است داده‌هایی که در ابتدای فرآیند آموزش استفاده می‌شوند، با گذشت زمان تاثیر کمتری در روند آموزش داشته باشند. روش LSTM با استفاده از دروازه‌هایی[^Gates] برای یادگیری و فراموش‌ کردن داده‌ها، به نوعی به صورت حافظه‌‍دار عمل می‌کند. به این ترتیب با دور شدن از داده‌های اولیه، ممکن است تاثیر آن داده‌ها کم نشوند و به این ترتیب عملکرد بهتری مشاهده می‌شود. LSTM دوطرفه، به این صورت است که در زمان آموزش، یک بار از ابتدا به انتها داده‌ها مورد بررسی قرار می‌گیرد و وزن‌ها و مقادیر بایاس اصلاح می‌شوند، یک بار از انتها به ابتدا فرآیند آموزش انجام می‌شود و ماتریس‌های مربوطه تنظیم می‌شوند.
![معماری biLSTM: داده‌های ترتیبی از x1 تا xn به عنوان ورودی در لایه ورودی قرار دارند. سپس در لایه بالاتر یک بار از ابتدا به سمت انتها و بار دیگر از انتها به سمت ابتدا یادگیری انجام می‌شود.](https://boute.s3.amazonaws.com/291-Capture2.PNG)

**روش Inner-Attention **: در این روش با مشاهده توجه جمله به اجزا، اهمیت هر نوع کلمه بررسی می‌شود و این میزان اهمیت در اصلاح وزن‌ها و بایاس‌ها مورد توجه قرار می‌گیرد. به طور مثال اگر دسته "اسم‌" اهمیت بیشتری نسبت به دسته "فعل" داشت، اصلاح وزن فعل‌ها به صورت خفیف‌تر انجام می‌شود.
![نمونه‌ای از اعمال Inner-Attention بر روی مجموعه داده، رنگ تیره‌‎تر به معنای وزن بیشتر و رنگ روشن‌تر به معنای وزن و تاثیر کمتر است.](https://boute.s3.amazonaws.com/291-Capture3.PNG)
**مجموعه داده‌ها**

برای آزمایش روش این مقاله، مجموعه داده‌ها از مجموعه‌ داده‌هایی که دانشگاه استنفورد[^http://nlp.stanford.edu/projects/snli/]  به همین منظور در سایت خود قرار داده است، استفاده شده است. این مجموعه داده به SNLI معروف است. مجموعه داده‌های این سایت به این صورت است که 550 هزار جمله دوتایی که دارای برچسب هستند، به عنوان داده‌ آموزش در فایل مربوطه وجود دارد. فایل دیگری با 10 هزار جمله دوتایی دارای برچسب، برای بررسی صحت عملکرد، وجود دارد.

**برچسب داده‌ها**

هر داده در مجموعه داده‌ها با 3 برچسب مختلف مشاهده می‌شود:
1. برچسب E[^Entailment] : نتیجه‌گیری درست است.
2. برچسب C[^Contradiction] : نتیجه‌گیری نادرست است.
3. برچسب N[^Neutral] : نتیجه‌گیری ممکن است درست باشد و ممکن است غلط باشد. در مورد صحت جمله دوم نمی‌توان نظر داد.
در عکس زیر نمونه‌ای از این 3 برچسب مشاهده می‌شود.
![نمونه‌ای از دسته‌بندی داده‌ها](https://boute.s3.amazonaws.com/291-Capture8.PNG)

این پژوهشگر در انتها مدلی را معرفی و آزمایش می‌کند که نسبت به بهترین مدل پیاده‌سازی در گذشته، 2 درصد بهتر عمل می‌کند.

# کارهای مرتبط
برای درک بهتر و عمیق این مقاله و پیاده‌سازی آن، نیاز است که مفاهیم زیر مورد بررسی قرار بگیرد:
1. نحوه عملکرد LSTM دوطرفه و چگونگی اصلاح وزن‌ها.
2. استفاده از LSTM در حوزه پردازش زبان‌های طبیعی.
3. کارهای انجام شده در زمینه بررسی نتیجه‌گیری در داده‌های 2 جمله‌ای.

# آزمایش‌ها
به زودی...

# کارهای آینده
به زودی..در گذشته مساله استنتاج دو جمله در حوزه رده‌بندها[^Classifiers] انجام شده است و ویژگی‌ها به صورت دستی انتخاب می‌شدند.
بسیاری از محققان از جمله باس و مارکت[1] از این روش‌ها استفاده می‌‌‎کردند که به علت پیچیدگی زیاد و محدودیت‌های رده‌بندها از آن‌ها استقبال زیادی نشد.
تن و دیگران [2] روش‌های LSTM را برای استخراج استنتاج از متن را معرفی کرده‌اند.
راکستکل و دیگران [3] با استفاده از مدل‎های توجه به نورون[^Neutral attention model]، دقت بهتری را در این حوزه به دست آورد. 

# متدولوژی ارائه شده در این مقاله
در این پژوهش از چارچوب‌های یادگیری عمیق برای تشخیص استنتاج متن ها استفاده شده است. در این روش از روش‌های انتخاب ویژگی و همچنین منابع خارجی استفاده نشده است. معماری روش ارائه شده در شکل زیر مشاهده می‌شود:
![معماری ارائه شده در این مقاله](https://boute.s3.amazonaws.com/291-Capture4.PNG)
در این روش، ابتدا biLSTM هم بر روی عقیده و هم بر روی فرضیه اعمال می‌شود. از رمزگذار Mean Pooling یک دید کلی در مورد اینکه جمله در ارتباط با چه چیزی صحبت می‌کند، نمایان می‌کند. با استفاده از این قسمت، به مدل ارائه شده، Inner-Attention در هر دو جمله تعمیم داده می‌شود. با این کار دقت عملکرد، به وسیله تمرکز بر روی نماینده‌های جمله (کلمه‌های کلیدی‌تر) بیشتر می‌شود. 
همچنین در این مقاله از تکنیک‌هایی برای دریافت ورودی استفاده شده است که باعث دریافت نتایج بهتر می‌شود.

**روش ارائه شده**
در این روش، این مساله به عنوان یک مساله رده‌بندی 3 مسیره باناظر در نظر گرفته می‌شود. طراحی این معماری به شکلی است که دو رمزگذار جمله‌های دوتایی، وزن‌ها را در زمان آموزش با یکدیگر به اشتراک می‌گذارند. سپس نمایندگان دو جمله با یکدیگر ترکیب می‎‌شوند و "بردار ارتباط" را برای رده‌بند می‌سازند.
شکل معماری این مقاله شامل 3 بخش زیر است که در ادامه توضیح داده خواهد شد:
1. ماژول ورودی جمله‌ها
2. ماژول رمزگذاری جمله‌ها
3. ماژول ترکیب جمله‌ها

**1. ماژول ورودی جمله‌ها**
در این قسمت 4 استراتژی مختلف برای دریافت جمله‌ها به عنوان ورودی استفاده شده است:
4. معکوس‌ کردن عقیده [4]
5. دوبار تکرار کردن عقیده [5]
6.  دو بار تکرار کردن فرضیه
7. حذف کردن کلمات مشترک در عقیده و فرضیه

**2.ماژول رمزگذاری جمله‌ها**
در این قسمت، سعی می‌شود که نمایندگان هر جمله با کیفیت بهتری انتخاب شوند. به منظور انجام این کار، 2 استراتژی برای رمزگذاری جمله‌ها استفاده شده است، در مرحله اول از Average pooling بالای لایه biLSTM برای تولید بردار جمله استفاده شده است. سپس مکانیزم توجه بر روی همان جمله اعمال می‌شود، به این صورت که به دست آوردن وزن‌ کلمات با استفاده از ارجاع از جمله دوم به اول، از مشاهده نمایندگان جمله که در مراحل قبل تولید شده است، استفاده می‌شود. ایده این کار از نحوه عملکرد انسان‌ها به دست آمده است. به این صورت که انسان که یک عبارت را می‌خواند، با توجه به مطالعات گذشته‌اش کلمات بااهمیت را به خاطر می‌سپارد.
این مکانیزم به صورت زیر فرموله شده است: 
![فرمول‌های Inner-Attention](https://boute.s3.amazonaws.com/291-Capture5.PNG)
در فرمول بالا Y ماتریسی است که شامل بردار خروجی از biLSTM است، Ravg خروجی لایه Mean pooling است، آلفا نماینده بردار توجه، Ratt وزن‌های توجه جمله است.

**3. ماژول ترکیب جمله‌ها**
بعد از ماژول رمزگذاری و ساخت بردار‌های جمله، 3 عمل ترکیب برای استخراج رابطه بین عقیده و فرضیه اتفاق می‌افتد:
1. ترکیب دو نماینده
2. ضرب المان‌ها
3. اختلاف المان‌ها

این معماری ترکیب ابتدا توسط مو و دیگران [6] معرفی شده است. در انتها از SoftMax در بالای این لایه استفاده شده است تا خروجی به صورت غیر خطی برای رده‌بند مورد استفاده قرار بگیرد.

# آزمایش‌ها و نتایج
برای آزمایش معماری ارائه شده، تنظیماتی برای شبکه عصبی و داده‌ها در نظر گرفته شده است:
1. اندازه تعداد داده وارد شده برای یادگیری[^Batch size] = 128
2. میزان در نظر نگرفتن نورون‌ها در زمان یادگیری[^Dropout rate] = 25 درصد
3. برای مقداردهی اولیه به وزن کلماتی که تا قبل از آن مرحله در داده‌ها دیده نشدند، وزنی رندمی با توزیع (0.05و0.05) در نظر گرفته می‌شود.
4. وزن‌ها بعد از آمدن هر داده، به روز نمی‌شوند. به این دلیل که تعداد داده‌هایی که نیاز به تنظیم وزن دارند کمتر شود و همچنین نمایندگان جمله نسبت به المان‌های جدید که تا به حال دیده نشده‌اند، عملکرد بهتری انجام دهند. 

همانطور که در بخش ماژول ورودی صحبت شد، 4 روش برای دریافت ورودی مورد استفاده قرار گرفته است. نتیجه استفاده از هر روش در جدول زیر نمایش داده شده است:
![نتیجه اعمال استراتژی برای ورودی داده‌ها](https://boute.s3.amazonaws.com/291-Capture6.PNG)

بعد از انجام معماری ارائه شده، نتایج با روش‌‌های روز که محققان دیگر انجام داده‌اند مورد بررسی قرار گرفته است. در ادامه توضیح مختصر در روش در نظر گرفته شده در پژوهش‌های روز دیگر و همچنین جدول نتایج نمایش داده شده است:

1. LSTM enc: 100D LSTM encoders + MLP[6].
2. GRU enc: 1024D GRU encoders + skip-thoughts + cat[7].
3. TBCNN enc: 300D Tree-based CNN encoders + cat[8].
4. SPINN enc: 300D SPINN-NP encoders + cat[9].
5. Static-Attention: 100D LSTM + static attention[3].
6. WbW-Attention: 100D LSTM+ word-by-word attention[3].
![نتیجه مقایسه با معماری‌های محققان دیگر](https://boute.s3.amazonaws.com/291-Capture7.PNG)

# نتیجه‌گیری
در این پژوهش، یک معماری biLSTM با توجه به Inner-Attention برای حل مسائل اسنتاج دو جمله‌ای یا RTE ارائه شد. Inner-Attention به این صورت عمل کرد که نحوه تعیین توجه در جمله را بدون استفاده از اطلاعات جمله دیگر و توسط خودش محاسبه شود. این کار به همراه استراتژی‌های مختلف در فاز ورود داده‌ها در این پژوهش مورد استفاده قرار گرفته است.
# کارهای آینده
1. استفاده این روش در حوزه‌های دیگر (به جز RTE)، مانند سوال جواب، تشابه دو جمله و غیره.
2. از معماری‌های دیگری در فاز ترکیب جمله‌ها استفاده شود و دقت مورد بررسی قرار گیرد.
3. این روش بر روی زبان‌های دیگر مانند فارسی انجام شود.

# مراجع

[1] Johan Bos and Katja Markert. 2005. Recognising textual entailment with logical inference. In Proceedings of the conference on Human Language Technology and EmpiricalMethods in Natural Language Processing, pages 628–635. Association for Computational Linguistics.
[2] Ming Tan, Bing Xiang, and Bowen Zhou. 2015. Lstm-based deep learning models for non-factoid answer selection. arXiv preprint arXiv:1511.04108.
[3] Tim Rockt¨aschel, Edward Grefenstette, Karl Moritz Hermann, Tom´aˇs Koˇcisk`y, and Phil Blunsom. 2015. Reasoning about entailment with neural attention. arXiv preprint arXiv:1509.06664.
[4] Ilya Sutskever, Oriol Vinyals, and Quoc V Le. 2014. Sequence to sequence learningwith neural networks. In Advances in neural information processing systems, pages 3104–3112.
[5] Wojciech Zaremba and Ilya Sutskever. 2014. Learning to execute. arXiv preprint arXiv:1410.4615.
[6] Samuel R Bowman, Gabor Angeli, Christopher Potts, and Christopher D Manning. 2015. A large annotated corpus for learning natural language inference. arXiv preprint arXiv:1508.05326.
[7] Ivan Vendrov, Ryan Kiros, Sanja Fidler, and Raquel Urtasun. 2015. Orderembeddings of images and language. arXiv preprint arXiv:1511.06361.
[8] Lili Mou, Men Rui, Ge Li, Yan Xu, Lu Zhang, Rui Yan, and Zhi Jin. 2015. Recognizing entailment and contradiction by tree-based convolution. arXiv preprint arXiv:1512.08422. [Pennington et al.2014] Jeffrey Pennington,
[9] Samuel R Bowman, Jon Gauthier, Abhinav Rastogi, Raghav Gupta, Christopher D Manning, and Christopher Potts. 2016. A fast unified model for parsing and sentence understanding. arXiv preprint arXiv:1603.06021.