Using Millions of Emoji Occurrences to Learn Any-Domain Representations for Detecting Sentiment, Emotion and Sarcasm

تغییرات پروژه از تاریخ 1396/11/21 تا حالا
** یادگیری بازنمایی‌های هر حوزه‌ای به منظور تشخیص معنا، احساس و لحن با استفاده از میلیون‌ها رخداد ایموجی‌ها **


----------


[لینک مقاله](http://aclweb.org/anthology/D17-1169)
[لینک پیاده‌سازی](https://github.com/bfelbo/DeepMoji)
[اسلاید ارائه](https://www.dropbox.com/s/fauix5mrb3sz1px/Emojis_Sentiment_Emotion_Sarcasm.pdf?dl=0)

----------

# ** مقدمه **

تا به امروز کارهای بسیار زیادی در جهت تحلیل معنایی[^Sentiment analysis]  متون صورت گرفته‌است. موضوع مهمی که مجموعه‌ی متنوعی از کارهای پردازش زبان‌ طبیعی[^Natural Language Processing] را به خود درگیر می‌کند کمبود داده‌های حاوی اطلاعات مناسب و خودکار است. چرا که عمدتا داده‌ها به انواع یادداشت‌گذاری شده و برچسب‌خورده‌ی دستی محدود شده‌اند. بنابراین به منظور تحلیل معنایی رسانه‌های اجتماعی و سایر کارهای ممکن در این حوزه، **نیازمند مدل‌های قوی‌تری** هستیم که بتوانند **_بازنمایی نوشتار_** را به نحو بهتری مدل کرده و یاد بگیرند. از جدیدترین روش‌هایی که برای آموزش مدل‌ها در تحلیل معنایی متن به کار گرفته می‌شود استفاده از شکلک‌های مثبت و منفی است.[1] [2] هم‌چنین از هشتگ‌هایی نظیر #خشم، #لذت، #حالت‌تهوع یا #اوه برای تحلیل احساسی و دسته‌بندی متون استفاده می‌شود.[3]
برای آنکه بتوانیم بازنمایی‌های پیچیده‌تری از محتوای احساسی در متن را یاد بگیریم، می‌توان از بسط‌دادن روش نظارت از راه دور[^Distant supervision] به یک مجموعه‌ی بزرگتری از برچسب‌های شلوغ [^Noisy labels] بهره برد که در نهایت منجر به افزایش کارایی بر معیار‌های تشخیص معنا، احساس و لحن خواهد شد. در این‌جا برچسب‌های شلوغ با ایموجی‌ها به منظور کمک برای فهم معنا، احساس و لحن در نظر گرفته شده‌اند که روش دقیق عملکرد را در آینده توضیح خواهیم داد. اما پس از یادگیری مدل برای ارزیابی آن، جملاتی به عنوان ورودی داده شده و پنج محتمل‌ترین ایموجی‌ها بر اساس ورودی برای آن متن به عنوان خروجی نمایش داده می‌شود.(جدول 1)
![جدول 1 - رتبه‌دهی به جملات بر اساس پنج محتمل‌ترین ایموجی‌ها](https://boute.s3.amazonaws.com/287-ex1.png)
البته باید در نظر داشت که ایموجی‌ها همیشه به عنوان برچسب‌گذاری مستقیم احساس به کار نمی‌روند؛ بلکه می‌توانند برای رفع ابهام یک جمله‌ی مبهم یا متمم کردن یک متن منفی به کار آیند. برای نمونه در نظر بگیرید که یک توییت با این مفهوم : "زندگی به طرز عجیبی داره سخت می‌گذره" از یک هشتگ مانند "#جالب"  استفاده نماید. پر واضح است که هشتگ استفاده شده به منظور متمم کردن توییت با معنای منفی به کار رفته است.[4]
با تمامی این اوصاف، این مقاله نشان می‌دهد که ایموجی‌ها می‌توانند برای دسته‌بندی محتوای احساسی متن‌ها در بسیاری از موارد به دقت کارا باشند. مثلا مدل DeepMoji می‌تواند استفاده‌ی متعدد کلمه‌ی “love” را به خوبی اصطلاحی مانند "this is **_the shit_**" به عنوان یک **_جمله‌ی مثبت_**  مورد بررسی قراردهد.
**مسئله‌ی مهم بعدی این است که** بتوانیم با **_انتقال دانش یادگرفته‌شده_** به کارهای هدف با استفاده از یک روش جدید تنظیم دقیق [^Fine-Tuning] که لایه-خبره [^Layer-Wise] است فرآیند تشخیص معنا، احساس و لحن را تسریع کرده و کارآمد نماییم.

# **کارهای مرتبط**

ایده‌ای که در این مقاله مورد توضیح قرار گرفته‌است، بهره‌وری از برچسب‌های شلوغ به منظوری رده‌بندی[^Classifying] گزاره‌های احساسی بوده و یک ایده‌ی جدید نیست.[5][6] پیش از این، از شکلک‌های باینری مانند: [:( ، :) ، :|] استفاده می‌شده‌است که بعدتر هشتگ‌ها و ایموجی‌ها مورد اقبال قرار گرفتند. آن‌چه که مشخص است این است که تعیین رده‌های مختلف برای گزاره‌های احساسی، کاملا بر مبنای نظریه‌های احساسی هم‌چون شش احساس ابتدایی اکمان[^Ekman] و هشت احساس ابتدایی پلاچیک[^Plutchik] صورت پذیرفته‌است.[3][7] به نحوی که چنین **_رده‌بندی‌هایی دستی_** نیازمند فهم محتوای احساسی هر گزاره‌ی دلخواه بوده و **بنابراین**، نه تنها کاری **دشوار** بوده، بلکه در صورت وجود ترکیب‌های پیچیده‌تری از محتواهای احساسی کار بسیار **زمان‌گیر** خواهد بود. هم‌چنین ممکن است که در انتخاب یک رده‌، مدل دچار تفسیر اشتباه شده و جزییات مهمی نادیده گرفته‌شود. روشی که در این مقاله بررسی می‌شود بدون داشتن فهم قبلی از مجموعه‌ی متن و با استفاده‌ی گسترده‌ای از 64 نوع ایموجی (شکل 1) سعی در یادگیری مفاهیم احساسی متون دارد.
![شکل 1 - خوشه‌بندی سلسله‌مراتبی پیش‌بینی‌های مدل DeepMoji بر روی دسته‌بندی‌های مجموعه‌ی تست](https://boute.s3.amazonaws.com/287-fig3.png)
البته به جز راه ارائه شده در این‌جا، می‌توان برای یادگیری تفسیر خودکار محتوای احساسی یک ایموجی از **جدول رسمی ایموجی‌ها** که نگاشتی مستقیم میان هر ایموجی و کلمات توصیف کننده‌ِی آن است، بهره‌برد.[8] اما چنین روشی، از دو ناحیه موجب بروز محدودیت خواهد شد.
1. این جدول در زمان تست مدل نیز مورد نیاز بوده در حالی که در بسیاری از دامنه‌های مورد بررسی با استفاده‌ی محدود یا عدم استفاده از ایموجی‌ها رو به رو هستیم.
2. جدول ایموجی‌ها روند تغییر معنایی پویای ایموجی‌ها را دنبال نمی‌کند و نمی‌تواند اطلاعات کافی را از معنای یک ایموجی پس از گذر زمان به دست دهد. به عنوان مثال ممکن است معنای خنده‌ی ساده در یک ایموجی به عنوان ناراحتی در اثر استفاده‌های مکرر تلقی شود در حالی که جدول تعریف معنایی ایموجی‌ها، این تغییر را نمی‌داند و آن را هم‌چنان یک خنده‌ی آرام تعریف می‌کند.
با موارد ذکر شده از کارهای صورت گرفته و نیازمندی‌های بیان شده در بخش مقدمه، به این مهم می‌رسیم که بایستی دانش تفسیر محتوای متون بر اساس شکلک‌ها، از راه‌های مختلفی منتقل شده تا فرآیند یادگیری موثر و راحت‌تر شود. حال برای آنکه بتوانیم حین یادگیری بر روی چندین مجموعه داده‌ی متعدد، یادگیری چندگانه را به گونه‌ای داشته باشیم که **نه تنها** نیازمند دسترسی به مجموعه داده‌ی ایموجی‌ها در هربار تنظیم شدن رده‌بند برای یک کار هدف جدید نباشیم، **بلکه** با مشکلات عدم دسترسی به مجموعه داده‌ها از لحاظ مقررات دسترسی به داده‌ها نیز دست‌و‌پنجه نرم نکنیم. هم‌چنین، مشکلاتی که در خصوص نگهداری داده‌ها، به عنوان مجموعه داده‌ای که برای این تحقیق استفاده شده‌است که شامل صدهامیلیون از توییت‌هاست، وجود دارد. (جدول 2) **در نتیجه**، در بخش روش کار، چگونگی یک انتقال آموزش را توضیح داده که نیازمند دسترسی به مجموعه داده‌ی اولیه نبوده و تنها نیازمند دسترسی به رده‌بند از پیش آموزش دیده باشد.[9]
![جدول 2 - تعداد توییت‌ها در هر مجموعه داده‌ی پیش‌ آموزش که متناظر با هر ایموجی در میلیون است](https://boute.s3.amazonaws.com/287-tb2.png)

# **مرور ادبیات، مقدمات و پیش‌نیاز‌ها**
در بخش روش‌، به توضیح آنچه که لازم است خواهیم پرداخت ولیکن پیش از آن بهتر است که با چند مفهوم مهم در این مقاله آشنا شویم:

+ پیش‌آموزش [^Pretraining] : آماده‌سازی وزن‌دهی‌های شبکه‌ی یادگیری بر مبنای مجموعه داده‌ی اولیه، به منظور استفاده برای یادگیری سایر مجموعه داده‌ها با تغییر و تنظیم وزن‌دهی‌ها.
+ شبکه‌های عصبی با حافظه‌ی بلند کوتاه مدت[^Long Short-Term Memory] : شبکه‌های یادگیری با حافظه‌ی بلند کوتاه مدت هستند که به شکل بازخوردی سعی می‌کنند تا اثر ورودی را در یک زمان خاص در طول زمان‌های بعدی منتقل کرده و به شکل حافظه دار عمل نمایند.
+ مکانیزم توجه  [^ Attention mechanism] : روشی که در شبکه‌های عصبی بازخوردی سعی می‌کند تا برای یک رشته از ورودی‌ها تصمیم بگیرد که باید به کدام بخش از ورودی توجه بیشتری صورت گیرد.
+ ارتباطات پرشی  [^Skip connections] : در شبکه‌های عصبی به منظور انتقال مستقیم برخی از ورودی‌ها به لایه‌های جلوتر برای جلوگیری از حذف خودکار آن‌ها، از این نوع اتصالات استفاده می‌شود.
+ نمونه‌برداری رو به بالا/رو به پایین  [^ Up/Down sampling] : دو نوع نمونه‌برداری که بر اساس اندازه‌ی مجموعه داده و پراکندگی داده‌ها در دو رده‌ی مورد نظر، سعی بر ایجاد توازن در مجموعه‌ی یادگیری، تست یا اعتبارسنجی دارد.
+ دقت اولین بالاترین[^Top 1 accuracy] : دقتی که بر مبنای پاسخ مدل به صورتی سنجیده می‌شود که پاسخ با بیشترین احتمال باید دقیقا پاسخی با بیشترین مورد انتظار باشد.
+ دقت پنج بالاترین[^Top 5 accuracy] : دقتی که بر مبنای پاسخ مدل به صورتی سنجیده می‌شود که هر 5 پاسخ با بیشترین احتمال با جواب مورد انتظار تطبیق یابد.
+ ابرپارامتر [^Hyperparameter] : پارامتر‌هایی از یک شبکه‌ی یادگیری که وابسته به داده و نحوه‌ی یادگیری وزن‌ها برای تنظیم داده نبوده و متغیرهایی را شامل می‌شود که توصیف کننده‌ی خود یادگیری هستند.

# **روش**
پیش از آن که به شرح روش و مسائل مربوط به آن بپردازیم، لازم به ذکر است که مدل پیشنهادی شامل یک شبکه‌ی پیش‌آموزش دیده‌است که برای افزایش کارایی در کار نهایی در نظر گرفته شده‌است. به همین منظور ابتدا به شرح ساز و کار پیش‌پردازشی برای پیش‌آموزش پرداخته، سپس مدل پیشنهادی آموزش شبکه و در نهایت نحوه‌ی انتقال شبکه‌ی پیش‌آموزش دیده به کار نهایی مورد نظر را تبیین خواهیم کرد.

## ** پیش‌آموزش**
داده‌ی استفاده شده در این کار، شامل توییت‌هایی از یکم ژانویه سال 2013 تا یکم ژوئن سال 2017 بوده‌است. تمامی توییت‌هایی که مورد استفاده قرار گرفته‌اند به زبان انگلیسی بوده و با اعمال یک پیش‎پردازش بر توییت‌ها، تمامی توییت‌هایی که شامل نشانی وب[^URL] بوده‌اند به منظور ساده‌سازی کار مورد هدف و جلوگیری از پیچیدگی بیشتر برچسب‌ها حذف شده‌اند. علاوه بر این، واحدسازی[^tokenization] نیز در مرحله‌ی پیش‌پردازش صورت گرفته‌است به طوری که کلمات با تکرار حروف بیش‌تر از 2 حرف یکسان به عنوان یک کلمه در نظر گرفته شده‌اند و همان‌طور که اشاره کردیم علاوه بر حذف نشانی وب، اعداد و اسامی خاص نیز با یک  واحد[^token] خاص جایگزین شده‌اند. در نهایت در مرحله‌ی پیش‌پردازش بررسی می‌شود که توییت حداقل شامل یک واحد باشد که این واحد یکی از علائم سجاوندی، شکلک یا سایر علائم خاص نباشد.
نحوه‌ی نگاشت شکلک‌ها به یک توییت نیز همان‌طور که به اختصار در بخش معرفی مجموعه داده ذکر شد، به صورتی است که به ازای تمامی شکلک‌های موجود غیرتکراری در یک توییت یک نگاشت مستقیم از آن شکلک به توییت وجود خواهد داشت. 
مجموعه داده‌ی پیش‌آموزش به نحوی ایجاد شده‌است که متعادل بوده و یادگیری فهم احساسی محتوای متن‌ها به شکل بهتری محقق گردد. این مجموعه داده به سه بخش آموزش، اعتبارسنجی و تست تقسیم شده و به جز بخش آموزش، دو بخش دیگر به صورت تصادفی از مجموعه داده‌ی پیش‌پردازش تولید شده‌اند که هر شکلک به طور یکسان بازنمایی شده‌باشد. داده‌های بخش آموزش نیز به روش نمونه‌برداری رو به بالا ایجاد شده‌اند.

##**مدل**
معماری انتخابی در این روش، وابسته به مدل یادگیری با حافظه‌ی بلند کوتاه مدت است. به صورت کلی این مدل به ترتیب دارای یک لایه‌ی نهفته‌سازی، دو لایه‌ی دوطرفه‌ی حافظه‌ی بلند کوتاه مدت[^Bidirectional LSTM]، یک لایه‌ی توجه و در نهایت یک لایه‌ی بیشینه هموار[^Softmax] است.(شکل 2) پیش از هر توضیحی اندازه‌ی متن را T در نظر گرفته و تعداد کلاس‌ها را C در نظر گرفته‌ایم. بنابراین، در تمامی موارد پیش رو که به توضیح عملکرد شبکه برای یک کلمه می‌پردازیم، باید در نظر داشت که این فضا برای تمام کلمات موجود در متن یعنی T برقرار خواهدبود. در ابتدا هر کلمه به یک بردار توسط یک لایه‌ی نهفته‌سازی[^Embedding layer] با اندازه‌ی 256 درایه که با یک تابع فعالیت[^Activation function] تانژانت هایپربولیک بر ابعاد محدودیت اعمال می‌کند، نگاشت می‌شود. در مرحله‌ی بعدی برای اینکه مدل بتواند زمینه‌ یا بافت[^Context] هر کلمه را از جهت بار معنایی و احساسی تشخیص داده و یاد بگیرد از دو لایه‌ی دوطرفه‌ی حافظه‌ی بلند کوتاه مدت استفاده شده‌است به طوری که هر لایه شامل 1024 نورون یا واحد نهفته بوده و در واقع در هر جهت از یک لایه‌ی دوطرفه، 512 نورون وجود دارد. در مرحله‌ی بعدی یک لایه‌ی توجه وجود دارد که همان‌طور که در بخش سه اشاره شد به منظور تشخیص درجه اهمیت یک کلمه بر مبنای نه تنها ورودی از اخرین لایه‌ی حافظه‌ی بلند کوتاه مدت، بلکه ورودی به واسطه‌ی اتصالات پرشی از دو لایه‌ی اول دیگر، ارائه شده‌است. لازم به توضیح است که کاربرد اتصالات پرشی در شبکه‌های عصبی با لایه‌های نهان زیاد آن است که از فراموشی خروجی لایه‌های پیشین جلوگیری کرده و اثر مستقیم خروجی هر لایه به لایه‌ی بالاتر به طور مستقیم منتقل می‌شود. بدین ترتیب همان‌طور که در شکل 2 قابل مشاهده است، ورودی لایه‌ی توجه یک بردار با 2304 درایه‌ است که مجموعی‌ است از تمامی لایه‌های مستقیم و غیرمستقیم (پرشی) که به عنوان ورودی در نظر گرفته شده‌اند.
![شکل 2 - مدل ارائه‌شده برای DeepMoji](https://boute.s3.amazonaws.com/287-fig1.png)
 برای درک بهتر نحوه‌ی عملکرد این لایه فرمول‌های زیر مفید خواهندبود. تا به این‌جا تمامی لایه‌های پیشین برای هر کلمه از متن ورودی برداری را تولید کرده‌اند که  به عنوان ورودی به این لایه داده شده‌است. سپس از ضرب این بردار با یک ماتریس وزنی توجه، برداری حاصل شده‌است که میزان تاثیر کلمه را در متن ورودی مشخص می‌نماید. بعد از این مرحله با یک نرمال‌سازی میزان اهمیت کلمه‌ی مشاهده شده در زمان t با یک احتمال بر حسب میزان تاثیر کلمه بین تمام کلمات مشاهده‌ شده تعیین می‌گردد. سپس از ضرب بردار کلمات با بردار میزان اهمیت هر یک برداری به دست می‌آید که می‌تواند به عنوان یک بازنمایی از متن ورودی به لایه‌ی پایانی شبکه داده شده و مسئله‌ی رده‌بندی متن انجام شود.
$$ e_t = h_t w_a$$   
$$ a_t = \frac{exp(e_t)}{\sum_{i=1}^{T}exp(e_i)}$$
$$ v = \sum_{i=1}^{T}a_i h_i$$

##**انتقال آموزش**
هر شبکه‌ی پیش‌آموزش دیده برای اینکه در کار مورد نظر قابل استفاده باشد باید برای آن کار مجددا تنظیم گردد. همان‌طور که می‌دانیم، این تنظیم به معنای یادگیری مجدد شبکه نبوده، و تنها سعی می‌شود تا وزن‌های آن برای کار هدف به‌روز‌رسانی گردد. برای این منظور، از یک روش متداول موسوم به رویکرد ثابت نگه‌داشتن لایه‌ها[^Freezing approach] استفاده شده‌است. چنین شکلی از تنظیم دقیق شبکه می‌تواند خود به انواع گوناگونی انجام شود که به توضیح هر نوع می‌پردازیم.
+ رویکرد آخر[^Last approach] : در این رویکرد تمامی لایه‌ها به جز لایه‌ی آخر ثابت در نظر گرفته می‌شوند و تنها لایه‌ی آخر با مجموعه‌ داده‌ی جدید مورد تنظیم دقیق قرار می‌گیرد. چنین تنظیمی، دقیقا مانند آن است که شبکه‌ی پیش‌آموزش‌دیده را به عنوان یک استخراج کننده‌ی ویژگی[^Feature extractor] در نظر بگیریم.
+ رویکرد کامل[^Full approach] : در این رویکرد هیچ لایه‌ای ثابت در نظر گرفته نشده و تمامی لایه‌ها با مجموعه داده‌ی جدید مورد تنظیم دقیق قرار می‌گیرند. چنین تنظیمی دقیقا مانند آن است که شبکه‌ی پیش‌آموزش‌دیده را به عنوان یک شبکه‌ی آغازین[^Initialization] در نظر بگیریم که تمامی وزن‌ها به‌روز‌رسانی شوند.
+ رویکرد ترکیبی-زنجیره‌ای[^Chain-Thaw approach] : این رویکرد، رویکردی است که در این مقاله پیشنهاد شده‌است. به شکلی که  ابتدا با رویکرد آخر جدیدترین لایه را که عموما لایه‌ی بیشینه هموار است تنظیم کرده تا به مجموعه‌ی اعتبارسنجی همگرا شود. پس از آن در هر مرحله وزن‌های تنها یک لایه به‌روزرسانی می‌شود تا تمامی لایه‌های باقی‌مانده به تنهایی به‌روزرسانی شوند. در نهایت نیز با رویکرد کامل، تنظیم دقیق برای کل شبکه انجام شود. (شکل 3)
![شکل 3 - a) در این بخش هر لایه‌ی جدیدی با رویکرد آخر تنظیم شده b) در این بخش اولین لایه تنظیم شده c) در این بخش لایه‌ی بعدی تا جایی که هیچ لایه‌ای به تنهایی باقی نماند تنظیم شده d) در این بخش تمامی لایه‌ها با رویکرد کامل تنظیم شده‌اند](https://boute.s3.amazonaws.com/287-fig4.png)
در مدل پیشنهادی برای تنظیم دقیق به دلیل اینکه هر بار یک بخش از مدل به مجموعه‌ی اعتبارسنجی همگرا می‌شود (میزان اتلاف به حداقل می‌رسد) شاهد هستیم که عملکرد به‌روزرسانی وزن‌ها مانند عملکرد رگرسیون با توقف زودهنگام[^early stopping] بوده و مانع از بیش‌برازش می‌شود. از مزایای رویکرد پیشنهادی مدت زمان صرف شده برای تنظیم دقیق بر واحد پردازش گرافیکی[^GPU] بوده که به شکل چشمگیری در مجموعه‌داده‌هایی کوچک  که دستی برچسب‌خورده‌‌اند کاهش یافته و بسیار محدود است. هم‌چنین امکان گسترش مجموعه‌ واژگان با کمترین مخاطره برای بروز بیش‌برازش از دیگر مزایای این رویکرد است.

#**آزمایش‌ها **
مجموعه آزمایش‌های انجام شده بر مدل پیشنهادی DeepMoji بر دو دسته‌ی مهم تمرکز کرده‌اند. دسته‌ی اول برای سنجش توان و دقت رده‌بندی یا به طور دقیق‌تر پیش‌بینی ایموجی مناسب برای متنِ داده‌شده انتخاب شده‌اند؛ دسته‌ی دوم نیز برای مقایسه‌ی عملکرد مدل پیشنهادی در کارهای متفاوت در حوزه‌ی پردازش زبان طبیعی طراحی و در نظرگرفته شده‌اند.

##**معرفی مجموعه داده**
در این پژوهش، مجموعه داده‌ی اولیه برای پیش‌بینی ایموجی‌ها، یک مجموعه داده‌ی خام شامل 56.6 میلیارد توییت بوده که با پیش‌پردازش‌های صورت گرفته به 1.2 میلیارد توییت کاهش یافته‌است. سپس از هر توییت به ازای هر ایموجی استفاده شده‌ در آن یک رونوشت تهیه شده که با آن ایموجی خاص به شکل متناظر در مجموعه داده ذخیره شده‌است و منجر به تولید مجموعه داده‌ی نهایی با 1.6 میلیارد توییت گردیده‌است. جدول 2 توزیع توییت‌ها را بین انواع مختلف ایموجی‌ها نشان می‌دهد.
در بخش دوم، برای ارزیابی روش معرفی‌شده در تحلیل احساسی اعم از احساسات، معنا و لحن در مقابل مجموعه‌داده‌های معیار موجود، از هشت مجموعه داده‌ی دیگر استفاده شده است که نام مجموعه داده، مرجع تحقیق، زمینه‌ی کاری انجام شده، دامنه‌ی مجموعه‌ داده، تعداد رده‌ها، تعداد نمونه‌های یادگیری و تست در جدول 3، گردآوری شده‌است.

| نام مجموعه داده|مرجع تحقیق|زمینه‌ی کاری |دامنه‌ی مجموعه‌داده|تعداد رده‌ها| تعداد نمونه‌های یادگیری|تعداد نمونه‌های تست|   |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|SemEval 2007 Task 14|Strapparava and Mihalcea[10], 2007|احساس|عناوین|3|250|1000| |
|Olympic Games|Sintsova et al. [11], 2013|احساس|توییت‌|4|250|709| |
|Psychologists Experiments|Walbott and Scherer [12], 1986|احساس|تجربیات|7|1000|6480| |
|SentiStrength-Twitter|Thelwall et al. [13], 2012|معنا|توییت|2|1000|1113| |
|SentiStrength-Youtube|Thelwall et al. [14], 2012|معنا|نظرات حول یک ویدیو|2|1000|1142| |
|SemEval 2016 Task4A|Nakov et al. [15], 2016|معنا|توییت|3|7155|31986| |
|Sarcasm Dataset V.1|Walker et al. [16], 2012|لحن|فروم‌های مباحثه|2|1000|995| |
|Sarcasm Dataset V.2-Gen|Oraby et al. [17], 2016|لحن|فروم‌های مباحثه|2|1000|2260| | |
<blockquote>
جدول ۳ - اطلاعات مربوط به مجموعه‌ داده‌های معیار. مجموعه‌ داده‌هایی که از قبل به دو مجموعه‌ی یادگیری و تست تقسیم نشده‌‌اند، در حین آزمایش تقسیم شده‌اند. از داده‌های یادگیری به منظور تنظیم ابر پارامتر‌ها استفاده شده‌است.
</blockquote>

##**بررسی پیش‌بینی ایموجی‌ها**
برای ارزیابی کارایی پیش‌آموزش یا بررسی دقت پیش‌بینی ایموجی‌ها، یک مجموعه‌ی اعتبارسنجی[^ Validation set] و یک مجموعه‌ی تست[^Test set] در نظر گرفته شده‌است به طوری که به ازای هر ایموجی از 64 ایموجی ممکن 10 هزار توییت داشته باشند؛ یعنی در مجموع برای هر مجموعه 640 هزار توییت در نظر گرفته شده‌است. سپس با استفاده از نمونه‌برداری رو به بالا از بین توییت‌های باقی مانده، مجموعه‌ی یادگیری[^Train set] جهت استفاده متعادل شده‌است. 
به دلیل اینکه برچسب‌های ایموجی‌ها به نوعی درهم هستند و چند ایموجی می‌توانند برای یک جمله درست باشند، از دو دقت اولین بالاترین و پنج بالاترین همان‌طور که پیش‌تر توضیح داده شد، استفاده شده‌است. از طرفی برای ارزیابی بهتر، روش پیشنهادی با تعداد نورون‌های کمتر، برابر نصف روش اصلی، و یک روش جدید از رده‌بند‌های سبد کلمات[^Bag of words]، به نام fastText، نیز مورد بررسی قراره گرفته‌‌اند. ابعادی که برای این رده‌بند در نظر گرفته‌شده برابر 256 بوده که از لحاظ کارایی مانند لایه‌ی نهفته‌سازی که دارای ابعادی با اندازه‌ی 256 است، برابری خواهد کرد.
با توجه به جدول 4 که نتایج مقایسه‌ی کارایی مدل DeepMoji در کار هدف را،که همان پیش‌آموزش به منظور پیش‌بینی ایموجی‌ها باشد، نشان می‌دهد، می‌توان گفت که اختلاف بین دو روش DeepMoji و fastText مبین تاثیر به‌سزای شبکه‌ی یادگیری با حافظه‌ی بلند کوتاه مدت و لایه‌ی توجه بر دقت یادگیری کلمات و بافت کلمه در متن است که منجر به پیش‌بینی بهتر ایموجی‌ها شده‌است.

| رده‌بند    | پارامترها(میلیون)|دقت اولین بالاترین|دقت پنج بالاترین|   |
|:---------:|:----------------:|:---------------:|:-------------:|:-:|
| تصادفی                   | -      | 1.6%   | 7.8%   |                          |
| fasttext                 | 12.8   | 12.8%  | 36.2%  |                          |
| (512 = d ابعاد) DeepMoji | 15.5   | 16.7%  | 43.3%  |                          |
| (1024 = d ابعاد) DeepMoji | 22.4   | 17.0%  | 43.8%  |                          |  |

<blockquote>
جدول 4 - دقت رده‌بند‌ها در پیش‌بینی ایموجی‌ها. d به ابعاد هر لایه از LSTM اشاره می‌کند. پارامتر‌ها در مقیاس میلیون هستند.
</blockquote>

##**بررسی کارایی در مقابل مجموعه‌داده‌های معیار**
همان‌طور که گفته‌شد برای بررسی تحلیل احساسی بر 3 نوع کار مختلف در حوزه‌ی پردازش زبان طبیعی که شامل احساسات، معنا و لحن است با بررسی 5 دامنه‌ی مختلف شامل عناوین، توییت‌ها، تجربیات، نظرات حول یک ویدیو و فروم‌های مباحثه از طریق 8 مجموعه داده‌ی معیار این کار انجام شده‌است. به دلیل نامتعادل بودن مجموعه داده‌های احساسات و لحن، کارایی با معیار ارزیابی [^F1-measure]F1 سنجیده شده‌است. در حالی که، سنجش کارایی مجموعه داده‌های مبتنی بر معنا از طریق معیار دقت[^Accuracy measure] سنجیده شده‌است.
برخی ملاحظات پیرامون هر زمینه‌ی مورد بررسی طبق جدول 3 در مجموعه‌داده‌های معرفی شده به شرح ذیل است:
+ از آنجایی که تمامی احساسات از مجموعه داده‌ی نخست به غیر از سه رده‌ی ترس، لذت و ناراحتی کمتر از پنج درصد مشاهده شده‌اند، تنها همین سه رده از احساسات در نظر گرفته شده‌اند.
+ در مجموعه داده‌ی ششم برخی توییت‌ها غیر قابل دسترسی بوده چرا که توسط توییتر پاک شده‌اند. بنابراین امکان مقایسه‌ی نتایج حاصل از این بررسی با سایر مقالات مشکل بوده‌است و به دلیل اینکه مجموعه داده‌های در حوزه‌ی معنا دارای تعداد کلمات زیادی در هر مشاهده هستند به طوری که حتی رده‌بند‌های سبد کلمات و روش‌های بدون نظارت[^Unsupervised approaches] نیز به دقت بالایی دست یافته‌اند، از مجموعه‌داده‌های بازبینی ارائه شده استفاده نشده‌است.
+ مجموعه‌ داده‌ی هشتم به صورت برخط به طور کامل در دسترس نبوده به همین دلیل به طور کامل با مقاله‌ی معیار قابل مقایسه نیست. هم‌چنین این مقاله دارای نقل‌قول و پاسخ‌های طعنه‌آمیز بوده ولی برای اینکه با سایر مجموعه داده‌ها برابر باشد تنها پاسخ‌ها در نظر گرفته شده‌اند.

| نام مجموعه داده|معیار ارزیابی|آخرین فناوری|DeepMoji، رویکرد جدید|DeepMoji، رویکرد کامل|DeepMoji، رویکردآخر|DeepMoji، رویکرد ترکیبی-زنجیره‌ای|   |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|SemEval 2007 Task 14|F1|0.34 Buechel|0.21|0.31|0.36|0.37| |
|Olympic Games|F1|0.5 Buechel|0.43|0.50|0.61|0.61| |
|Psychologists Experiments|F1|0.45 Buechel|0.32|0.42|0.56|0.57| |
|SentiStrength-Twitter|Acc|0.82 Deriu|0.62|0.85|0.87|0.88| |
|SentiStrength-Youtube|Acc|0.86 Deriu|0.75|0.88|0.92|0.93| |
|SemEval 2016 Task4A|Acc|0.51 Deriu|0.51|0.54|0.58|0.58| |
|Sarcasm Dataset V.1|F1|0.63 Joshi|0.67|0.65|0.68|0.69| |
|Sarcasm Dataset V.2-Gen|F1|0.72 Joshi|0.71|0.71|0.74|0.75| | |

<blockquote>
جدول 5 - مقایسه‌ی عملکرد DeepMoji بین مجموعه داده‌‌های معیار. مقادیر گزارش شده بر مبنای میانگین بین پنج اجرا هستند. رویکرد جدید به مدلی که یادگیری برای آن بدون پیش‌آموزش صورت گرفته‌است اشاره می‌کند.
</blockquote>
با دقت در جدول 5 می‌توان دریافت که روش پیشنهادی در این‌جا از تمامی روش‌ها به خوبی پیشی گرفته و تنها در دو مورد با رویکرد آخر برابری کرده است. بنابراین می‌توان گفت که روش آموزش و انتقال مدل پیش‌آموزش دیده با شیوه‌ی DeepMoji، به عنوان آخرین فناوری قابل استفاده با معیار کارایی بالا در نظر گرفته خواهدشد.
نکته‌ی مهم آن است که روش پیشنهادی DeepMoji می‌تواند برای مجموعه‌ داده‌هایی که اساسا متفاوت با مجموعه‌ داده‌ای که برای پیش‌آموزش استفاده شده‌اند به خوبی استفاده شده و از آخرین روش‌ها پیشی بگیرد.

#**تحلیل مدل**
مدل ارائه شده و توانایی آن برای پیشی گرفتن از آخرین روش‌ها وابسته به تنوع ایموجی‌ها، معماری مدل و تاثیر پیش‌آموزش بوده که به ترتیب به شرح هریک خواهیم پرداخت.

##**اهمیت تنوع ایموجی‌ها**
یکی از تفاوت‌های مهم کار انجام شده در روش DeepMoji در مقایسه با سایر روش‌های مبتنی بر نظارت از راه دور، تنوع و درهم بودن ایموجی‌ها است. برای بررسی این موضوع یک زیر مجموعه از ایموجی‌ها  در نظر گرفته‌شده‌است.( شکل 4)[18]
![شکل 4 - ایموجی‌های کاهش یافته](https://boute.s3.amazonaws.com/287-fig5.jpg)
مجموعه داده‌ی اصلی نیز بر مبنای ایموجی‌های کاهش یافته کم شده‌است به طوری که دارای 433 میلیون توییت است. با بررسی مدل DeepMoji کاهش یافته،DeepMojiPosNeg، در مقایسه با معماری کلاسیک حافظه بلند کوتاه مدت و مدل DeepMoji با 64 ایموجی یکتا که همان مدل پیشنهادی اصلی است، دریافت می‌شود که مدل اصلی به دلیل تنوع ایموجی‌ها کارایی بهتری از خود نشان می‌دهد. ذکر این نکته ضروری است که در مدل کاهش یافته با فرض اینکه شبکه تنها قصد استخراج ویژگی‌ها را دارد آموزش، انتقال داده شده‌است.(رویکرد آخر)

| نام مجموعه داده|Pos/Neg emojis|Standard LSTM|DeepMoji|   |
|:-:|:-:|:-:|:-:|:-:|
|SemEval 2007 Task 14|0.32|0.35|0.36| |
|Olympic Games|0.55|0.57|0.61| |
|Psychologists Experiments|0.40|0.49|0.56| |
|SentiStrength-Twitter|0.86|0.86|0.87| |
|SentiStrength-Youtube|0.90|0.91|0.92| |
|SemEval 2016 Task4A|0.56|0.57|0.58| |
|Sarcasm Dataset V.1|0.66|0.66|0.68| |
|Sarcasm Dataset V.2-Gen|0.72|0.73|0.74| | |
<blockquote>
جدول 6 - بررسی معیار‌ها در مقایسه با روش‌های مجموعه ایموجی‌ کاهش‌یافته، حافظه‌ی بلند کوتاه مدت استاندارد. معیارهای ارزیابی بر حسب جدول 5 است. مقادیر گزارش بر حسب میانگین 5 اجرای مجزاست.
</blockquote>
ضمن اینکه بسیاری از ایموجی‌ها دارای معنای احساسی مشابهی هستند و در شرایطی نیز با یک‌دیگر متفاوت‌اند، مدل پیشنهادی DeepMoji می‌تواند تمامی شباهت‌ها و احساساتی را که انتظار می‌رود مستقیما از یک ایموجی دریافت شود، یاد گرفته و این امر موجب بهتر بودن نتایج حاصل خواهد بود.

##**معماری مدل**
همان‌طور که پیش‌تر به توضیح معماری مدل پیشنهادی پرداختیم، به دلیل وجود لایه‌ی توجه و اتصالات پرشی، مدل DeepMoji از نظر انتقال آموزش به خصوص در حوزه‌های جدید بهتر عمل می‌کند. (جدول 6)  مسئله‌ی حائز اهمیت آن است که مقایسه‌ی دو مدل DeepMoji و معماری استاندارد حافظه‌ی بلند کوتاه مدت که از رویکرد آخر بهره برده تا حد زیادی باعث بروز این تصور می‌گردد که به رغم مناسب بودن روش پیشنهادی DeepMoji، الزامی به استفاده از آن به منظور انتقال آموزش در رده‌بندی‌های نظارت شده‌ای که تعداد داده‌ها کافی‌ است وجود ندارد. چرا که در نظر گرفتن مجموعه‌ی لایه‌ی توجه و اتصالات پرشی اساسا برای یادگیری ویژگی‌های ضعیف  و بهبود به‌روزرسانی پارامتر‌های شبکه برای مجموعه داده‌های کوچک بوده‌است. در کارهای آینده توضیح کامل این مدعا ارائه خواهدشد.

##**تاثیر پیش‌آموزش**

با در نظر گرفتن نتایج حاصل از جدول 5، می‌توان گفت که دلیل بهتر بودن مدل پیشنهادی با رویکرد ترکیبی-زنجیره‌ای نسبت به مدل پیشنهادی با رویکرد جدید، وجود پیش‌آموزش در مدل اول است. پیش‌آموزش بر پوشش‌دهی کلمات و عبارات تاثیر به‌سزایی دارد. پوشش‌دهی کلمات شامل نسبت کلمات دیده‌شده در مجموعه‌ی تست به مجموعه‌ی آموزش یا پیش‌آموزش است. همان گونه که در جدول 7 مشاهده می‌شود رویکرد ترکیبی-زنجیره‌ای با تنظیم لایه‌ی نهفته‌سازی و کاهش احتمال وقوع بیش‌برازش، بیان‌گر افزایش پوشش‌دهی کلمات به هنگام اضافه شدن کلمات جدید به مجموعه واژگان است. البته باید توجه کرد که این معیار به تنهایی کافی نیست. به دلیل اینکه کلمات عموما در مجموعه‌ی یادگیری تنها یک‌بار دیده شده‌اند، مجموعه‌داده‌های کوچک به گونه‌ای هستند که احتمال مشاهده‌ی یک کلمه‌ی جدید پایین است. با این‌حال، به دلیل رخداد زیاد هر کلمه در یک مدل پیش‌آموزش‌دیده در مدل پیشنهادی DeepMoji احتمال مشاهده‌ی یک کلمه‌ی جدید افزایش یافته و می‌توان گفت که وجود شبکه‌ی پیش‌آموزش‎دیده منجر به گسترش مجموعه دادگان خواهدشد.

| نام مجموعه داده|مجموعه آموزش|رویکرد آخر|رویکردهای کامل و ترکیبی-زنجیره‌ای|   |
|:-:|:-:|:-:|:-:|:-:|
|%SemEval 2007 Task 14|41.9%|93.6%|94.0| |
|Olympic Games|73.9%|90.3%|96.0%| |
|Psychologists Experiments|85.4%|98.5%|98.8%| |
|SentiStrength-Twitter|80.1%|97.1%|97.2%| |
|SentiStrength-Youtube|79.6%|97.2%|97.3%| |
|SemEval 2016 Task4A|86.1%|96.6%|97.0%| |
|Sarcasm Dataset V.1|88.7%|97.3%|98.0%| |
|Sarcasm Dataset V.2-Gen|86.5%|97.2%|98.0%| | |
<blockquote>
جدول 7 - پوشش‌دهی کلمات در مجموعه‌های تست معیار بر اساس مجموعه واژگان استخراج شده از مجموعه آموزش، مدل پیش‌آموزش دیده با رویکرد آخر و مدل پیش‌آموزش دیده با ترکیبی دوتایی از رویکردهای کامل و ترکیبی-زنجیره‌ای
</blockquote>
به منظور بررسی پوشش‌دهی عبارات که مبین یادگیری بافت یک کلمه در متن است، با ارزیابی معیار دقت بر مجموعه‌ داده‌ی SS-Youtube مشخص شد که روشی مانند fastText،که از روش‌های جدید با نتایج رقابتی است شبیه به لایه‌ی نخست مدل پیشنهادی DeepMoji یا همان لایه‌ی نهفته‌سازی عمل می‌کند. با توجه به این نکته و مقایسه‌ی دقت حاصل از دو روش دریافت شد که مدل پیشنهادی DeepMoji با دقت 93% توانایی بیشتری برای یادگیری پوشش‌دهی عبارات دارد.

##**ارزیابی انسانی**

با استفاده از یک سرویس تحت وب[^Amazon Mechanical Turkers] که برای بهره‌وری از هوش انسانی به کار می‌رود و مجموعه داده‌ای شامل توییت‌هایی که تصادفا برای ارزیابی معنا برچسب خورده‌اند، تلاش شد تا بررسی شود که ارزیابی انسان‌ها در مقایسه با عملکرد مدل پیشنهادی چه نتایجی را در بر خواهد داشت. در این سیستم علاوه بر بررسی برچسب‌ها با امتیازدهی بین اعداد 1 تا 9، امکان ارزیابی با عبارت "نمی‌دانم" نیز وجود دارد. توییت‌هایی که بیش از یک نفر آن‌ها را  با "نمی‌دانم" ارزیابی کرده‌اند حذف شده‌اند. (در مجموع 98 توییت) از بین 7347 توییت باقی‌مانده تعداد 5000 توییت برای مجموعه‌ی آموزش و یا اعتبارسنجی استفاده شده‌اند و 2347 توییت باقی‌مانده برای مجموعه‌ی تست در نظر گرفته‌ شده‌اند.
برای یادگیری از رویکرد ترکیبی-زنجیره‌ای در مدل پیشنهادی استفاده شده‌است. مقایسه‌ی رده‌بند‌های مختلف در جدول 8 مشاهده می‌شود.

| نام مجموعه داده|درصد توافق| |
|:-:|:-:|:-:|
|تصادفی|50.1٪| |
|fastText|71.0%| |
|MTurk|76.1%| |
|DeepMoji|82.4%| | |
<blockquote>
جدول 8 - مقایسه‌ی توافق رده‌بندهای متفاوت
</blockquote>
|
#**پیاده‌سازی**
پیاده‌سازی مدل پیشنهادی از [اینجا](https://github.com/bfelbo/DeepMoji) قابل دسترس است. این مدل بر مبنای کراس[^Keras] که یک رابط برنامه‌نویسی نرم‌افزار[^API] سطح بالا از شبکه‌های عصبیست پیاده شده‌است که قابلیت اجرا بر روی دو چارچوب تیانو[^Theano] و تنسورفلو[^TensorFlow] را دارد. هم‌چنین یک پیاده‌سازی بر روی [پای‌تورچ](https://github.com/huggingface/torchMoji)[^PyTorch] نیز از آن توسعه داده شده‌است.
در ادامه به بررسی مدل پیاده‌سازی شده خواهیم پرداخت. قابل ذکر است که بستر یادگیری و آزمایش این پیاده‌سازی، سیستم عامل ابونتو نسخه 16.04LTS، پایتون ورژن 3.6، تسنورفلو نسخه 1.5.0rc0 بوده‌است.

##**مجموعه داده**
همان‌طور که قبلا توضیح داده شد، به همراه کد پیاده‌سازی، دادگان مربوط به مجموعه‌داده‌ی تولیدی از توییت‌های موجود در توییتر و سایر مجموعه‌داده‌های معیار که در جدول 3 به معرفی آن‌ها پرداختیم در پوشه‌ی داده قابل دسترس هستند.

## **کد منبع**
کد منبع در پوشه‌ی ‌‌deepmoji شامل موارد زیر است:
+ تعریف متغیرهای عمومی[^global_variables] که شامل مسیر اصلی، مسیر دسترسی به مجموعه واژگان و مدل پیش‌آموزش دیده، تعداد کلاس‌ها که تعداد 64 ایموجی مورد استفاده است، روش‌های تنظیم‌سازی دقیق که در بخش 4.3 توضیح داده شد و هم‌چنین روش‌های سنجش کارایی است.
+ فیلتر اولیه‌ی ورودی[^filter_input] که شامل بررسی کارکترها بوده و تنها حروف انگلیسی و ایموجی‌ها را نگه می‌دارد.
+  فیلتر ثانویه[^filter_utils] به منظور افزایش کارایی. همان‌طور که در بخش 4.1 گفته‌شد پیش‌‌پردازشی صورت می‌گیرد تا ذکر نام در توییت‌ها، نشانی‌‌های وب استفاده شده و غیره را در نظر نگیرد.
+ تکواژساز[^tokenizer] که برای تبدیل متن به کلمات با در نظر گرفتن حروف اختصار، نشانی وب، پست الکترونیک، هشتگ، ذکر نام کاربر، ایموجی‌ و شکلک‌های کلاسیک مورد استفاده قرار گرفته‌است.
+ تولیدکننده‌ی  کلمات[^word_generator] که با استفاده از فیلتر ثانویه و تکواژساز سعی می‌کند تا اضافات را از متن ورودی حذف کند و کلمات متناظر از متن را استخراج کند. در همین بخش کلاس دیگری تعریف شده که با بهره‌وری از کلاس تولیدکننده‌ی کلمات سعی می‌کند تا هر توییت را به آرایه‌ای متناظر در نام‌پای[^numpy array] یا جملات به فرمت اَسکی تبدیل نماید.
+ تولیدکننده‌ی مجموعه واژگان[^create_vocab] سعی می‌کند تا با استفاده از تولیدکننده‌ی کلمات مجموعه واژگان متناظر با کلمات تمام جملات داده شده را تشکیل دهد.
+ سازنده‌ی جملات[^sentence_tokenizer] سعی می‌کند تا یک آرایه‌ی با ساختار ارائه شده در نام‌پای متناظر با متن ورودی‌داده شده بر اساس تکواژها بسازد.
+ تعریف مدل[^model_def] که دارای توابع مختلفی است مانند استخراج ویژگی‌ها از لایه‌ی یکی مانده به آخر مدل پیش‌آموزش دیده که متن را به کدگذاری احساسی متناظر تبدیل می‌کند یا تابعی که به منظور انتقال آموزش به وسیله‌ی تنظیم دقیق تعریف شده‌است. اما در بین تمامی توابع تعریف شده در این فایل مهم‌ترین تابع که در تمامی توابع دیگر این فایل استفاده شده است تابعی‌است که معماری مدل را پیاده‌سازی کرده‌است[^deepmoji_architecture]. روش پیاده‌سازی در این تابع دقیقا منطبق بر بخش 4.2 بوده که پیش‌تر به توضیح آن پرداخته‌ایم. در سایر توابع این فایل با بهره‌ جستن از این تابع که مدل را می‌سازد سعی شده تا عملیاتی چون استخراج ویژگی‌ها و غیره انجام شود. هم‌چنین توابعی نیز به منظور استفاده از مدل پیش‌آموزش‌ دیده برای استخراج وزن‌ها تعریف شده‌اند که در صورتی که هدف تنظیم دقیق باشد، پس از ساخت مدل از طریق تابع اصلی پیاده‌سازی معماری مدل، وزن‌های پیش‌آموزش در مدل ساخته شده بارگذاری می‌شوند.
+ لایه‌ی توجه[^attlayer] سعی می‌کند تا براساس تاثیر هرکلمه در طول استفاده‌ی آن در متن ورودی میزان توجه به کلمات را به عنوان یک بردار از بازنمایی تمام کلمات متن ورودی با در نظر گرفتن میزان توجه به هرکدام به لایه‌ی نهایی رده‌بندی، بیشنیه هموار، داده تا رده‌ی متن مشخص گردد. این کلاس متناظر با بخش 4.2 عمل می‌نماید.
+ تنظیم دقیق مدل[^finetuning] توابعی تعریف شده‌است. در بین این توابع چند تابع حائز اهمیت هستند.
یک) تابع جهت نمونه‌برداری رو به بالا[^sampling_generator] به منظور ایجاد مجموعه‌داده‌ای غنی‌تر از یک مجموعه‌داده‌ی کوچک که برای آموزش استفاده شود.
دو) تابع جهت برچسب‌گذاری مجدد[^relabel] که به منظور ایجاد کلاس‌های دودویی از 64 کلاس موجود که در بخش 6.1 به توضیح آن پرداختیم
سه) تابع جهت ثابت نگه‌داشتن لایه[^freeze_layers] در هنگام تنظیم دقیق که در بخش 4.3 به توضیح آن پرداختیم.
چهار) تابع جهت تنظیم دقیق مدل[^finetune] که با استفاده از تابع مورد قبلی و طبق توضیح بخش 34 سعی می‌کند به تنظیم دقیق مدل بپردازد. ذکر این نکته ضروری‌است که به جز روش ترکیبی-زنجیره‌ای معرفی شده در بخش 4.3 سه روش جدید، آخر و کامل تنها یک‌بار آموزش می‌بینند یا تنظیم می‌شوند. به همین دلیل در کد شاهد آن هستیم که برای روش ترکیبی-زنجیره‌ای از تابع جداگانه‌ای استفاده شده‌است که در مورد بعدی توضیح داده خواهدشد.
پنج) تابع جهت تنظیم به روش ترکیبی-زنجیره‌ای[^chain_thaw] که با تغییر لایه‌های قابل تنظیم در هر بار طبق روش توضیح داده‌شده در بخش 4.3 و شکل 5 سعی می‌کند تا مدل را با وزن‌های جدید تنظیم کند.
+ تنظیم دقیق میانگین کلاس‌ها[^class_avg_finetuning] همان‌گونه که در بخش 6.1 و مورد دو از بخش قبلی اشاره شد، تنظیم دقیق کلاس‌های دودویی در این فایل انجام می‌شود. پیش از هرچیز لازم است که تعداد کلاس‌ها و برچسب‌ها بر اساس ایموجی‌های محدود شده و دودویی به‌روزرسانی شوند سپس با فراخوانی تابع اصلی که تنظیم دقیق میانگین کلاس‌ها است به مانند قبل اما این‌ بار با محدوده‌ی کلاس‌های جدید و کاهش‌یافته عملیات تنظیم‌سازی دقیق انجام گیرد.

##**مدل**
پوشه‌ی مدل شامل مدل پیش‌آموزش دیده و مجموعه‌ واژگان استخراج شده از مجموعه‌داده در ساختارداده‌ی جیسون[^json] با ترتیب کلمه و تعداد تکرار آن است.

##** تست **
پوشه‌ی تست شامل آزمایش کدهای منبع موجود می‌باشد که در مجموع 30 تست انجام شده است و نتیجه‌ی آن در شکل 5 قابل مشاهده است.
![شکل 5 - نمونه‌ی اجرای تست کد‌های منبع](https://boute.s3.amazonaws.com/287-IMG_20180209_162428_657-1-1.jpg)

##** اسکریپت **
در این پوشه‌ فایل‌هایی به منظور دریافت مدل پیش‌آموزش دیده، نمونه‌ای کد برای تنظیم‌دقیق مدل، و تحلیل نتایج وجود دارد. نمونه‌ی تنظیم دقیق مدل با استفاده از مجموعه داده‌ی معیار SS-Twitter که در جدول 3 معرفی شد، به وسیله‌ی روش آخر با استفاده از کلاس‌های دودویی مثبت یا منفی توضیح داده‌شده در بخش 6.1 در جدول 9  قابل مشاهده‌است. همان‌طور که از جدول 4 به یاد داریم معیار ارزیابی در این مجموعه داده، معیار دقت است چرا که این مجموعه‌داده متعادل است.
![شکل 6 - نمونه نتیجه‌ی آموزش در یک تکرار](https://boute.s3.amazonaws.com/287-IMG_20180209_190315_971-1-1.jpg)
همان‌طور که در شکل 6 قابل مشاهده‌است وزن‌های مربوط به لایه‌ی آخر بارگذاری نشده‌اند که بیان‌گر روش مورد استفاده‌ی آخر برای تنظیم دقیق است. هم‌چنین تعداد کلاس‌ها دو تا بوده که بیانگر روش بررسی در بخش 6.1 است. مقدار دقت به دست آمده در پنج تکرار طبق جدول 9  برابر 86.1994 درصد بوده که به مقدار گزارش شده در جدول 6 بسیار نزدیک است.

| شماره تکرار|دقت| |
|:-:|:-:|:-:|
|1|85.243٪| |
|2|86.067%| |
|3|87.633%| |
|4|86.314%| |
|5|85.737٪| |
|میانگین|86.1994%| | |
<blockquote>
جدول 9 -نتایج آموزش پس از 5 تکرار در مجموعه داده‌ی معیار ‌‌SS-Twitter به وسیله‌ی DeepMoji با رویکرد آخر و تعداد 2 کلاس مثبت و منفی
</blockquote>
|
##**نمونه‌ها**
در این پوشه نمونه کدهایی برای تولید مجموعه واژگان از توییتر، کدگذاری متن‌ها، تنظیم دقیق برخی مجموعه‌داده‌های معیار و نمونه‌ای برای بررسی اعلام پنج محتمل‌ترین ایموجی به جمله‌ی ورودی تست قرار داده شده‌است.
برای نمونه علاوه بر جملات موجود در جدول 1 جملات زیر داده شده و خروجی شکل 7 دریافت شده‌است.
![شکل 7 -  نمونه‌ی پیش‌بینی ایموجی برای جملات فرضی ورودی (احتمال داده شده در بین تمام 64 ایموجی موجود است)](https://boute.s3.amazonaws.com/287-test_sentences_table.jpg)
توجه شود که در صورت آزمایش با جملات منتخب نتایج در یک فایل با فرمت سی‌‌اس‌وی[^csv] به عنوان خروجی در همین پوشه اضافه خواهدشد. هم‌چنین نتایج به صورت شماره‌ی پنج ایموجی محتمل که در پوشه‌ی اصلی قرار دارد و هم‌چنین میزان احتمال متناظر با هر ایموجی به ترتیب گزارش شده‌است.

#**کارهای آینده**
با توجه به اینکه در کشور ایران طبق گزارش الکسا[^Alexa] [19] و وینکوز[^Vincos] [20] شبکه‌ی اجتماعی اینستاگرام[^Instagram] در دو سال گذشته از ژانویه‌ی 2016 تا 2017 و از ژانویه‌ی 2017 تا 2018، اولین شبکه‌ی مورد استفاد‌ه‌ی کاربران ایرانی بوده‌است، بنابراین توجه به این شبکه‌ی اجتماعی در ایران برای کارها و بررسی‌های مختلف در حوزه‌ی پردازش زبان طبیعی حائز اهمیت است.
برای اهتمام به این موضوع تهیه‌ی یک مجموعه‌داده از نظرات کاربران در اینستاگرام و سپس آموزش شبکه‌ای که بتوان از طریق آن احساسات موجود در متن را تحلیل کرد می‌تواند به عنوان قدم بعدی انتخاب شود.
از آنجا که کار انجام شده در این مقاله بر روی زبان انگلیسی بوده و از طرفی شبکه‌ی اجتماعی مورد بررسی توییتر بوده‌است که میزان مخاطب آن در کشور ایران به نسبت اینستاگرام کمتر است، بنابراین بررسی نظرات کاربران بر پست‌های عمومی اینستاگرام که به زبان فارسی باشد گزینه‌ی مناسبی برای قدم بعدی پژوهش خواهد بود.
مورد دیگری که پس از اینستاگرام می تواند مورد بررسی و تحلیل قرار گیرد، شبکه‌ی اجتماعی توییتر است. چرا که به خوبی می تواند منجر به شناخت انواع نظرات از اقشاری که حتی متفاوت تر از عموم مردم دست به فعالیت در این شبکه‌ی اجتماعی می‌زنند شود و تحلیل معنایی و مقایسه‌ای نیز بین دو شبکه‌ی اجتماعی فوق صورت پذیرد.
به طور کلی شبکه‌های اجتماعی می‌توانند به خوبی پیش‌بینی کننده‌ی روند اجتماعی، سیاسی، فردی یا غیره باشند و تمرکز بر شبکه‌هایی که کاربران ایرانی در آن‌ها فعالیت دارند می‌تواند نهایتا به برنامه‌ریزی‌های کلان نیز کمک شایانی برساند.

#**نتیجه‌گیری**
با ارائه‌ی یک روش پیشنهادی جدید بر مبنای یادگیری با حافظه‌ی بلند کوتاه مدت و مکانیزم توجه سعی شد تا توانایی مدل را برای یادگیری بافت کلمات و هم‌چنین بافت عبارات حتی در شرایطی که مجموعه‌ داده کوچک بوده بیشتر کنیم. هم‌چنین تنوع ایموجی‌ها در افزایش کارایی مدل تاثیر به‌سزایی دارد. علاوه بر این وجود یک مدل پیش‌آموزش دیده منجر می‌شود تا نه تنها امکان یادگیری در حوزه‌های جدید با مجموعه داده‌های متفاوت آسان‌تر شود که کارایی نیز افزایش پیدا می‌کند. در نهایت می‌توان گفت که مدل پیشنهادی DeepMoji در حوزه‌ی کارهای متفاوت احساس‌محور در پردازش زبان طبیعی به عنوان آخرین روش موفق می‌تواند مورد استفاده قرار بگیرد.

# **منابع**

1. Jan Deriu, Maurice Gonzenbach, Fatih Uzdilli, Aurelien Lucchi, Valeria De Luca, and Martin Jaggi.2016. Swisscheese at semeval-2016 task 4: Sentiment classification using an ensemble of convolutional neural networks with distant supervision.Proceedings of SemEval, pages 1124–1128. 
2. Duyu Tang, Furu Wei, Nan Yang, Ming Zhou, TingLiu, and Bing Qin. 2014. Learning sentimentspecific word embedding for twitter sentiment classification. In 52th Annual Meeting of the Association for Computational Linguistics (ACL), pages1555–1565. 
3. Saif Mohammad. 2012. #emotional tweets. In TheFirst Joint Conference on Lexical and Computational Semantics (*SEM), pages 246–255. Association for Computational Linguistics.
4. FA Kunneman, CC Liebrecht, and APJ van den Bosch.2014. The (un)predictability of emotional hashtagsin twitter. In 52th Annual Meeting of the Association for Computational Linguistics (ACL). Association for Computational Linguistics. 
5. Jonathon Read. 2005. Using emoticons to reduce dependency in machine learning techniques for sentiment classification. In ACL student research workshop, pages 43–48. Association for ComputationalLinguistics. 
6. Alec Go, Richa Bhayani, and Lei Huang. 2009. Twitter sentiment classification using distant supervision.CS224N Project Report, Stanford, 1(12). 
7. Jared Suttles and Nancy Ide. 2013. Distant supervision for emotion classification with discrete binaryvalues. In International Conference on IntelligentText Processing and Computational Linguistics (CICLing), pages 121–136. Springer. 
8. Ben Eisner, Tim Rocktaschel, Isabelle Augenstein, ¨Matko Bosnjak, and Sebastian Riedel. 2016. ˇemoji2vec: Learning emoji representations fromtheir description. In 4th International Workshop onNatural Language Processing for Social Media (SocialNLP).
9. Yoshua Bengio et al. 2012. Deep learning of representations for unsupervised and transfer learning. In29th International Conference on Machine learning(ICML) – Workshop on Unsupervised and TransferLearning, volume 27, pages 17–36.
10. Carlo Strapparava and Rada Mihalcea. 2007. Semeval-2007 task 14: Affective text. In 4th International Workshop on Semantic Evaluations (SemEval), pages 70–74. Association for Computational Linguistics. 
11. Valentina Sintsova, Claudiu-Cristian Musat, and PearlPu. 2013. Fine-grained emotion recognition inolympic tweets based on human computation. In4th Workshop on Computational Approaches toSubjectivity, Sentiment and Social Media Analysis(WASSA). 
11. Harald G Wallbott and Klaus R Scherer. 1986. Howuniversal and specific is emotional experience? evidence from 27 countries on five continents. International Social Science Council, 25(4):763–795.
12. Harald G Wallbott and Klaus R Scherer. 1986. Howuniversal and specific is emotional experience? evidence from 27 countries on five continents. International Social Science Council, 25(4):763–795. 
13.  Mike Thelwall, Kevan Buckley, Georgios Paltoglou,Di Cai, and Arvid Kappas. 2010. Sentiment strengthdetection in short informal text. Journal of theAmerican Society for Information Science and Technology, 61(12):2544–2558.
14. Mike Thelwall, Kevan Buckley, and Georgios Paltoglou. 2012. Sentiment strength detection forthe social web. Journal of the American Societyfor Information Science and Technology (JASIST),63(1):163–173.
15. Preslav Nakov, Alan Ritter, Sara Rosenthal, FabrizioSebastiani, and Veselin Stoyanov. 2016. Semeval-2016 task 4: Sentiment analysis in twitter. In10th International Workshop on Semantic Evaluation (SemEval), pages 1–18. 
16. Marilyn A Walker, Jean E Fox Tree, Pranav Anand,Rob Abbott, and Joseph King. 2012. A corpus forresearch on deliberation and debate. In International Conference on Language Resources and Evaluation (LREC), pages 812–817. 
17. Shereen Oraby, Vrindavan Harrison, Lena Reed,Ernesto Hernandez, Ellen Riloff, and MarilynWalker. 2016. Creating and characterizing a diversecorpus of sarcasm in dialogue. In 17th Annual Meeting of the Special Interest Group on Discourse andDialogue (SIGDIAL), page 31.
18. Xia Hu, Jiliang Tang, Huiji Gao, and Huan Liu.2013. Unsupervised sentiment analysis with emotional signals. In Proceedings of the 22nd international conference on World Wide Web (WWW), pages607–618. ACM.
19. https://www.alexa.com/topsites/countries/IR#
20. http://vincos.it/2018/02/05/la-mappa-dei-social-network-nel-mondo-gennaio-2018/amp/