به نام خدا

مقاله به زبان اصلی

لینک پیاده سازی اصلی

لینک پیاده سازی پرداخته شده در این ارائه


توسعه نمایش معنایی با استفاده از شبکه های حافظه ای کوتاه- بلند با ساختار درختی (Tree-LSTM)

۱. تعریف مسئله

در این مقاله به دنبال معرفی مدلی برای بازنمایی عبارت و جمله هستیم که بتواند در مقایسه با مدلهای پیشین، مشکلاتی مانند وابستگی جملات طولانی و به خاطر سپردن اطلاعات قدیمی را برطرف کند و انواع این مدل را بررسی و با یکدیگر مقایسه خواهیم کرد.

۲. مقدمه

گاهی اوقات برای بازنمایی یک عبارت نیاز است که اطلاعات قدیمی تر را در اختیار داشته باشیم. این مورد مخصوصا در جملات طولانی اتفاق می افتد. در این مقاله به دنبال معرفی مدلی برای بازنمایی عبارت و جمله هستیم که بتواند در مقایسه با مدلهای پیشین، مشکلاتی مانند تحلیل معنایی جملات طولانی و به خاطر سپردن اطلاعات قدیمی را برطرف کند.
مدل هایی که به ترتیب کلمات حساس نیستند، تفاوتهای معنایی و وابستگیهای زبان طبیعی را تشخیص نمی دهند پس برای بازنمایی1 جملات مناسب نیستند. برای مثال این مدل ها، تفاوت بین دو جمله ی " گربه از درخت بالا می رود " و " درخت از گربه بالا می رود" را تشخیص نمی دهند. به همین دلیل به سراغ مدل های حساس به ترتیب2 و یا مدل های درختی می رویم.
مدلهای زیادی برای بازنمایی عبارات، ارائه شده که سه مدل پر استفاده را بیان می کنیم:

  1. مدل سبد واژگان3 – بازنمایی عبارت در مدل سبد واژگان، وابسته به ترتیب کلمه نیست.

یک مثال از این مدل را بیان می کنیم:
جمله ی اول : زهرا زنگ خانه را زد.
جمله ی دوم : مریم تا به خانه رسید زنگ در خانه را به صدا در آورد.
سبد واژگان را کلمات این دو جمله در نظر می گیریم و کلمات تکراری را یکبار می نویسیم: {زهرا، زنگ، خانه، را، زد، مریم، تا، به، رسید، در، صدا، آورد}
هر واژه یک مکان مشخصی در این سبد دارد و ترتیب کلمات نیز مهم است. برای تشکیل بردار نمایش هر جمله باید از اولین لغت سبد واژگان شروع کرده و تعداد تکرار آن لغت در هر جمله را مشخص کرد.
بردار نمایش این دوجمله به این شکل است:
جمله ی اول: {1،1،1،1،1،0،0،0،0،0،0،0}
جمله ی دوم: {0،1،2،1،0،1،1،2،1،2،1،1}

  1. مدل ترتیبی 4 - که در مدل ترتیبی، نمایش جمله حساس به ترتیب نشانه هاست [1] [2]

  2. مدل ساختار درختی5- در مدل با ساختار درختی نمایش هر عبارت و جمله توسط عبارات کوچکتر مبتنی بر ساختار نحوی تشکیل می شود. [3] [4] نمایش جمله با استفاده از ساختار درختی بهتر از دو مورد مذکور دیگر است.

مدل های بازگشتی6 حساس به ترتیب، قادر نیستند که اطلاعات خیلی قدیمی را به یاد بیاورند بنا براین برای حل این مشکل مدل های درختی پیشنهاد شدند. مدل درختی ساختار نحوی جمله را نیز بررسی می کند پس برای بازنمایی عبارات مناسب تر است.
سوال مهمی که مطرح می شود این است که: بازنمایی جمله با مدل های درختی در مقایسه با مدل های بازگشتی چقدر بهتر است؟ در این مقاله، برای جواب دادن به این سوال، یک نوع مدل بازگشتی را با مدل درختی آن مقایسه خواهیم کرد.

۳. مروری بر ادبیات

  • شبکه های عصبی با حافظه‌ی بلند کوتاه- مدت 7 : یک نوع شبکه عصبی بازگشتی 8 است که از یک واحد محاسباتی پیچیده استفاده می کند و به اختصار به آن LSTM می گوییند.

  • مدل LSTM درختی 9 : یک مدل توسعه یافته از شبکه های عصبی با حافظه‌ی بلند کوتاه- مدت با ساختار درختی است. LSTM درختی مدل قدرتمندی است که توانایی یادگیری وابستگی های بلند مدت و به خاطر سپردن اطلاعات قدیمی را دارد و از دیگر مدل های موجود بهتر عمل می کند و به منظور انجام دو کار طراحی شده است:
    1- پیش بینی ارتباط معنایی10 بین دو جمله
    2- دسته بندی احساسات 11 (با استفاده از دادگان تحلیل احساسی دانشگاه استفورد 12 )

    شکل 1 - یکLSTM با ساختار درختی و فاکتور انشعاب دلخواه

  • درخت وابستگی13 : در ساخت درخت وابستگی هر جمله یک فعل اصلی دارد و اولین مرحله ی تجزیه ی جمله از فعل اصلی آغاز می شود. حال باید وابستگی عناصر جمله به فعل مشخص شود. کلمات دیگر موجود در جمله، یا به صورت مستقیم با فعل در ارتباطند و یا وابستگی غیر مستقیم دارند. ابتدا وابسته های مستقیم فعل و سپس وابسته های غیر مستقیم را مشخص می کنیم. هر کدام از گره های داخلی درخت وابستگی، هسته هستند که یک یا چند وابسته دارند وهسته ی مرکزی جمله نیز فعل اصلی جمله است.

شکل 2 - یک درخت وابستگی برای جمله ی The man driving the aircraft is speaking

  • درخت تجزیه ی ساختاری 14 : در تجزیه ی درخت ساختاری، گره های داخلی یک یا چند فرزند دارند و نقش کلمات در جمله را نشان می دهند. جمله به نهاد و گزار تقسیم می شود و ترتیب کلمات حفظ می شود. اگر هر بردار ورودی را یک کلمه در نظر بگیریم، هر کدام از گره های برگ یک کلمه از جمله را نشان می دهد.

شکل 3 - درخت با تجزیه ی ساختاری برای جمله ی شکل 3 - یک درخت وابستگی برای جمله ی The man driving the aircraft is speaking

  • تابع Softmx : یک تابع منطقی است که یک بردار k بعدی مثل z با مقادیر واقعی دلخواه را به یک بردار k بعدی (z)δ با مقادیر واقعی در رنج [0,1] برآورد می کند.

    δ : R^k \rightarrow [0,1] ^ k

    for j = 1, ... , k :

δ(z) _ j = e ^ {z_j} / { \sum_{k=1}^{K} e ^ {z_k} }

برای مثال:

  • اصطلاح َAdagrad 15 : یک الگوریتم بهینه سازی تعداد داده و پارامتر است که بر اساس شیب کار می کند. فرض کنید تعداد داده ها کم است و پارامترهای کمی در اختیار داریم، با این الگوریتم می توان با به روزرسانی مکرر داده ها و پارامترها میزان یادگیری را بیشتر کرد. با تنظیم شیب، داده ها و پارامترهایی که در متن تعدادشان زیاد است، کمتر به روزرسانی می شوند، و داده ها و پارامترهای کمیاب به روز رسانی بیشتری دارند.

  • اصطلاح dropout : به طور معمول، در شبکه های عصبی، هر یک از نورون های هر لایه با تمام نورون های لایه بعد اتصال برقرار می کنند و چون برای این اتصالات محاسبات زیادی انجام می شود، ممکن است شبکه دچار بیش برازش 16 شود. برای جلوگیری از این اتفاق، در ساختار شبکه ی عصبی می توان از لایه ای به نام dropout استفاده کرد تا بعضی اتصالات از بین رود و محاسبات این اتصالات صورت نگیرد. در شکل های زیر شبکه ی عصبی قبل و بعد از اعمال دور ریزی را مشاهده می کنید:

    شکل 4 - شبکه ی عصبی استاندارد

    شکل 5- چند نمونه شبکه ی عصبی با اعمال دور ریزی - dropout

۴. معماری شبکه

مشکل شبکه های RNN این بود که داده های خیلی قدیمی را به خاطر نمیسپارند. زیرا اجزای بردار گرادیان در طول یادگیری، می توانند رشد کنند یا حذف شوند. با منفجر شدن یا حذف گرادیانها، مدل RNN برای یادگیری وابستگی های قدیمی در یک جمله با مشکل مواجه می شود. اما شبکه های LSTM به گونه ایست که داده های خیلی قدیمی را نیز به خاطر می سپارند.

در این بخش انواع معماری شبکه های عصبی با حافظه‌ی بلند کوتاه-مدت شرح داده می شود.

  • مدل LSTM استاندارد: اگر عبارت و یا جمله ای طولانی باشد و از نظر معنایی به کلمات خیلی قبل تر وابسته باشد تا بتوان مفهوم کلی جمله را دریافت، LSTM به این وابستگی ها دسترسی خواهد داشت. ساختار LSTM دارای سلول حافظه است که این سلول حالتهای زمانهای خیلی قبل را در خود ذخیره می کند و با این کار مشکل دسترسی به وابستگیهای جملات طولانی حل می شود.
    شکل زیر معماری یک LSTM استاندارد را نشان می دهد.

شکل 6- معماری یک LSTM استاندارد -it : گیت ورودی - ct : سلول حافظه - ft : گیت فراموشی - ot : گیت خروجی - ht :حالت مخفی

اگر هدف بازنمایی یک یا چند جمله باشد، حالت مخفی h_t می تواند اطلاعات ترتیب واژه ها یا نشانه های دیده شده در آن جمله تا زمان t را در خود نگه دارد و فرمول آن به صورت زیر است:

h_t = tanh (Wx_t + Uh_{t-1} + b^ t )

گیت it با توجه به داشتن فیلتر σ کنترل می کند که چه مقادیری از هر واحد به روز شوند. خروجی لایه سیگمود17 عددی بین صفر و یک است که نشان می دهد چه مقدار از ورودی به خروجی ارسال می شود:

i_t = σ( W^ i x_t + U^ i h_{t-1} +b^ i )

پاک کردن اطلاعات از سلول حافظه 18 از طریق گیت فراموشی19 f_t صورت می گیرد. گیت فراموشی محدوده ای که می خواهیم از سلول حافظه فراموش شود را کنترل می کند. این گیت با توجه به مقادیر x_t و h_{t-1} یعنی ورودی فعلی و حالت مخفی قبلی، مقدار 0 یا 1 سلول حالت c_{t-1} را به خروجی می برد و سلول حافظه فعلی را شکل می دهد. مقدار یک یعنی مقدار c_{t-1} به طور کامل به c_t می رود و مقدار صفر یعنی اطلاعات سلول حافظه را به طور کامل پاک کن و هیچ مقداری را به c_t نبر. در فرمول سوم اگر مقدار f_t برابر یک باشد اطلاعات قبلی به سلول حافظه در زمان t اضافه می گردد و اگرf_t برابر صفر باشد اطلاعات قبلی فراموش می شوند.

f_t = σ ( W^ f x_t + U^ f h_{t-1}+b^f )

u_t = σ ( W^u x_t + U^ u h_{t-1} +b^u )
c_t= it * u_t + f_t * c_{t-1}

گیت خروجی ot کنترل می کند که چه بخشی از سلول حافظه داخلی به عنوان خروجی نمایش داده شود. در واقع لایه سیگمود فیلتری است که مشخص می کند چه بخشی از مقدار سلول حالت داخلی به خروجی برود.

o_t = σ( W^o x_t + U^o h_{t-1} + b^o)

سپس مقدار سلول حالت داخلی پس از به روز شدن را به لایه تانژانت هایپربولیک می دهیم و مقدار آنرا در خروجی تایع سیگمود در مرحله قبل ضرب می کنیم تا مشخص کنیم که چه بخش هایی به خروجی برود:

h_t = o_t * tanh (c_t)

ساختار LSTM میتواند اطلاعات جدیدی را به سلول حافظه اضافه کند و یا اطلاعات را از آن حذف کند. ورودی بردارهای it ,ft و ot بین [0,1] است.

دو ساختار معروف Lstm که در آزمایشات از آن ها استفاده کرده ایم :

شکل 7 - انواع LSTM

  • مدل LSTM دو طرفه20 :از دو لایه حافظه ی بلند کوتاه-مدت تشکیل شده که به صورت موازی اجرا می شوند.لایه ی اول جمله و لایه ی دوم معکوس جمله را به عنوان ورودی دریافت می کند.

شکل 8 - حافظه ی بلند کوتاه مدت دوطرفه - لایه ی نزدیک به بردار ورودی، عبارت و لایه ی دوم معکوس عبارت را به عنوان ورودی دریافت می کند.

  • مدل LSTM چند لایه 21 : در LSTM چند لایه، برای اینکه لایه های بالاتر بتوانند به وابستگی های طولانی مدت دسترسی داشته باشند، حالت مخفی لایه ی L، به عنوان ورودی در لایه ی L+1 دریافت می شود. [20][21]

شکل 9 - حالت مخفی لایه ی قبل، به عنوان ورودی در لایه ی بعدی دریافت می شود

ساختار درختی LSTM ها: ساختار زنجیره ای LSTM تنها می تواند اطلاعات متوالی را منتشر کند. که این یک محدودیت برای این معماری است. Child-Sum Tree-LSTM و LSTM درختی مرتب N تایی هر دو نوع قادرند که اطلاعات را از واحدهای چند فرزندی خود ترکیب کنند.
مدل LSTM درختی مانند LSTM استاندارد، دارای گیتهای ورودی و خروجی و سلول حافظه و حالت مخفی می باشد. تفاوتLSTM استاندارد و LSTM درختی در این است که در مدل درختی، بردارهای گیت شده و به روزرسانی سلول حافظه وابسته به حالتهای تعدادی فرزند است و همچنین برای اینکه بشود اطلاعات را از هر فرزند دلخواه ترکیب کرد، به جای یک گیت فراموشی واحد، گیتهای فراموشی برای k امین فرزند مورد نظر داریم. یعنی برای هر فرزند یک گیت فراموشی fjk داریم.

  • مدل Child-Sum Tree-LSTMs: مانند Lstm است با این تفاوت که \tilde {h_j} مجموع حالتهای مخفی فرزندان از اولین فرزند تا k امین فرزند می باشد و در بخش داخلی تعداد سلول حافظه و حالت مخفی و گیت فراموشی به تعداد فرزندان است.

    شکل 10- معماری مدل Child-Sum Tree-LSTMs

    شکل 11- معماری مدل Child-Sum Tree-LSTMs هنگام دریافت ورودی در گره ی j و با دو فرزند k1 و k2

    \tilde {h_j} = \sum_{ k\in{C_{(j)}} } h_k

i_j= σ( W^{(i)} x_j + U^{(i)} \tilde {h_j} +b^{(i)} )
f_{jk} = σ ( W^{(f)} x_j + U^{(f)} h_k +b^{(i)})
o_j = σ( W^{(o)} x_j + U^{(o)} \tilde {h_j} + b^{(o)})
u_j =tanh ( W^{(u)} x_j + U^{(u)} \tilde {h_j} + b^{(u)})
c_j = i_j \otime u_j + \sum_{ k\in{C_{(j)}} } f_{jk} \otime c_k
h_j = o_j \otime tanh (c_j)


  • مدل LSTM درختی مرتب N تایی 22 : اگر در یک LSTM درختی، فاکتور انشعاب بیشتر ازN باشد و یا اینکه فرزندان مرتب شده باشند، یعنی بتوان فرزندان را از 1 تا n ایندکس کرد، می توانیم از LSTM درختی مرتب N تایی استفاده کنیم. در این مدل ترتیب فرزندان مهم است.

شکل 12- معماری مدل LSTM درختی مرتب دو تایی هنگام دریافت ورودی در گره ی j و با دو فرزند k1 و k2

i_j= σ( W^{(i)} x_j + \sum_{l=1}^{N} U_l^{(i)} h{j_l} +b^{(i)} )
f_{jk} = σ ( W^{(f)} x_j + \sum_{l=1}^{N} U_l^{(f)} h{j_l}+b^{(f)})
o_j= σ( W^{(o)} x_j + \sum_{l=1}^{N} U_l^{(o)} h{j_l} +b^{(o)} )
u_j=tanh( W^{(u)} x_j + \sum_{l=1}^{N} U_l^{(u)} h{j_l} +b^{(u)} )
c_j = i_j \otime u_j + \sum_{ k\in{C_{(j)}} } f_{jl} \otime c_{jl}
h_j = o_j \otime tanh (c_j)

۵. کارهای مرتبط

  • از طریق بازنمایی و شناخت توزیع شده ی کلمات [5] [6] [7] [8] [9] [10] به کاربردهای مختلفی برای انواع وظایف NLP دست یافته اند.

  • علاقه مندی های قابل توجه ای در زمینه یادگیری بازنمایی و شناخت عبارات و جملات در کارهای [11] [12] [13] [14] وجود داشته است.

  • بازنمایی و شناخت توزیع شده ی متون طولانی تر مانند پاراگراف ها و اسناد. [15] [16]

  • رویکرد این مقاله بر روی شبکه های عصبی برگشتی ساخته شده است. [17] [18]

  • مدل Tree_RNNs که به منظور تحلیل تصاویر صحنه های طبیعی مورد استفاده قرار گرفته است ، [17] بازنمایی عبارت را از بردارهای کلمه می سازد. [18] و قطبیت معنایی و احساسی جملات را دسته بندی می کند. [19]

۶. آموزش شبکه

  • نمایش کلمات با استفاده از بردارهای Glove سیصد بعدی، مقدار دهی شده اند.

  • همچنین مدلهای ما با استفاده از Adagrad با نسبت آموزش 0.05 و یک mini-batch 23 به اندازه ی 25 آموزش داده شدند.

  • پارامترها با mini-batch به طول 10−4 تنظیم شده اند.

  • در دسته بندی احساسات از روش dropout با نرخ 0.5 استفاده شده. با اعمال dropout، دستاوردهای خاصی را در مورد وابستگی معنایی مشاهده نکردیم.


بردار نمایش کلمه ورودی نرخ update نمایش کلمه نرخ Adagrad نرخ dropout
رابطه ی معنایی جملات Glove 24 سیصد بعدی بدون به روز رسانی 0.05 بدون dropout
دسته بندی احساسی Glove 0.1 0.05 0.5

جدول 1 - نحوه ی آموزش

استفاده از softmax برای کلمات
تابع هزینه:log-likelihood
برای جمله ها:
زاویه ی بین خروجی ها و فاصله ی بین آنها

زاویه ی بین خروجی ها و فاصله ی بین آنها


۷. آزمایش های انجام شده و مجموعه ی داده ها


  • ابر پارامترها 25

  • با تغییر دادن ابعاد حالتهای پنهان، تعداد پارامترهای شبکه تغییر می کند که در جدول 2 به مقایسه ی این تغییرات می پردازیم:

معنا احساس
نوع LSTM ابعاد حافظه - تعداد پارامترهای تابع ترکیب ابعاد حافظه - تعداد پارامترهای تابع ترکیب
استاندارد 150 - 203400 168 - 315840
دو طرفه 150 - 203400 168 - 315840
دو لایه 108 - 203472 120 - 318720
دو طرفه ی دو لایه 108 - 203472 120 - 318720
درخت ساختاری 142 - 205190 150 - 316800
درخت وابستگی 150 - 203400 168 - 315840

جدول 2 - مقایسه ی تعداد پارامترهای انواع LSTM با تغییر دادن ابعاد حالتهای پنهان - برای این کار از مجموعه داده ی SemEval 2014, Task 1 استفاده شده است.
تابع ترکیب در هر گره، بردار نمایش آن گره است که از ترکیب بردارهای فرزندان آن گره ایجاد شده است.
با توجه به تعداد پارامترهای تابع ترکیب هر یک از مدل های موجود در جدول، می توان به هر یک از مدل ها حافظه ی مورد نیاز را اختصاص داد.

  • دسته بندی احساسات

مجموعه داده، دسته بندی و تعداد داده هایی که برای دسته بندی احساسات جملات مورد ارزیابی ما در این مقاله بکار رفته را در جدول زیر می بینیم:

مجموعه داده دسته بندی کلاس های بکار رفته تعداد داده های آموزش تعداد داده های مشتق شده تعداد داده های تست
دادگان تحلیل احساسی دانشگاه استنفورد دودویی مثبت و منفی 6920 872 1821
دادگان تحلیل احساسی دانشگاه استنفورد fine-grained بسیار منفی، منفی، خنثی، مثبت و خیلی مثبت 8544 1101 2210

جدول 3 - تحلیل احساسی جملات نمونه برداری شده از مرور و بازدید فیلم ها - برای دسته بندی احساسی از دادگان تحلیل احساسی دانشگاه استنفورد استفاده کردیم. روی این مجموعه داده دو کار باید صورت گرفته:دسته بندی دودویی جملات و دسته بندی fine-grained . ( از آنجا که جملات خنثی منسوخ شده اند، مثالهای کمی برای این مورد وجود دارد.)


  • وابستگی معنایی (Semantic Relatedness)

برای هر جفت جمله ، وظیفه وابستگی معنایی اینست که پیش بینی کند دو جمله در معنا و از نظر مفهومی چه ارتباطی با هم دارند به گونه ای که سعی کند مثل یک انسان ارتباط بین دو جمله در معنا را متوجه شود. جدول زیر مجموعه داده و تعداد داده های مورد استفاده برای تحلیلی وابستگی جملات را نشان می دهد:

مجموعه داده تعداد داده های آموزش تعداد داده های توسعه یافته تعداد داده های تست
26SICK 4500 500 4927

جدول 4 - تشکیل 9927 جفت جمله برای ارزیابی وابستگی معنایی بین هر جفت جمله. هر جفت جمله با یک امتیاز و رتبه وابستگی [y ∈ [1, 5 علامت گذاری شده. عدد یک در این بازه نشان می دهد که دو جمله کاملا غیر مرتبط هستند و عدد پنج نشان می دهد که دو جمله بسیار با هم مرتبط هستند. هر برچسب میانگین ده رتبه بندی اختصاص داده شده به آگهی دهندگان مختلف انسان است. برای شبکه پیش بینی مشابه ما از یک لایه مخفی با سایر 50 استفاده می کنیم.


۸. نتایج

  • دسته بندی احساسات
    نتایج حاصل از این آزمایشات در جدول 5 گردآوری شده.

روش fine-grained دودویی
RAE 43.2 82.4
MV-RNN 44.2 82.9
RNTN 45.7 85.4
DCNN 48.5 86.8
Paragraph-Vec 48.7 87.8
CNN-non-static 48.0 87.2
CNN-multichannel 47.4 88.1
DRNN 49.8 86.6
LSTM (1.1)46.4 (0.6)84.9
Bidirectional LSTM (1.0)49.1 (0.5)87.5
Two layer LSTM (1.3)46.0 (0.6)86.3
Two layer Bidirectional LSTM (1.0)48.5 (1.0)87.2
Dependency Tree-LSTM (0.4)48.4 (0.4)85.7
Constituency Tree-LSTM :
randomly initialized vectors (0.6)43.9 (0.5)82.0
Glove vectors, fixed (0.4)49.7 (0.8)82.0
Glove vectors, tuned (0.5)51.0 (0.3)88.0

جدول 5 - دقت مجموعه ی ارزیابی بر روی دادگان تحلیل احساسی دانشگاه استفورد. دسته بندی fine-grained بر اساس پنج کلاس بسیار منفی، منفی، خنثی، مثبت و خیلی مثبت و دسته بندی دودویی بر اساس دو کلاس مثبت و منفی است.

با توجه به نتایجی که بدست آمده، تحلیل احساسات با دسته بندی دودویی دقت بیشتری از دسته بندی fine-grained داشته و همچنین lstm درختی با تجزیه ی ساختاری زمانیکه برای نمایش کلمه ی ورودی از بردارهای Glove استفاده شود،دقت بیشتری نسبت به معماری های دیگر دارد. به ویژه اگر بردارهای Glove را تنظیم کرده باشیم.

علت تفاوت عملکرد lstm درختی با تجزیه ی ساختاری و lstm درختی با تجزیه ی وابستگی به دو دلیل است:
1- مجموعه داده ای که جهت آموزش در درخت lstm وابستگی استفاده شده ( تعداد داده ها حدود 150k) نسبت به مجموعه داده ی درخت lstm ساختاری ( تعداد داده ها حدود 319k) کمتر بوده .
2 - عدم توانایی در مطابقت دادن حدود 9% از گره های وابستگی با محدوده ای از مجموعه آموزش.

به روز رسانی بازنمایی کلمات در طول آموزش، بر روی عملکرد داده های دسته بندی شده با fine-grained و داده های دسته بندی شده ی باینری تاثیر گذار است و موجب افزایش قابل ملاحظه ی عملکرد داده های fine-grained و افزایش جزئی عملکرد داده های باینری شده می شود.

  • روابط معنایی
    در جدول 6 چند روش Lstm و غیر Lstm از نظر وابستگی معنایی با هم مقایسه شده اند:

روش Pearson’s r Spearman’s MSE
Illinois-LH 0.7993 0.7538 0.3692
UNAL-NLP 0.8070 0.7489 0.3550
Meaning Factory 0.8268 0.7721 0.3224
ECNU 0.8414 - -
Mean vectors (0.0013) 0.7577 (0.0027) 0.6738 (0.0090) 0.4557
DT-RNN (0.0070) 0.7923 (0.0071) 0.7319 (0.0137)0.3822
SDT-RNN (0.0042) 0.7900 (0.0076) 0.7304 (0.0074)0.3848
LSTM (0.0031) 0.8528 (0.0059) 0.7911 (0.0092)0.2831
Bidirectional LSTM (0.0028) 0.8567 (0.0053) 0.7966 (0.0063)0.2736
Tow layer LSTM (0.0066)0.8515 (0.0088)0.7896 (0.0150) 0.2838
Tow layer Bidirectional LSTM (0.0014) 0.8558 (0.0018) 0.7965 (0.0020)0.2762
Constituency Tree-LSTM (0.0038)0.8582 (0.0053) 0.7966 (0.0108)0.2734
Dependency Tree-LSTM (0.0030) 0.8676 (0.0042) 0.8083 (0.0052) 0.2532

جدول 6 - نتایج مجموعه ی ارزیابی روی روابط معنایی SICK - در اینجا از سه روش برای معیار ارزیابی استفاده شده، روش Pearson’s r ، Spearman’s و خطای میانگین مربعات 27 (MSE) .

دو معیار Pearson’s r و Spearman’s، وابستگی کلمات در مقابل ارزیابی های انسان از روابط معنایی را اندازه گیری می کند و معیار سوم، خطای اندازه گیری را نشان می دهد.
مدلهای DT-RNN و SDT-RNN مدلهایی از شبکه بازگشتی عصبی هستند که از درخت وابستگی برای نمایش عبارت استفاده می کنند و بر روی نهاد و گزاره جمله تمرکز دارند. SDT-RNN یک مدل توسعه یافته از DT-RNN است که برای هر رابطه ی وابستگی از یک بردار انتقال جداگانه استفاده می کند؛ مدلهای یک تا پنج جدول در 2014 SemEval ارائه شده اند.
در اینجا، هر دو نوع درخت وابستگی و ساختاری از ریشه ساخته می شوند و نظارت را در ریشه درخت دریافت می کنند. اما در دسته بندی معنایی نظارت از گره های داخلی نیز دریافت می شد. از آنجایی که در درخت وابستگی هر گره، کلمه ی هد را نشان می دهد و در درخت ساختاری تنها برگ ها به عنوان کلمه ی ورودی دریافت می شوند، با مقایسه ی اعداد جدول، می بینیم که درخت Lstm وابستگی مفیدتر از درخت Lstm ساختاری است. زیرا مسیر کلمه های ورودی به ریشه برای انجام نظارت، در درخت وابستگی از مسیر کلمات ورودی درخت ساختاری که از برگ تا ریشه است کوتاهتر است.



۹. بحث و تجزیه و تحلیل کیفی

در جدول 7، دو ستون از جملات را داریم که ستون سمت چپ، بررسی جملات با درخت Lstm وابستگی و ستون سمت راست بررسی جملا ت بر اساس شباهت بردار معنی کلمه است. این جمله ها، از مجموعه آموزش SICK انتخاب شده اند. جمله ی انگلیسی a boy is waving at some young runners from the ocean را در نظر بگیرید. در تجزیه وابستگی این جمله، کلمه ی ocean وابستگی غیر مستقیم از ریشه یعنی waving دارد و دومین دورترین از ریشه است. و این نشان می دهد که مدل Lstm درختی قادر به حفظ اطلاعات قدیمی و دور می باشد. و همین طور مدل درختی این اجازه را می دهد که بتوانیم جملات طولانی را از نظر وابستگی بررسی کنیم. دو جمله ی "دو مرد گیتار می زنند" و "دو مرد در مقابل جمعیت می رقصند و آواز می خوانند " را در نظر بگیرید. تجزیه ی وابستگی می تواندعبارت "گیتار زدن" را با عبارت "رقصیدن و آواز خواندن در جلوی جمعیت" مرتبط کند. در صورتی که این دو عبارت نشانه28 ی مشترکی با هم ندارند.

Ranking by mean word vector cosine similarity Score Ranking by Dependency Tree-LSTM model Score
a woman is slicing potatoes a woman is slicing potatoes
a woman is cutting potatoes 0.96 a woman is cutting potatoes 4.82
a woman is slicing herbs 0.92 potatoes are being sliced by a woman 4.70
a woman is slicing tofu 0.92 tofu is being sliced by a woman 4.39
**a boy is waving at some young runners from the ocean a boy is waving at some young runners from the ocean
a man and a boy are standing at the bottom of some stairs ,which are outdoors 0.92 a group of men is playing with a ball on the beach 3.79
a group of children in uniforms is standing at a gate and one is kissing the mother 0.90 a young boy wearing a red swimsuit is jumping out of a blue kiddies pool 3.37
a group of children in uniforms is standing at a gate and there is no one kissing the mother 0.90 the man is tossing a kid into the swimming pool that is near the ocean 3.19
two men are playing guitar two men are playing guitar
some men are playing rugby 0.88 the man is singing and playing the guitar 4.08
two men are talking 0.87 the man is opening the guitar for donations and plays with the case 4.01
two dogs are playing with each other 0.87 two men are dancing and singing in front of a crowd 4.00

جدول 7 - ستون سمت چپ، بررسی جملات با درخت Lstm وابستگی و ستون سمت راست بررسی جملات از نظر تشابه معنایی بردار کلمات در جمله می باشد.

۱۰. تاثیر طول جمله

در شکل 13 و 14، دقت انواع Lstm زمانیکه طول کلمه را تغییر میدهیم با هم مقایسه شده است. خط افقی طول کلمه و خط عمودی دقت بر اساس معیار مرتبط با کار مورد نظر را نشان می دهد. به شکل 14 نگاه کنید، در جملات به طول 13 تا 15، Lstm درختی مبتنی بر وابستگی، ارتباط معنایی عبارات را با یک اختلاف خیلی خوب نسبت به مدل Lstm ترتیبی متوجه شده و دقت بیشتری دارد؛ با توجه به شکل مشاهده می کنیم که چه در جملات کوتاه و چه در جملات طولانی تر، Lstm درختی دقت بیشتری در بازنمایی عبارات نسبت به Lstm استاندارد و Lstm دو طرفه دارد.

شکل 13 - محور عمودی دقت بر اساس دسته بندی fine-grained احساسات و محور افقی طول کلمه را نشان می دهد.

شکل 14 - محور عمودی دقت بر اساس معیار Pearson’s r ( معیاری برای اندازه گیری وابستگی کلمات است) و محور افقی طول کلمه را نشان می دهد.

۱۱. پیاده سازی

برای پیاده‌سازی این پروژه از ابزار پای تورچ 29 استفاده می کنیم، کد پیاده‌سازی آن نیز از طریق این پیوند در دسترس همگان قرار دارد که در ادامه به طور مختصر به توضیح پیاده سازی آن خواهیم پرداخت.

  • فایل main.py که روند کلی پیاده سازی یکی از مدل های Lstm که توضیح دادیم است و کتابخانه ها و توابع مورد نیاز فراخوانی می شوند. آموزش شبکه صورت می گیرد، مجموعه ی داده و داده های آموزش، داده های توسعه یافته و داده های تست برای تحلیل وابستگی جملات مشخص می شوند. جملات توسط معیارهای سنجش وابستگی جملات مانند معیار Pearson’s r و خطای میانگین مربعات ارزیابی می شوند.

  • فایل model.py مدل Child-Sum Tree Lstm را معرفی می کند که افزونه ی nn را به عنوان ورودی می گیرد. در این فایل، گره های فرزند گره ی جاری مشخص می شوند و به تعداد فرزندان، حالت مخفی و سلول حافظه ایجاد می شود. بر روی گیت های ورودی و خروجی فیلتر سیگموید و بر روی گیت به روز رسانی فیلتر tanh اعمال می شود و ... . دو تابع مهم از این فایل که توضیحات گفته شده را شامل می شود در کد زیر می بینیم:

  def node_forward(self, inputs, child_c, child_h):
  child_h_sum = torch.sum(child_h, dim=0, keepdim=True)
  iou = self.ioux(inputs) + self.iouh(child_h_sum)
  i, o, u = torch.split(iou, iou.size(1) // 3, dim=1)
  i, o, u = F.sigmoid(i), F.sigmoid(o), F.tanh(u)
  f = F.sigmoid(
  self.fh(child_h) +
  self.fx(inputs).repeat(len(child_h), 1)
       )
  fc = torch.mul(f, child_c)
  c = torch.mul(i, u) + torch.sum(fc, dim=0, keepdim=True)
  h = torch.mul(o, F.tanh(c))
  return c, h

  def forward(self, tree, inputs):
 _ = [self.forward(tree.children[idx], inputs) for idx in    range(tree.num_children)]
if tree.num_children == 0: 
  child_c = Var(inputs[0].data.new(1, self.mem_dim).fill_(0.))
  child_h = Var(inputs[0].data.new(1, self.mem_dim).fill_(0.))
else:
  child_c, child_h = zip(* map(lambda x: x.state, tree.children))
  child_c, child_h = torch.cat(child_c, dim=0), torch.cat(child_h, dim=0)
  return tree.state
  • در فایل trainer، توابع کمکی برای تست کردن و آموزش دادگان ایجاد می شود و این توابع در فایل main.py فراخوانی می شوند تا دادگان مورد نظر تست و یا آموزش داده شوند. تایع کمکی آموزش در کد زیر آمده است

def train(self, dataset):
self.model.train()
self.optimizer.zero_grad()
indices = torch.randperm(len(dataset))
for idx in tqdm(range(len(dataset)),desc='Training epoch'+str(self.epoch + 1) + ''):
ltree, lsent, rtree, rsent, label = dataset[indices[idx]]
linput, rinput = Var(lsent), Var(rsent)
target = Var(map_label_to_target(label, dataset.num_classes))
if self.args.cuda:
linput, rinput = linput.cuda(), rinput.cuda()
target = target.cuda()
output = self.model(ltree, linput, rtree, rinput)
loss = self.criterion(output, target)
total_loss += loss.data[0]
loss.backward()
if idx % self.args.batchsize == 0 and idx > 0:
self.optimizer.step()
self.optimizer.zero_grad()
self.epoch += 1
return total_loss / len(dataset)
  • فایل Constants.py به هر برچسب یک مقدار نسبت می دهد و نماد برچسب کلمات را تعریف می کند. برای مثال کلمات ناشناخته که در مجموعه ی آموزش نیستند اما در مجموعه ی تست وجود دارند را با عدد 1 مقدار دهی میکند و به صورت <unk> نمایش می دهد.

  PAD = 0 , UNK = 1 , BOS = 2 , EOS = 3
  PAD_WORD = '<blank>'
  UNK_WORD = '<unk>'
  BOS_WORD = '<s>'
  EOS_WORD = '</s>'
  • فایل dataset.py برای مجموعه ی دادگان SICK کلاس SICKDataset ایجاد می کند. جمله ی اول و جمله ی دوم از این مجموعه داده را می گیرد. و با lsentences و rsentences نام گذاری می کند.

   self.lsentences = self.read_sentences(os.path.join(path, 'a.toks'))
   self.rsentences = self.read_sentences(os.path.join(path, 'b.toks'))

برای هر جمله یک درخت ایجاد می کند تا از طریق درخت حاصل بتوان میزان وابستگی معنایی بین دو جمله را ارزیابی کرد که گره ی اول جمله ی اول ltrees و گره ی اول جمله ی دوم rtrees می باشد:

    self.ltrees = self.read_trees(os.path.join(path, 'a.parents'))
    self.rtrees = self.read_trees(os.path.join(path, 'b.parents'))
  • در فایل utils.py تابع load-word.vectors بردارهای Glove و کلمات ورودی را برای تحلیل احساسی کلمات بارگذاری می کند. با دستور torch.zero ، مدل Lstm درختی برای تحلیل احساسی می تواند اعمال شود. همچنین برای بردارهای کلمه، tensor ایجاد می شود.

  • فایل metrics.py تعریف معیارهای ارزیابی نتایج وابستگی معنایی بین دو جمله است. برای مثال ارزیابی وابستگی جملات با استفاده از خطای میانگین مربعات به اینگونه است که اختلاف معنایی کلمه های پیش شرط و کلمه های که برچسب خورده محاسبه و به توان دو می رسد، هر چه میزان عدد بدست آمده کمتر باشد، وابستگی معنایی بین دو جمله بیشتر است:

 def mse(self, predictions, labels):
 x = deepcopy(predictions)
 y = deepcopy(labels)
 return torch.mean((x - y)^ 2)
  • فایل tree.py گره ی جاری را به عنوان گره ی والد در نظر می گیرد، اندازه و عمق فرزندان گره ی والد را مشخص می کند. منظور از اندازه تعداد فرزندان یک گره به علاوه ی خود آن گره است. پس اندازه ی گره ای که برگ است یعنی گره ای که فرزندی ندارد، برابر با 1 است و عمق آن 0 است. کد تابع size به صورت زیر است:

 def size(self):
 if getattr(self, '_size'):
 return self._size
 count = 1
 for i in range(self.num_children):
 count += self.children[i].size()
 self._size = count
 return self._size

همچنین لینک پیاده سازی اصلی مقاله نیز در این پیوند می باشد.

۱۲. جمع بندی

در این مقاله توسعه LSTM استاندارد به توپولوژی شبکه ای با ساختار درختی معرفی شد.
ساختار LSTM درختی می تواند به درختان با فاکتور انشعاب دلخواه اعمال شود. تاثیر معماری LSTM درختی را که بهتر از تمام سیستم های موجود عمل می کند بر روی دو مورد وابستگی معنایی و دسته بندی احساسات بررسی شد.
همچنین نشان داده شد که مدل LSTM با ساختار درختی برای انجام وظایف بهتر از مشابه خودشان در مدل ترتیبی عمل می کنند.
نتایج این مقاله خط مشی هایی را برای کاربر در تولید روش نمایش جملات پیشنهاد می دهد.

۱۳. ایده ها و کارهای آینده

  • از مدل های lstm ارائه شده در این مقاله می توان برای ارزیابی میزان وابستگی جملات بین مقالات مختلف بهره برد تا مقالات مرتبط به هم را از مقالات نا مرتبط به یکدیگر تشخیص داد و با انجام ارزیابی می توان سنجید که در این زمینه تا چه حد قدرتمند تر از مدل های دیگر عمل می کند.

  • همچنین می توان دادگان این مقاله را تغییر داد و حتی این دادگان را از زبان های دیگر انتخاب کرد و میزان موفقیت مدل از لحاظ وابستگی معنایی جملات و تحلیل احساسی کلمات را برای زبان های دیگر که تفاوتهای زیادی می توانند داشته باشند بررسی نمود. مثلا می توان دادگان را نظرات مشتریان و بازدید کنندگان سایت دیجی کالا و یا شبکه های اجتماعی در نظر گرفت و بازخوردهای بازدیدکنندگان را مورد تحلیل احساسی قرار داد تا بتوان دریافت که مدلهای ارائه شده در این مقاله تا چه حد می تواند به کیفیت بهتر محصولات و فروش بیشتر کمک کند.

  • می دانیم که از Lstm در بازشناسی خودکار متون 30 نیز استفاده می شود. مدل های ارائه شده در این مقاله ممکن است بتواند میزان بازشناسی ارقام و حروف دست نویس را افزایش دهد و منجر به ساخت برنامه31 های مفید برای تشخیص متون دست نویس شود.

۱۴. مراجع

[1] Elman, Jeffrey L. 1990. Finding structure in time. Cognitive science 14(2):179–211.
[2] Mikolov, Toma´s. 2012. ˇ Statistical Language Models Based on Neural Networks. Ph.D. thesis, Brno University of Technology.
[3] Goller, Christoph and Andreas Kuchler. 1996. Learning task-dependent distributed representations by backpropagation through structure. In IEEE International Conference on Neural Networks.
[4] Socher, Richard, Cliff C Lin, Chris Manning, and Andrew Y Ng. 2011. Parsing natural scenes and natural language with recursive neural networks. In Proceedings of the 28th International Conference on Machine Learning (ICML-11).
[5] Rumelhart, David E, Geoffrey E Hinton, and Ronald J Williams. 1988. Learning representations by back-propagating errors. Cognitive modeling 5.
[6] Collobert, Ronan, Jason Weston, Leon Bottou, ´Michael Karlen, Koray Kavukcuoglu, and Pavel Kuksa. 2011. Natural language processing (almost) from scratch. The Journal of Machine Learning Research 12:2493–2537
[7] Turian, Joseph, Lev Ratinov, and Yoshua Bengio. 2010. Word representations: A simple and general method for semi-supervised learning. In Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics.
[8] Huang, Eric H., Richard Socher, Christopher D. Manning, and Andrew Y. Ng. 2012. Improving word representations via global context and multiple word prototypes. In Annual Meeting of the Association for Computational Linguistics (ACL).
[9] Mikolov, Tomas, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. 2013. Distributed representations of words and phrases and their compositionality. In Advances in Neural Information Processing Systems.
[10] Pennington, Jeffrey, Richard Socher, and Christopher D Manning. 2014. Glove: Global vectors for word representation. In Proceedings of the 2014 Conference on Empiricial Methods in Natural Language Processing (EMNLP).
[11] Mitchell, Jeff and Mirella Lapata. 2010. Composition in distributional models of semantics. Cognitive science 34(8):1388 1429.
[12] Yessenalina, Ainur and Claire Cardie. 2011. Compositional matrix-space models for sentiment analysis. In Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing (EMNLP).
[13] Grefenstette, Edward, Georgiana Dinu, YaoZhong Zhang, Mehrnoosh Sadrzadeh, and Marco Baroni. 2013. Multi-step regression learning for compositional distributional semantics. In Proceedings of the 10th International Conference on Computational Semantics.
[14] Srivastava, Nitish, Ruslan Salakhutdinov, and Geoffrey Hinton. 2013. Modeling documents with a Deep Boltzmann Machine. In Uncertainty in Artificial Intelligence.
[15] Le, Quoc and Tomas Mikolov. 2014. Distributed representations of sentences and documents. In Proceedings of the 31st International Conference on Machine Learning (ICML-14).
[16] Goller, Christoph and Andreas Kuchler. 1996. Learning task-dependent distributed representations by backpropagation through structure. In IEEE International Conference on Neural Networks.
[17] Socher, Richard, Brody Huval, Christopher D Manning, and Andrew Y Ng. 2012. Semantic compositionality through recursive matrixvector spaces. In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP).
[18] Socher, Richard, Alex Perelygin, Jean Y Wu, Jason Chuang, Christopher D Manning, Andrew Y Ng, and Christopher Potts. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing (EMNLP).
[19] Socher, Richard, Alex Perelygin, Jean Y Wu, Jason Chuang, Christopher D Manning, Andrew Y Ng, and Christopher Potts. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing (EMNLP).
[20] Graves, Alex, Navdeep Jaitly, and A-R Mohamed. 2013. Hybrid speech recognition with deep
bidirectional LSTM. In IEEE Workshop on Automatic Speech Recognition and Understanding (ASRU).
[21] Zaremba, Wojciech and Ilya Sutskever. 2014. Learning to execute. arXiv preprint arXiv:1410.4615 .

۱۵. پا نوشت


  1. Representation

  2. Order-Sensitive

  3. Bag-Of-Words

  4. Sequence

  5. Tree-Structured

  6. Recursive

  7. Long Short-Term Memory Networks

  8. (RNN)-Recursive Neural Networks

  9. Tree-Lstm

  10. Semantic Relatedness

  11. Sentiment Classification

  12. Stanford Sentiment Treebank

  13. Dependency Tree

  14. Constituency Tree

  15. Adapte Gradient

  16. overfitting

  17. Sigmond

  18. Memory Cell

  19. Forfet Gate

  20. Bidirectional LSTM

  21. Multilayer LSTM

  22. N-ary Tree-LSTM

  23. شماره سریال کوچک

  24. Global vectors for word representation

  25. Hyperparameters

  26. Sentences Involving Compositional Knowledge

  27. Mean Squared Error

  28. Token

  29. Pytorch

  30. (OCR)Optical Character Recognition

  31. Application