##خلاصه یادگیری عمیق شاخه ای از بحث یادگیری ماشینی و مجموعه ای از الگوریتم هایی است که تلاش می کنند مفاهیم انتزاعی سطح بالا را با استفاده یادگیری در سطوح و لایه های مختلف مدل کنند . یادگیری عمیق در واقع نگرشی جدید به ایده ی شبکه های عصبی می باشد که سالیان زیادی است وجود داشته و هر چند سال یکبار در قالبی جدید خود را نشان می دهد. در این مقاله میخواهیم از یادگیری عمیق در زمینه ی تحلیل زبان های طبیعی استفاده کنیم . به طور مشخص به تحلیل لحن نظرات خواهیم پرداخت و برای اینکار مدل بازگشتی عمقی برای تحلیل زبان طبیعی را معرفی خواهیم کرد . ---------- ## ۱. مقدمه ### ۱.۱ یادگیری عمیق یادگیری عمیق[^Deep Learning] شاخه ای از بحث یادگیری ماشینی[^Machine Learning] و مجموعه ای از الگوریتم هایی است که تلاش می کنند مفاهیم انتزاعی سطح بالا را با استفاده یادگیری در سطوح و لایه های مختلف مدل کنند . یادگیری عمیق در واقع نگرشی جدید به ایده ی شبکه های عصبی[^ Artificial Nueral Network ] می باشد که سالیان زیادی است وجود داشته و هر چند سال یکبار در قالبی جدید خود را نشان می دهد. دو مزیت این شیوه ی یادگیری را می بینید + بازنمود های یادگیری : نیاز اصلی هر الگوریتم یادگیری ویژگی هایی[^Feature] است که از ورودی ها استخراج می شود . ممکن است این ویژگی ها از پیش به صورت دستی تهیه شده و به الگوریتم داده شود که این روش در الگوریتم های با ناظر[^Supervised Learning] به کار می رود . در مقابل روش های بدون نظارت [^Unsupervised Learning] خواهد بود که خود اقدام به استخراج ویژگی ها از ورودی خواهد نمود. استخراج دستی ویژگی ها علاوه بر اینکه زمانبر است معمولا هم ناقص و در عین حال بیش از حد نیازِ ذکر شده می باشد. یادگیری عمقی برای ما یک راه استخراج خودکار ویژگی ها پدید می آورد. + یادگیری چند لایه ی بازنمود ها : یادگیری عمقی برای ما این امکان را به وجود می آورد که بتوانیم که مفاهیم با سطح انتزاع بالا را با استفاده از یادگیری چند لایه از پایین به بالا بسازیم به تصویر زیر توجه کنید.این تصویر لایه لایه بودن مراحل یادگیری را در بازشناسی چهره ی انسان به خوبی نمایش میدهد ![یادگیری لایه لایه ](http://8pic.ir/images/mi6czuxr81hc5hbxqs76.png) در پاسخ به این سوال که چرا اکنون دوباره به این ایده برگشته ایم و علت رستاخیر مجدد یادگیری عمقی میتوان دلایل متعددی ذکر کرد از جمله همان دلیل به وجود آمدن روش های استخراج خودکار که از جمله ی آن ها میتوان RBMs[^RBM] , autoencoder , ... نام برد و همچنین درک بهتر از روش های منظم کردن مدل ها . تعاریف مختلفی برای یادگیری عمیق وجود دارد که همه ی آن ها در یک نکته مشترک هستند.ابتدا به معرفی **سلول عصبی مصنوعی**[^Neuron] و **شبکه های نورونی** خواهیم پرداخت و سپس یادگیری عمیق را معرفی خواهیم کرد. + سلول عصبی مصنوعی : توافق دقیقی بر تعریف شبکه عصبی در میان محققان وجود ندارد؛ اما اغلب آنها موافقند که شبکه عصبی شامل شبکهای از عناصر پردازش ساده (نورونها) است، که میتواند رفتار پیچیده کلی تعیین شدهای از ارتباط بین عناصر پردازش و پارامترهای عنصر را نمایش دهد. ![تصویر ۱ - مدل تک نورون عصبی مصنوعی](http://8pic.ir/images/831xu97r5i6lmlz2p7ih.png) در تصویر ۱ مدل یک نورون عصبی مصنوعی را مشاهده می کنید که از بخش های ورودی ، تابع فعال ساز و خروجی تشکیل شده است. خروجی تابع فعال ساز از رابطه ی زیر بدست می آید. $$ a = f ( w^T + b ) $$ $$ f(x) = sigmoid(x) = \frac {1- \mathrm{e}^{-۲x} }{1+ \mathrm{e}^{-۲x}} $$ تابع sigmoid هر عدد طبیعی را به بازه ی [۱و۰] نگاشت خواهد کرد لذا تابع فعال سازی می تواند به عنوان احتمال برای آن واحد عصبی در نظر گرفته شود. ![f(x) = tanh(x)](http://8pic.ir/images/7wtcecn1lt5gogyzk6wm.png) - شبکه های عصبی: ![شبکه ی عصبی- تصویر۲](http://8pic.ir/images/lvuw0byt8755p0u7d3qf.png) با کنار هم قرار گرفتن این نورون های واحد چه در جهت عمودی ( کنار هم ) و چه در جهت افقی (روی هم) شکل خواهند گرفت و در نهایت با یک لایه ی خروجی پایان خواهند یافت . برای مثال در واحد های چند گانه عمودی اینطور خواهد بود که هر واحد مقدار a خود را با ضرب داخلی پارامتر w در x و در نهایت جمع با مقدار بایاس b بدست می آورد . پس برای m نورون عصبی که مشابه تصویر-۲ قرار گرفته اند با استفاده از نوشتار ماتریسی خواهیم داشت : ![تعریف ماتریسی برای شبکه ای از m نورون ](http://8pic.ir/images/kcpmisjqca028t31z71q.png) حال در صورت لزوم میتوان لایه ای دیگری از شبکه های افقی در مقابل این لایه اضافه کنیم و یا مستقیما خروجی را محاسبه نماییم. ### ۱.۳ پردازش زبان طبیعی با گسترش روز افزون متونی که توسط بشر روی بستر اینترنت منتشر می شود امروز بیش از پیش نیاز به روش های تحلیل و استخراج دانش و اطلاعات مفید احساس می شود. اکنون روش های بسیاری برای تحلیل زبان های طبیعی وجود دارد و پیشرفت های بسیاری در زمینه ی حل مسائل آن به وجود آمده است . از جمله ی این مسائل می توان به موضوع تحلیل لحن نظرات[^Semantic Analysis] اشاره کرد. شناسایی لحن که به آن نظرکاوی[^Opinion Mining] هم گفته می شود روشی است که در آن نظر، لحن، برآورد، گرایش و احساس مردم نسبت به موجودیت هایی مثل: محصولات ، خدمات، وقایع مورد مطالعه قرار می گیرد. **کاربردهای شناسایی لحن نظرات:**نظرات به دلیل تاثیر کلیدی که بر روی رفتار انسان می گذارد محور اصلی بیشتر فعالیت های بشر می باشد. هنگامی که ما میخواهیم یک تصمیمی بگیریم نیاز داریم که نظرهای دیگران را هم بدانیم. در دنیای واقعی شرکت ها و سازمان ها همواره به دنبال این هستند که نظرات مردم یا مشتریان را درباره ی محصولات و یا خدمات خود بدانند. مشتریان هم به دنبال این هستند که قبل از خرید یک محصول نظرات کاربرانی که قبلا از آن محصول استفاده کرده اند را بدانند و بر اساس آن اقدام به خرید یا عدم خرید آن محصول کنند. بدست آوردن نظرات مردم و مشتریان خود یک تجارت عظیم برای بازاریابی، روابط اجتماعی و حتی رقابت های انتخاباتی می باشد. در گذشته این اطلاعات از طریق برگه های نظرسنجی و یا آزمایش بر روی یک گروه خاص بدست می آمد ولی امروزه با گسترش روزافزون رسانه های اجتماعی (مثل بلاگ ها،توییتر و فیسبوک) افراد و سازمان ها از محتوای این رسانه ها برای تصمیم گیری استفاده می کنند و افراد دیگر لازم نیست که به نظر دوستان و آشنایان درباره یک محصول اکتفا کنند زیرا نظر و بحث های فراوانی درباره ی آن محصول در محیط وب وجود دارد. البته به خاطر فراوانی و تنوع سایت ها پیدا کردن و پایش سایت های مفید و چکیده گرفتن از اطلاعات موجود در آنها هنوز کاری دشوار و پیچیده می باشد، زیرا هر سایت به طور معمول دارای حجم زیادی از نظرات می باشد که برای انسان عادی استخراج و خلاصه سازی نظرات موجود سخت می باشد. در اینجاست که نیاز به یک سیستم شناسایی لحن نظرات احساس می شود. در سال های اخیر سیستم های تشخیص لحن نظرات در تقریبا تمام محدوده های ممکن از پیش بینی فروش محصولات و خدمات مشتریان گرفته تا پیش بینی وقایع اجتماعی و نتیجه انتخابات سیاسی پخش شده اند [8] ### ۲.۱ مدل های پردازش زبان یکی از اصلی ترین اهداف پردازش زبان های طبیعی تحقق و توسعه یک مدل ارائه جامع و سراسری برای حل تمامی مسائل در این زمینه میباشد که این موضوع خود با مشکلات اساسی روبرو می باشد . می توان از ساده سازی مفروضات زبانی نام برد . در روش های کنونی ابتدا الگوریتم های یادگیری توسعه داده می شوند و سپس اطلاعات و ویژگی ها با فرمت خاص متناسب با الگوریتم به آن خورانده می شوند. به عنوان مثال یکی از گام های اولیه در زمینه ی رده بندی متون این است که ترتیب لغات و ساختار گرامری در جملات حذف شده و عبارت به صورت یک لیست بدون ترتیب از لغات در می آید[^bags of words] و اکنون به روش های تحلیل آماری نظیر شمارش تعداد تکرار در جمله و .. پرداخته می شود.به این دو جمله دقت کنید : > این مقاله ی او موضوع عجیب و جالبی دارد ، برخلاف سایر مقالاتش. > سایر مقالاتش موضوع عجیب و جالبی دارند ، برخلاف این مقاله ی او. توجه کنید که مفهوم منتقل شده در این جملات کاملا متفاوت می باشد حال آنکه کلمات استفاده شده دقیقا یکسان می باشند . بدیهی است که در صورت استفاده از این مدل ها با مشکلات جدی در زمینه ی استنتاج و دریافت مفهوم جملات مواجه خواهیم بود. ##کارهای مرتبط در این بخش های حوزه ها و کارهای مرتبط را بررسی خواهیم کرد . ###حوزه تحلیل لحن نظرات : بیشتر کار های انجام شده در این ضمینه مبتنی بر روش های مدل کردن [Bags of Words^] می باشد . از جمله آن ها [7] می باشد . همچنین در مقاله [8] به تحلیل نظرات مردم در مورد کیفیت غذا و جَو و ... با در نظر گرفتن جنبه های مختلف رستوران ها بررسی شده است .کار های زیادی هم در حوزه ی کاوش احساسات با روش تغییر قطب ها در ساختار ترکیبی انجام شده است. [9][10] ###حوزه یادگیری عمیق : ایده های ترکیبی زیادی مربوط به شبکه های عصبی در [11][12] انجام شده است . اولین مدل بازگشتی خودکار-مستقل حافظه در [13] . همچنین ارتقای RBMs به عنوان یک لایه ی ویژه برای تشخیص صدا [14] از جمله مقاله های کلیدی در این زمینه می باشد. ---------- ##آزمایشها ---------- ##مراجع [1]. Richard S, Alex P, Jean : Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank: Stanford University. [click](http://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf) [2]. Richard Socher : Recursive Deep Learning For Natural Language Processing : PhD Dissertation , Department Of Computer Science , Stanford , Aug 2014 [click]( http://nlp.stanford.edu/~socherr/thesis.pdf ) [3]. Changliang Li, Bo Xu: Recursive Deep Learning for Sentiment Analysis over Social Data , International Joint Conference on WI and IAT , 2014 [4]. Peter .D , Patric .P : From Frequency to Meaning: Vector Space Models of Semantics: Journal of Artificial Intelligence Research , 2010 [5]. Hidekazu Y : Study on Distributed Representation of Words with Sparse Neural Network Language Model , 3rd International Conference on Advanced Applied Informatics , Osaca , JAPAN , 2014 [6]. Baroni .M, A. Lenci : A general framework for corpus-based semantics: Computational Linguistics , 2010 [7]. Pang B . Lee L : Opinion Mining and Sentiment Analysis : oundations and Trends in Information Retrieval , 2008 [8]. Snyder and R. Barzilay: Multiple aspect rank-ing using the Good Grief algorithm. In HLT-NAACL , 2007 [9]. olanyi and A. Zaenen. 2006. Contextual valence shifters. In W. Bruce Croft, JamesThe Information Retrieval Series [10]. Nakagawa, K. Inui, and S. Kurohashi. 2010. Dependency tree-based sentiment classification using CRFs with hidden variables. In NAACL, HLT. [11].Bottou. From machine learning to machine reasoning : CoRR , 2011 [12].E. Hinton : Mapping part-whole hierarchies into connectionist networks. Artificial Intelligence, 1990 [14]. L. Deng, and F. Seide. Large vocabulary speech recognition using deep tensor neural networks , In INTERSPEECH , 2010 [15]. Marvin Minsky : Society Of Mind , MIT Press 1985 [16]. Semantic-Analysis [click](http://www.boute.ir/iust-pr-93/sentiment-analysis) [^Semantic Analysis]: [Semantic Analysis](http://en.wikipedia.org/wiki/Sentiment_analysis) [^bags of words]: [Bags Of Word Model ](http://en.wikipedia.org/wiki/Bag-of-words_model) [^Deep Learning]: [Deep Learning](http://en.wikipedia.org/wiki/Deep_learning) [^Machine Learning]: [Machine Learning](http://en.wikipedia.org/wiki/Machine_learning) [^Supervised Learning]: [Supervised Learning](http://en.wikipedia.org/wiki/Supervised_learning) [^Unsupervised Learning]: [Unsupervised Learning](http://en.wikipedia.org/wiki/Unsupervised_learning) [^ Artificial Nueral Network ]: [Artificial Neural Network](http://en.wikipedia.org/wiki/Artificial_neural_network) [^RBM]: [Restricted Boltzmen Machine](http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine)