Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks

تغییرات پروژه از تاریخ 1396/09/06 تا تاریخ 1396/10/09
## _چکیده :_

در زمینه بازیابی اطلاعات با query_document_pair و در زمینه question_answering  با question_answer_pair مواجه هسیم . قبل از یادگیری جفت‌های مذکور باید از فضای اصلی (فضای نمادین کلمات) به فضای ویژگی‌ها(شامل ویژگی نوشتاری[^1] و معنایی[^2] و لغوی[^3] ....)
نگاشت شوند . 

در این مقاله سعی شده تا با استفاده از معماری CNN ، برای رتبه بندی جفت‌ها، به منظور به دست اوردن یک نمایش بهینه از آنها و همچنین یک تابع
شباهت [^4]برای بدست آوردن یک ارتباط باناظر[^5] بین آنها استفاده شود . 

متد مورد نظر روی دوعملیات[^6] زیر در زمینه بازیابی اطلاعات[^7] از trec  تست شده 

1-Question  answering 

2-microblog Retrieval
#  یادگیری برای رتبه‌بندی[^8]

##  فرموله کردن مسئله:_

ما در اینجا یک مجموعه از پرس و جو[^9] داریم (q عضو Q )که هر کدام از این query ها دارای جواب کاندید خود هستند 

که این کاندید ها با توجه به ارتباط با سوال قضاوت میشوند  که این مجموعه در صورت ارتباط مقدار یک یا بالاتر و در غیر این صورت مقدار صفر دارا است 

## روشهای یادگیری:_
سه روش متداول برای ساخت تابع رتبه بندی براساس اسم این است :


![](https://boute.s3.amazonaws.com/295-1.JPG)

یکی از تفاوتهای این روش با روش نقطه به نقطه[^10] در داشتن یک حداستانه[^11]  است و همچنین این پارامتر اضافه باعث جداسازی بهتر میشود 

3- Listwise 

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

# ساختار مدل عمیق [^12]

##  ساختار جمله:

در این مرحله هدف ما این است داده های ورودی را به شکل مورد نظر برای  شبکه تبدیل کرد ، بعبارتی بتوان : یک ارائه میانی[^13]  از پرس وجو و سندها[^14]  ارائه کرد که بتوان از ان برای بررسی تطابق معنایی انها استفاده کرد 

###  ساختار ماتریس جمله [^15]:

هر جمله s  شامل مجموعه از کلمات است $$ \left[ { w }_{ 1 },{ w }_{ 2 },...{ w }_{ |s| } \right] $$
که هر کلمه از مجموعه کلمات V  انتخاب شده است که هر کلمه $$ w\epsilon { R }^{ d }$$
باید از ماتریس تعبیه شده$$W\epsilon { R }^{ d*|V| }$$ 
که شامل تمام لغات در V است ، جستجو شود . برای راحتی جستجو لغات بصورت عددی[^16]  اندیس گذاری شده اند . 1,2,3…|v|

برای هر جمله ورودی  باید ماتریس ان جمله ساخته شود. به شکلی هر ستون i متناظر باکلمه شماره i است که در مکان متناظر با ان قرار دارد 

![](https://boute.s3.amazonaws.com/295-2.JPG)


### لایه ها برای ارائه میانی :

### 
![](https://boute.s3.amazonaws.com/295-3.JPG)
با توجه به شکل برای اینکه یک ارائه میانی از جمله ورودی داشته باشیم نیازبه ماتریس جمله s داشتیم ، بعد از آن نیاز به فیلترها داریم که دارای ابعاد d*m  است .البته در صورت استفاده از پنجره عریض [^17]باید چپ و راست ماتریس جمله به تعداد m-1 ستون صفر اضافه کرد عموما چون تاثیر ستون های ابتدایی وانتهایی در حالت wide بیشتر دیده میشود از این حالت استفاده میکنند . در ضمن خروجی فیلتر ها به صورتی برداری ساخته میشود البته دلیلش هم مشخص است چون تعداد سطرهای آن با ماتریس جمله یکی است . 

نیاز به تابع فعالساز است که میتوان از [^18]tanh , sigmoid , relu  استفاده کرد باتوجه به ازمایشات انجام شده relu   بهتر جواب میدهد [1] 

### Pooling:

یکی دیگر از ملزمات ما استفاده از لایه پولینگ (poling) است . برای این لایه دو روش مرسوم است که کار کاهش نمونه[^19] یا همان پولینگ را انجام میدهند (maxpooling,average pooling  ) که این روشها با معایبی همراه هستند . 

1-average pooling  :

مشکل این روش این است که کل درایه هی ورودی درگیر این میانگین گیری میشوند که برای توابع فعالسازی 
همچون  tanh  ممکن است منفی ها و مثبت ها یکدیگر را خنثی کنند[2] 

2- maxpooling :

برای این روش هر چند مشکل بازگشت به عقب روش بالا وجود ندارد اما این مشکل [^20] بیش برازش دارد .
  برای حل مشکلات فوق میتوان  k-maxpooling   استفاده کرد[3]

## معماری برای تطابق جفت متن ها [^21]

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

![](https://boute.s3.amazonaws.com/295-4.JPG)
### تطابق پرس و جو و سندها :

در این مرحله میخواهیم با توجه به ارائه میانی از سندها و پرس وجوها بتوانیم یک معیار شباهت بین این دو ورودی پیدا کنیم . 

این معادله برای میزان شباهت استفاده کردیم . 
$$sim\left( { x }_{ q },{ x }_{ d } \right) ={ x }_{ q }^{ T }M{ x }_{ d }$$
در این معادله $$M\epsilon { \Re  }^{ d*d }$$
یک ماتریس تشابه است . که این ماتریس در طول آموزش میتواند بهبود یابد و تمرین داده شود . معادله بالا یک مدل کانال نویزی [^22]است که در ترجمه ماشین [^23]استفاده شود 

### لایه مخفی [^24]

در این بخش با یک لایه مخفی قبل از لایه بیشنه هموار [^25] مواجه هسیم که معادله آن به شکل زیر است $$\alpha \left( { w }_{ h }.x+b \right) $$. در این معادله wh  وزنهای لایه مخفی است و الفا یک تابع غیر خطی است که کار این لایه برای برقراری ارتباط بین لایه است . 

### بیشینه ملایم : 

در این لایه خروجی لایه‌ها که به بصورت بردار مانند برایش فرستاده شده است برای آنها احتمالشان محاسبه شده است  
![](https://boute.s3.amazonaws.com/295-5.JPG)

### جریان اطلاعات [^26]

در این قسمت به بررسی برداری میپردازیم که شامل ارائه میانی ورودی و شباهت بین آنها و ویژگی ‎‌های اضافی است تا آماده دبرای انتقال به لایه بیشینه هموار
باشد . 
$${ x }_{ joint }=[{ x }_{ q }^{ T };{ x }_{ sim };{ x }_{ d }^{ T };{ x }_{ feat }^{ T }]$$

### تمرین شبکه : 

در این مرحله شبکه باید با توجه به پارامترها خود را آموزش بدهد. 
![](https://boute.s3.amazonaws.com/295-6.JPG)
در این مرحله بر اساس cross-entropy برای تابع هزینه عمل میکند . A خروجی لایه بیشینه هموار است و تتا شامل تمامی پارامترها است 

![](https://boute.s3.amazonaws.com/295-7.JPG)

شامل ماتریس کلمات ،وزن و بایاس فیلترها و ماتریس شباهت و وزن و بایاس لایه مخفی و بیشینه هموار . البته ناگفته نماند که میتوان با استفاده از لایه  کناره‌گیری[^27] با نسبت 0.5 استفاده کرد که باعث تنظیم لایه ها میشود و جلوگیری از اینکه بیش از حد تطابق پیدا کند . 

## ارزیابی [^28]

در این مرحله بر اساس دو معیار MAP[^6] و MRR[^7]  به بررسی معماری خود برروی دیتاست مربوطه میپردازیم ابتدا تعریف دو معیار فوق را میگوییم . 

MRR :

فرمول این معیار عبارت است از : ![](https://boute.s3.amazonaws.com/295-8.JPG)

که (Rank(q  یعنی اینکه جایگاه اولین جواب درست از لیست کاندید

MAP :

این معیار به بررسی تمامی جوابهای درست برای سوال مورد نظر پرداخته 

![](https://boute.s3.amazonaws.com/295-9.JPG)

حال به مقایسه روش مربوطه میپردازیم 

![](https://boute.s3.amazonaws.com/295-table.JPG)
![](https://boute.s3.amazonaws.com/295-table4.JPG)

##مراجع
1.V. Nair and G. E. Hinton. Rectified linear units improve restricted  boltzmann machines. In Proceedings of the 27th International Conference on Machine Learning (ICML-10), pages 807–814, 2010.

2.M. D. Zeiler and R. Fergus. Stochastic pooling for regularization of deep convolutional neural networks. CoRR, abs/1301.3557, 2013.

3.N. Kalchbrenner, E. Grefenstette, and P. Blunsom. Aconvolutional neural network for modelling sentences.
Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics, June 2014.

[^24]:Hidden layer

[^25]:Softamx

[^26]:Information flow

[^27]:Dropout 

[^28]:evaluation

[^29]:Mean Average Precision

[^30]: Mean Reciprocal Rank

[^22]:noisy channel
[^23]:machine translation
[^21]:Text pair  

[^17]:wide

[^18]:Rectified linear unit

[^20]:overfitting
[^19]:Down sampling
[^12]:Deep model

[^13]:intermediate representations

[^14]:document

[^15]:Matrix sentence

[^16]:integer

[^8]:Learning to rank

[^9]:query

[^10]:pointwise

[^11]:threshold

[^1]:syntactic

[^2]:semantic

[^3]:lexical

[^4]:Similarity function

[^5]:supervised

[^6]:task

[^7]:Information retrieval