RNN و LSTM

شبکه‌های بازگشتی RNN و LSTM: پردازش ترتیبی متن، مشکل وابستگی بلندمدت و راه‌حل حافظه (مفهومی)

مشکل: ترتیب مهم است!

«سگ انسان را گاز گرفت» ≠ «انسان سگ را گاز گرفت»! مدل‌های قبلی ترتیب را ندیدند. RNN حلقه را وارد می‌کند: کلمه به کلمه بخوان و حافظه نگه دار.

RNN چطور کار می‌کند؟

ورودی:  [من, به, مدرسه, می‌روم]

h0 ← خواندن «من»
h1 ← h0 + خواندن «به»
h2 ← h1 + خواندن «مدرسه»
h3 ← h2 + خواندن «می‌روم»  ← حافظه کل جمله!

هر خروجی (h) خلاصه‌ای از همه کلمات قبلی است — ترتیب پردازش می‌شود!

مشکل بزرگ: وابستگی بلندمدت

«من در کشور ایران به دنیا آمدم و ... ۵۰ کلمه بعد ... به آنجا برمی‌گردم»

RNN ساده با طولانی‌شدن جمله، اطلاعات ابتدایی را فراموش می‌کند (محو شدن گرادیان) — حافظه‌اش مثل ماهی طلایی است!

LSTM — حافظه هوشمند

Long Short-Term Memory با سه «دریچه» (Gate) حافظه را مدیریت می‌کند:

دریچهکارمثال
فراموشیچه چیزی را دور بریز؟«به» و «در» بعد از استفاده
ورودیچه چیز جدیدی ذخیره کن؟«ایران» — مهم!
خروجیچه چیزی الان استفاده کنم؟«برمی‌گردم» به «ایران» رجوع کند

مثل دفترچه یادداشت هوشمند: مهم‌ها را نگه دار، بی‌اهمیت‌ها را پاک کن، در زمان درست استفاده کن!

دو جهت بهتر از یک جهت

Bidirectional: جمله را هم از چپ هم از راست بخوان — «برمی‌گردم» هم به قبل نگاه می‌کند هم بعد! برای بسیاری مسائل NLP دقت را بالا می‌برد.

محدودیت‌های RNN/LSTM

نکته تاریخی: LSTM (1997) سال‌ها قهرمان NLP بود — ترجمه گوگل تا 2016 LSTM بود! ترنسفورمر (2017) انقلاب کرد اما درک LSTM، درک «چرا توجه بهتر است» را ممکن می‌کند.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل پردازش زبان طبیعی (NLP) است.

ابزارهای مرتبط