Deep Reinforcement Learning for Dialogue Generation

تولید گفتگو به کمک یادگیری تقویتی عمیق



به نام خدا

۱. مقدمه

یکی از موضوعات مهمی که در سال‌های اخیر در حوزه پردازش زبان‌های طبیعی1 مورد توجه قرار گرفته، سیستم‌های تولید گفتگو2 است. سیستم‌های تولید گفتگو یا عامل‌های مکالمه کننده3 مانند دستیارهای شخصی 4 و ربات‌های سخنگو 5 در جامعه امروز بسیار فراگیر شده است.[1] که می‌توان در این حوزه به دستیارهای شخصی بر روی تلفن‌های همراه 6یا ربات‌های آنلاین در شبکه‌های اجتماعی همچون تلگرام اشاره کرد. با این حال پاسخ‌های تولید شده توسط این عامل‌ها، جملات کوتاه و قابل پیش‌بینی هستند.

دراین مقاله با استفاده از یادگیری تقویتی عمیق به تولید مدلی برای ربات‌های سخنگو می‌پردازیم،که بتواند مشکلات ذکرشده، را رفع کرده و به تولید پاسخ‌های هماهنگ، منسجم و سرگرم کننده بیانجامد. این مدل، گفتگو بین دو عامل مجازی را با استفاده از سیستم پاداش و تنبیه جهت دستیابی به اهداف بلند مدت در گفتگو7، پیاده سازی می‌کند.[2] این کار را می توان جزء یکی از اولین قدم‌ها در حوزه تولید مکالمه در جهت دستیابی به اهداف بلند مدت دانست.

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

تلاش‌های انجام شده برای ساخت سیستم‌های گفتگو، را می توان به دو گروه اصلی تقسیم کرد:
گروه اول در تلاش بودند،قوانینی برای نگاشت پیام‌های ورودی به پاسخ‌ها، به وسیله‌ی مجموعه بزرگی از داده‌های آموزش8، بیایند و از این طریق پاسخ مناسب هر ورودی را به دست بیاورند.(این گروه مسائل تولید گفتار را جزء مسائل source-to-target transduction به حساب می‌آورند.) ریتر9 و همکارانش مشکل تولید پاسخ را به عنوان یک مسئله ترجمه ماشینی10دسته بندی کردند.[3] در ادامه سوردونی11 سیستم ریتر را بهبود بخشید. او به جای استفاده از سیستم مکالمه بر پایه ترجمه ماشینی کلمه به کلمه12، از شبکه‌های عصبی بهره برد. پیشرفت شبکه‌های عصبی و همچنین مدل 13SEQ2SEQ، منجر به تلاش‌های زیادی در جهت ساخت سیستم‌های مکالمه14 شد.[4]
گروه دوم بر روی ساخت سیستم‌های گفتگو وظیفه‌گرا، برای حل مسائل در دامنه‌های خاص، تمرکز کردند. که بیشتر این تلاش‌ها شامل فرآیند تصمیم‌گیری مارکف15می‌شود.

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

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

  • مشکل اول :
    این مدل با تابع 16MLE آموزش دیده است. دراین مدل احتمال پاسخ به کاربر با جملاتی مانند "I don’t know" زیاد است. اما هدف ربات‌های سخنگو، سرگرم کردن کاربر است و تولید این دست از پاسخ‌ها موجب از دست دادن مخاطب می‌گردد. پس به پاسخ‌هایی نیاز داریم که علاوه بر دارا بودن اطلاعات، توجه مخاطب را نیز جلب کند.

  • مشکل دوم :
    به ستون سمت چپ جدول زیر توجه کنید :

    جدول 1 - ستون سمت چپ : پیاده سازی مکالمه به کمک یک LSTM چهار لایه. ستون سمت راست : پیاده سازی مکالمه به کمک یادگیری تقویتی

یکی دیگر از مشکلات معمول در استفاده از این مدل ایجاد حلقه بی‌نهایت برای سیستم است که سیستم توانایی شکستن این حلقه را ندارد. در قسمت بالا سمت چپ جدول، سیستم در سومین دیالوگ وارد حلقه بی‌نهایت می‌شود. (جدول 1)

با توجه به مشکلات بالا به مدلی نیاز داریم که به هدف17 ربات‌های سخنگو به وسیله پاداش تعریف شده18 دست یابد و همچنین بتواند با در نظر گرفتن اثر بلند مدت19 یک پاسخ بر روی مکالمه جاری، از وقوع حالت‌هایی مانند ایجاد حلقه بی‌نهایت بپرهیزد.

۴. مروری بر ادبیات و مقدمات لازم

۴.۱. شبکه های20LSTM

شبکه‌های LSTM، نوع خاصی از شبکه‌های عصبی بازگشتی هستند که توانائی یادگیری وابستگی‌های بلندمدت را دارند. این شبکه‌ها برای اولین بار توسط سپ هوخرایتر21 و یورگن اشمیدهوبر 22 در سال ۱۹۹۷ معرفی شدند.[5] و در سال 2000 میلادی توسط ژرس و اشمیدهوبر بهبود یافتند.[6]
در حقیقت هدف از طراحی شبکه‌های LSTM، حل کردن مشکل وابستگی بلندمدت23 بوده است. به یاد سپاری اطلاعات برای بازه‌های زمانی بلند مدت، رفتار پیش‌فرض شبکه‌های LSTM‌ بوده و ساختار آ‌ن‌ها به صورتی است که اطلاعات خیلی دور را به خوبی بخاطر می‌سپارند که این ویژگی در ساختار آن‌ها نهفته است.
همه شبکه‌های عصبی بازگشتی به شکل دنباله‌ای (زنجیره‌ای) تکرار شونده، از ماژول‌های (واحد‌های) شبکه‌های عصبی هستند. در شبکه‌های عصبی بازگشتی استاندارد، این ماژول‌های تکرار شونده ساختار ساده‌ای دارند، در حالی که در شبکه‌های LSTM ماژول تکرار شونده به جای داشتن تنها یک لایه شبکه عصبی، ۴لایه دارند که طبق ساختار ویژه‌ای با یکدیگر در تعامل و ارتباط هستند.[8،7] (شکل‌های 1 و 2)

شکل 1 - ماژول‌های تکرار شونده در شبکه‌های عصبی بازگشتی استاندارد فقط دارای یک لایه هستند.

شکل 2 - ماژول‌های تکرار شونده در LSTM‌ها دارای ۴ لایه که با هم در تعامل هستند است.

۴.۲. مدل رمزنگار-رمزگشا (توالی به توالی ) شبکه 24LSTM

مدل رمزنگار-رمزگشا LSTM یک شبکه عصبی بازگشتی برای مسائلی است که یک دنباله را به دنباله دیگر نگاشت می‌کند. (یک دنباله به عنوان ورودی دریافت می کند و خروجی، دنباله دیگری است.) به همین دلیل به آن مدل seq2seq نیز گفته می‌شود. در مسائل seq2seq دنباله ورودی و خروجی می‌توانند دارای طول های متفاوتی باشند به همین دلیل این مسائل از اهمیت زیادی برخوردار بوده و چالش برانگیزند.[9]
مدل seq2seq، در مسائلی چون ترجمه ماشینی، خلاصه‌کردن متن 25و تشخیص گفتار26 کاربرد دارد. به طور مثال در ترجمه ماشینی سنتی، جمله‌ها به چند قسمت تقسیم می‌شوند و هر قسمت به صورت جداگانه ترجمه می‌شود که منجر به اختلال در خروجی ترجمه‌ می‌گردد. این در حالی است که انسان ها برای ترجمه یک جمله ابتدا معنای آن را متوجه می‌شوند سپس جمله را ترجمه می‌کنند. مدل seq2seq در ترجمه ماشینی از روش انسان گونه‌ی ترجمه پیروی می‌کند.[10]
این معماری از ترکیب دو مدل تشکیل شده است. ابتدا دنباله ورودی رمزگذاری شده و به برداری از اعداد با طول ثابت تبدیل می‌شود که به آن، بردار فکر27 گفته می‌شود. سپس برای رمزگشایی، بردار به دنباله‌ی خروجی تبدیل می‌شود.[10،9] (شکل 3)

شکل 3 - مدل رمزنگار- رمزگشا در ترجمه ماشینی

۵. مدل یادگیری تقویتی

در این بخش به توضیح بخش های مختلف مدل مورد استفاده می پردازیم.
سیستم یادگیری شامل دو عامل است. (عامل اول را p و عامل دوم q می‌نامیم.) عامل ها به نوبت می توانند با دیگری صحبت کنند. یک گفتگو به صورت دنباله‌ای از جمله‌ها است که به وسیله هر دو عامل تولید شده و به صورت زیر نمایش داده می‌شود. (فرمول 1)


{p}_{1}, {q}_{1}, {p}_{2}, {q}_{2}, ... , {p}_{i}, {q}_{i}

فرمول شماره 1 - دنباله‌ای از جمله‌ها


۵.۱. عمل

عمل28 a یک صحبت یا دیالوگ است که قرار است توسط یکی از عامل‌ها تولید شود. فضای حالت اعمال، بی نهایت است زیرا دنباله‌های تولید شده طول دلخواهی دارند.

۵.۲. حالت

حالت 29 به صورت دوتایی شامل [p,q] است که دیالوگ قبلی تولید شده توسط هر کدام از عامل‌ها را نشان می‌دهد. تاریخچه گفتگو بین 2 عامل در یک بردار ذخیره می‌شود.

۵.۳. سیاست

سیاست30، احتمال انتخاب یک عمل را وقتی در یک حالت خاص سیستم هستیم، به ما می‌دهد31. ما از نمایش تصادفی سیاست استفاده می‌کنیم که همان توزیع احتمال بر روی عمل‌ها نسبت به حالت‌های داده شده است. سیاست در این‌جا به شکل یک مدل رمزنگار-رمزگشا در شبکه LSTM تعریف شده و به صورت زیر است. (فرمول شماره 2)


{P}_{RL} ({p}_{i+1}| {p}_{i},{q}_{i})

فرمول شماره 2


۵.۴. پاداش

هر پاداش از 3 بخش تشکیل می‌شود که در زیر به توضیح آن‌ها می‌پردازیم.

۵.۴.۱. سهولت در پاسخگویی32

پاسخ به دیالوگی که توسط ماشین تولید می‌شود باید آسان باشد.33حال می‌خواهیم این مقدار را اندازه بگیریم: جهت محاسبه میزان سهولت پاسخگویی، به جای محاسبه تمام حالت‌هایی که می‌توانند جواب مناسبی داشته باشند، منفی احتمال جملاتی که باعث ایجاد گمراهی برای ماشین می‌شوند34مانند دو جمله زیر :

  • I don’t know what you are talking about.

  • I have no idea.

را محاسبه می‌کنیم. مجموعه ای از این جملات (S)را در نظر گرفته و به کمک این مجموعه و احتمالات مدل seq2seq به محاسبه پاداش (r1) می‌پردازیم. (فرمول 3)
مجموعه جملات گمراه‌کننده(مجموعه S) در این مقاله به صورت دستی ساخته می‌شود35 و شامل فقط 8 نوبت دیالوگ مانند آنچه که در بالا ذکر شد، می‌باشد.


r_1 = - \frac{1}{N_\mathbb{S}}\sum\limits_{s\in\mathbb{S}}\frac{1}{N_s}log p_{seq2seq}(s|a)

فرمول شماره 3 - محاسبه پاداش r1


در این فرمول مقدار {N_\mathbb{S} NS برابر تعداد عناصر مجموعه S {mathbb{S\ ، Ns تعداد واحدهای سازنده در یک جمله گمراه‌کننده s و Pseq2seq احتمال خروجی به وسیله مدل seq2seq است.

۵.۴.۲. جریان اطلاعات36

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


r_2 = -log cos (\theta) = - log \frac {h_{p_i}. h_{{p}_{i+1}}} {|| h_{p_i} || || h_{p_{i+1}}||}

فرمول شماره 4 - محاسبه پاداش r2


مقادیر hpi و hpi+1 در فرمول شماره 4 نمایش بردار رمزنگار در 2 نوبت متوالی pi و pi+1 را نشان می‌دهند.

۵.۴.۳. هماهنگی معنایی37

همچینین می‌خواهیم از حالت هایی که پاسخ ها دارای امتیاز (پاداش) بالا هستند اما از نظر معنایی هماهنگی با مکالمه بین 2 عامل ندارند پرهیز کنیم. به همین دلیل میزان اشتراک اطلاعات بین عمل انتخاب شده و دیالوگ‌های قبلی بیان شده در متن را بررسی می‌کنیم .


r_3 = \frac {1}{N_a} log p _{seq2seq}(a| q_i , p_i) + \frac {1}{N_{q_i}}log p_{seq2seq}^{backward}

فرمول شماره 5 - محاسبه پاداش r3


مقادیر Pseq2seq احتمال رخداد a در دیالوگ قبلی [pi,qi] و Pbackward seq2seq احتمال رخداد دیالوگ قبلی بر حسب a را نشان می‌دهد. برای به دست آوردن احتمال Pbackward seq2seq، بار دیگر مدل را مانند یک مدل seq2seq استاندارد آموزش می‌دهیم تنها در جفت‌های منبع- هدف جای آن‌ها را با هم عوض می‌کنیم. به این معنی که بار دیگر مدل را به این صورت آموزش داده و احتمالات آن را به دست می‌آوریم و برای محاسبه پاداش r3 از آن بهره می‌گیریم.

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


r (a , [p_i,q_i] )= {\lambda}_{1}r_1 + {\lambda}_{2}r_2 + {\lambda}_{3}r_3

فرمول شماره 6 - جمع وزن‌دار پاداش‌هایی r2,r1وr3

{\lambda}_{1} + {\lambda}_{2}+ {\lambda}_{3} = 1

فرمول شماره 7


که در آن مجموع ضرایب پاداش ها 1 است. (فرمول 7) و در این مدل این ضرایب را با مقادیر زیر مقدار دهی می کنیم. (فرمول 8)


{\lambda}_{1} = 0.25
{\lambda}_{2} = 0.25
{\lambda}_{3} = 0.5

فرمول شماره 8 - مقادیر ضرایب پاداش ها در این مدل


۶. شبیه سازی38

مسئله اصلی مد نظر در این کار، پیاده سازی فرآیند صحبت کردن دو عامل مجازی، با درنظر گرفتن نوبت است. برای حل این مسئله ابتدا فضای حالت-عمل را جستجو کرده تا مدل، سیاستی را یاد بگیرد که منجر به پاداش بهینه شود.

{P}_{RL} ({p}_{i+1}| {p}_{i},{q}_{i})

برای پیاده سازی راه حل ذکر شده، از راهبرد39 ابداع شده توسط گوگل در پروژه 40AlphaGo استفاده می‌شود.[13،12،11] بر این اساس مدل یادگیری تقویتی به کمک سیاستی که به صورت بانظارت، آموزش دیده است، مقدار دهی اولیه می‌شود.

۶.۱. یادگیری با نظارت41

درمرحله اول آموزش، براساس کارهای قبلی انجام شده در این حوزه عمل کرده و به کمک مدل SEQ2SEQ بانظارت و با توجه به تاریخچه گفتگو داده شده، یک دنباله، پیش‌بینی می‌کنیم. نتایج به‌دست‌ آمده از مدل بانظارت، در آینده برای مقداردهی اولیه استفاده می‌شود. مدل SEQ2SEQ را با توجه به مجموعه داده OpenSubtitles (در بخش 7.1 بیشتر توضیح داده می‌شود.) که 80 میلیون جفت منبع-هدف 42 را شامل می‌شود، آموزش داده و در مجموعه داده هر نوبت را یک هدف و پیوند دو جمله قبلی را به عنوان ورودی یا منبع هر مرحله درنظر می‌گیریم.

۶.۲. اطلاعات مشترک43

اغلب نمونه‌هایی که از مدل SEQ2SEQبه دست می‌آیند (جملاتی مانند "i don’t know")، گنگ و عمومی هستند. بنابراین ما نمی‌خواهیم از مدل SEQ2SEQ برای پیش‌آموزش44 سیاست مدنظر این مسئله استفاده کنیم. زیرا موجب عدم تنوع در مدل RL می‌شود. لی و همکارانش نشان دادند که مدل کردن اطلاعات مشترک بین منبع‌ها و هدف‌ها به مقدار قابل توجهی احتمال تولید پاسخ‌های گنگ را کاهش می‌دهد و کیفیت پاسخ‌های تولید شده را بالا می‌برد. حال می‌خواهیم مدل رمزنگار-رمزگشا را به‌دست آوریم که پاسخ هایی تولید کند، که دارای حداکثر اطلاعات مشترک باشند.[14]
ما با مسئله تولید پاسخ‌های دارای حداکثر اطلاعات مشترک، به عنوان یک مسئله یادگیری تقویتی برخورد می‌کنیم. پاداش اطلاعات مشترک زمانی مشاهده می‌شود که مدل به پایان یک دنباله رسیده باشد. برای بهینه‌سازی از روش policy gradient استفاده می‌کنیم.
در این مرحله سیاست مدل Prl، با استفاده از یک مدل از پیش‌ آموزش دیده(Pseq2seq(a | pi,qi مقداردهی می‌شود. سپس با توجه به منبع ورودی داده شده [pi,qi]، یک لیست نامزدی تولید شده(فرمول 9) و به ازای هر نامزد به کمک مدل از پیش‌آموزش‌دیده (Pseq2seq(a | pi,qi و (PbackwardSeq2Seq(qi | a امتیاز اطلاعات مشترک محاسبه می‌شود. این امتیاز به عنوان پاداش برای مدل رمزگشا - رمزنگار استفاده می‌شود تا موجب بهبود شبکه برای تولید دنباله‌هایی با پاداش بالاتر شود45.[15] پاداش مد نظر برای یک دنباله به شکل زیر است : (فرمول 10)


A= \big\{ \hat{a} | \hat{a} \sim {P}_{RL}\big\}

فرمول شماره 9 -لیست نامزدها

J ( \theta ) = E \big[ m ( \hat{a} , \big[ p_i , q_i \big] ) \big]

فرمول شماره 10


و گرادیان به روش زیر تخمین زده می‌شود.(فرمول 11)


\nabla J ( \theta ) = m ( \hat{a} , \big[ p_i , q_i \big] ) \nabla log {P}_{RL} (\hat{a} | \big[ p_i , q_i \big] )

فرمول شماره 11


۶.۳. شبیه‌سازی گفتگو بین دو عامل

مکالمه بین دو عامل مجازی که به نوبت با یکدیگر صحبت می‌کنند را شبیه‌سازی کردیم. مراحل شبیه‌سازی به شرح زیر است :
در گام اول یک پیام از مجموعه آموزش به اولین عامل فرستاده می‌شود. عامل، پیام ورودی را به یک بردار، رمزگذاری می‌کند و سپس برای تولید پاسخ خروجی به کمک شبکه، بردار را رمز گشایی می‌کند. خروجی عامل اول با تاریخچه گفتگو ترکیب شده و عامل دوم به وسیله‌ی تاریخچه گفتگو، حالت خود را بروزرسانی می‌کند. عامل دوم تاریخچه گفتگو را به صورت نمایش برداری، رمزنگاری کرده و با استفاده از رمزگشا RNN پاسخ‌های خود را تولید می‌کند که متعاقبا به عامل اول باز می‌گردد. و این روند دوباره تکرار می‌شود. (شکل 4)

شکل 4 - شبیه‌سازی گفتگو بین دو عامل

۶.۳.۱. بهینه‌سازی

در این بخش برای بهینه کردن مدل، می‌توان مدل سیاست Prl را با مقادیر مدل اطلاعات مشترک مقداردهی کرد. که در بخش‌ قبل به توضیح آن پرداخته‌شد. سپس از روش policy gradient، برای یافتن پارامترهایی که به سمت پاداش بیشتر رهنمون می‌شوند، استفاده کرد. مقدار پاداش بیشینه، به صورت زیر به‌دست می‌آید. (فرمول 12) و سپس گرادیان را نیز می‌توان به صورت تقریبی از طریق فرمول 13 به‌دست آورد.


J_{RL} ( \theta ) = E_{ PRL (a_{1:T})} \big[ \sum_{i=1}^{i=T} R( {a}_{i} , \big[ p_i , q_i \big] ) \big]

فرمول شماره 12

\nabla J_{RL} ( \theta ) \approx \sum_{i} \nabla log p ({a}_{i} | p_i , q_i ) \sum_{i=1}^{i=T} R( {a}_{i} , \big[ p_i , q_i \big] )

فرمول شماره 13


۷. نتایج تجربی 46

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

  1. طول مکالمه (تعداد نوبت ها در کل دوره).

  2. تنوع.

۷.۱. معرفی مجموعه داده

در شبیه‌سازی گفتگو، ورودی‌های اولیه که به عامل داده می‌شوند باید از کیفیت بالایی برخوردار باشند. برای مثال ورودی اولیه به صورت "?why" نامطلوب است زیرا مشخص نیست، گفتگو چگونه ادامه می‌یابد.
جهت پیاده سازی این کار، از مجموعه داده47 مکالمات فیلم‌های کورنل48 استفاده می‌شود. این مجموعه شامل 220579 مکالمه بین جفت شخصیت‌های 617 فیلم (شامل 9035 شخصیت) و در مجموع شامل 304713 دیالوگ است.
این مجموعه داده، شامل اطلاعات دیگری مانند ژانر فیلم‌ها، سال تولید‌، رتبه‌ی سایت IMDB49، تعداد رای‌دهندگان این سایت و غیره، که از آن‌ها با عنوان ابرداده‌های 50 فیلم وشخصیت‌های فیلم یاد می‌کند، نیز می‌باشد؛ که در این مقاله‌ از آن‌ها استفاده نمی‌کنیم و تنها از مکالمات استخراج شده از فیلم برای تولید دیالوگ بهره می‌بریم. [16]
تمامی جملات مجموعه داده مورد استفاده، به صورت زبان انگلیسی است که این مجموعه را می‌توان از این لینک دریافت کرد.

در مقاله اصلی، بخشی ازمجموعه داده سایت Opensubtitle مورد استفاده قرار گرفته است، که شامل 10 میلیون پیام می‌باشد. که جهت اطمینان از ساده بودن مجموعه داده ورودی در پاسخگویی، 0.8 میلیون دنباله از آن استخراج شده که کمترین احتمال تولید جملاتی مانند:

  • i don’t know what you are taking about.

به عنوان پاسخ در آن وجود دارد.[17]

۷.۲. پیاده‌سازی

برای پیاده‌سازی این پروژه از ابزار یادگیری عمیق تنسورفلو51 در بستر زبان برنامه‌نویسی پایتون استفاده شده است. به علت تعداد داده‌های زیاد مورد نیاز برای این پروژه و همچنین استفاده از روش‌های یادگیری عمیق و یادگیری تقویتی، پیاده‌سازی و آموزش مدل برای تولید گفتگو بین دو عامل، به توان پردازشی بسیار بالایی نیاز دارد. به همین دلیل برای آموزش مدل از سروری52 با 32 گیگابایت حافظه موقت 53 و پردازنده مجازی با 8 هسته توان پردازشی54 استفاده کردیم.[18]
حال در ادامه به بررسی مدل پیاده‌سازی شده خواهیم پرداخت. همچنین کد پیاده‌سازی این مدل نیز در این لینک موجود است.

۷.۲.۱. پیش‌پردازش‌ها55

همانطور که می‌دانیم پیش از هر کاری در حوزه پردازش زبان‌های طبیعی، باید به پیش پردازش داده‌ها پرداخت. بخشی از داده‌های این مجموعه داده که ما در پیاده‌سازی از آن‌ها استفاده می‌کنیم به صورت جمله‌های پشت سرهم هستند که هر جمله به صورت مستقل در یک خط آورده شده است. (جدول 2)

Absolutely!  May my mother grow two heads if I'm not telling the truth.
Igor -- are you sure the monster has a good brain?  Are you absolutely certain that you took the brain of Hans Delbruck that night?
Oh, Igor -- I'm so afraid!  I just hope this all ends well.
What d'ya want to do to kill time?Yes.
Three minutes to go!
Four
How long is it so far?
The doctor said to allow seven minutes:  no more and no less -- or else they could both become hopelessly paralyzed.
How do you know they're done? 
Why certainly.  Don't you, Frau Blucher?
I think the doctor is a genius! Don't you, Igor?
You can't expect to iron out all the kinks in one night.
Look how far we've come.Why don't we all turn in?  It's been a long day.
I'm getting tired.

جدول 2 - تعدادی جملات به صورت نمونه از مجموعه داده اولیه بدون اعمال پیش‌پردازش‌ها

در بخش تجزیه داده (در فایلdata_parser.py) ابتدا با استفاده از علامت n\ جملات را که هر کدام در یک خط به صورت جداگانه آورده شده‌اند، از هم جدا کرده56و سپس به حذف علامت‌ها و کلمات متوقف‌کننده57 مانند ؟، !، /، "، . و غیره می‌پردازیم.
با جداسازی جملات به وسیله کاراکتر فاصله، کلمات متن را به‌دست آورده و سپس با شمارش تعداد تکرار هر کلمه، فهرستی از واژگان58 و تعداد تکرار آن‌ها، به‌دست می‌آید. به فهرست واژگان تعدادی از برچسب‌59های جملات، مانند برچسب ابتدای جمله <bos>، برچسب انتهای جمله <eos> و غیره افزوده می‌شود و همانطور که می‌دانیم، تعداد این برچسب ها برابر با تعداد جملات است. سپس به محاسبه احتمال هر کدام از جملات پرداخته و این مقادیر و فهرست واژگان به عنوان خروجی این فایل جهت آموزش به مدل seq2seq داده می‌شود.

۷.۲.۲. آموزش مدل seq2seq

همانطور که در بخش‌های قبلی به آن اشاره شد در مراحل آموزش، ابتدا مدل خود را با مدل seq2seq استاندارد، آموزش می‌دهیم. در این بخش (فایل train.py) ابتدا با خواندن مجموعه داده از فایل و اعمال پیش پردازش‌ها، خروجی‌های ذکر شده در بالا و مشخصات شبکه‌های lstm رمزنگار و رمزگشا، به مدل seq2seq داده شده (فایل model.py) و فایل train.py مدل آموزش دیده را به صورت شیی60 از کلاس Seq2Seq_chatbot دریافت می‌کند. در ساختار این کلاس، دو شبکه lstm برای بخش‌های رمزنگار و رمزگشا ساخته می‌شود. در این پیاده سازی دو بخش رمزنگار و رمزگشا از همدیگر جدا هستند61. [19]

شکل 5 - نمودار وزن‌های اختصاص داده شده در شبکه lstm به صورت سه بعدی

۷.۲.۳. آموزش مدل به کمک روش‌های یادگیری تقویتی

پس از آموزش مدل به اندازه کافی (تعداد دوره‌62های کافی)، به کمک شبکه‎های lstm مدل seq2seq و پاداش‌های تعریف شده در بخش 5.4، با استفاده از یادگیری تقویتی به آموزش مدل می‌پردازیم. همانطور که گفته شده این مدل نیاز به آموزش مدل به صورت معکوس به وسیله مدل seq2seq دارد. در این پیاده‌سازی از همان مجموعه داده قبلی، برای آموزش مدل معکوس نیز استفاده می‌شود تنها جفت‌های منبع و هدف با یکدیگر جابه‌جا می‌شوند. این مدل را به صورت یک مدل آماده نیز می توان از طریق اجرای نوشته63 download_reversed.sh به‌دست آورد. برای آموزش مدل به وسیله روش‌های یادگیری تقویتی به هردو مدل استاندارد و معکوس نیاز داریم.

شکل 6 - بخشی از گزارش آموزش مدل در دوره 56 ام

۷.۲.۴. آزمودن مدل

در این بخش می‌خواهیم نکاتی را درباره‌ی آزمودن مدل ذکر کنیم. داده‌های ورودی را می‌توان هم با مدل آموزش دیده seq2seq و هم با مدل آموزش دیده RL آزمود. برای این منظور می‌توان مدل‌های آموزش دیده را به 2 صورت آزمود :

  • نوع 1 : در صورت انتخاب نوع 1 برای تولید جمله بعدی فقط جمله قبلی در نظر گرفته می‌شود.

  • نوع 2 : در صورت انتخاب نوع 2 برای تولید جمله بعدی دو جمله قبلی در نظر گرفته می‌شود. (یک جمله از عامل دیگر و جمله دیگر از خودش)
    در این پیاده‌سازی از یک فایل config استفاده می‌شود که تمام مقادیر اولیه و آدرس‌های مورد نیاز برای فایل‌ها در آن آورده شده و در بقیه فایل‌ها از این فایل برای مقداردهی متغیر‌ها استفاده می‌شود.

۷.۳. نمونه نتایج به‌دست‌آمده

نتایج زیر از آموزش مدل از طریق مدل seq2seq به اندازه 77 دوره و مدل RL به اندازه 56 دوره به‌دست آمده است.
نمونه زیر از شبیه‌سازی نوع اول به‌دست آمده است به این معنی که برای تولید جمله بعدی فقط از جمله قبلی استفاده شده است. (جدول 3)

dialog 6
A: I guess I thought I was protecting you.
B: Oh yeah well it must be fun having someone with the whole thing.
A: Yeah do you mean.
B: I
A: I can't I'm too good for it.
B: What he did i'll say.
A: He said.
B: I said not as he said it was in his office.
A: Then why.
B: I told you.
A: I just talked you into anything.
B: My guess got it back there. That's what I'm here for.
A: Yeah.
B: I'm not leaving you alone.
A: Yeah. C'mon.
B: I'm sorry baby I can't I just wanna go home.
A: I don't know. Maybe I won't.
B: You're too young to be here are you with me.
A: There are things you up to.
B: No problem I mean my son is a paper. Got a hard time.
A: Oh it's been a lot time for uh - work with the show.

جدول 3 - نمونه ای از دیالوگ تولید شده توسط مدل آموزش دیده از طریق مدل RL و seq2seq - نوع اول شبیه‌سازی

نمونه دوم از شبیه سازی نوع دوم به‌دست آمده است به این معنی که برای تولید جمله بعدی از دو جمله آخر استفاده می‌شود. (جدول 4)

dialog 1
A: How are you?
B: Oh hi I thought you were good.
A: Come on.
B: You look beautiful.A: Give me the bad.
B: You got a bet on your mind.A: You sure.
B: I'll try. Where's the family little guy.A: Sure. But I hate the when the mother died.
B: What are you talking about.
A: I don't know.
B: I know. The doctor leaves whatever you want.
A: Don't worry about it.
B: I like it here my parents use my name.
A: Sorry for one thing but I'm not a real strong we could send out some kind of news.
B: Listen you know I got a lot better stuff.
A: Thanks for the gold.
B: You don't look like a real work but I can't i'll get you to a place like this.
A: Stop it it's me.
B: I was going to say it was a very important compliment if my back.
A: No. You're is going to jump down a way.

جدول 4 - نمونه ای از دیالوگ تولید شده توسط مدل آموزش دیده از طریق مدل RL و seq2seq - نوع دوم شبیه‌سازی

در هر نوع از خروجی‌های به‌دست آمده، 53 مکالمه تولیدشده است که فایل آن‌ها و همچنین فایل ورودی نمونه را می‌توان از این لینک دریافت کرد.

۷.۴. ارزیابی خودکار64

ارزیابی سیستم‌های گفتگو، دشوار است. معیار‌هایی مانند 65BLEU و سرگشتگی66 به طور گسترده برای ارزیابی کیفیت گفتگو استفاده می‌شوند.[20] از آن‌جایی که هدف از سیستم پیشنهادی، پیش‌بینی پاسخ با بیشترین احتمال نیست، بلکه موفقیت طولانی مدت گفتگو مدنظر است ما معیار‌های خودکار BLEU و یا سرگشتگی را برای ارزیابی به کار نمی‌گیریم.

۷.۴.۱. طول گفتگو67

اولین معیار پیشنهادی ما طول دوره گفتمان شبیه‌سازی شده است. از نظر ما یک گفتگو زمانی به اتمام می‌رسد که یکی از عامل‌ها، شروع به تولید پاسخ‌های گمراه‌کننده68 مانند "i don’t know" کند یا دو حرف متوالی از یک کاربر همپوشانی بسیاری داشته باشد.
مجموعه آزمایش شامل 1000 پیام ورودی است. برای کاهش احتمال69 ایجاد حلقه در گفتگوها70، تعداد نوبت‌های شبیه سازی شده را به کمتر از 8 نوبت محدود می‌کنیم. نتایج این بخش در جدول 5 نشان داده شده است. (جدول 5)

نوع مدل متوسط تعداد نوبت های شبیه‌سازی شده
SEQ2SEQ 2.68
Mutual Information 3.40
RL 4.48

جدول 5 - متوسط تعداد نوبت‌های شبیه‌سازی شده برای مدل‌های seq2seq استاندارد، مدل اطلاعات مشترک و مدل پیشنهادی RL.

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

۷.۴.۲. تنوع71

درجه تنوع با محاسبه تعداد یک‌تایی‌72ها و دوتایی‌73های مجزا در پاسخ‌های تولید شده، گزارش می‌شود. این مقدار به وسیله تعداد کل واحد74های تولید شده، درجه‌بندی شده تا از پیشنهاد جملات طولانی (برای بالابردن پاداش با ایجاد تنوع) اجتناب کند75.[14] بنابراین معیار تنوع، نسبت نوع به واحد‌های سازنده متن76 برای یک‌تایی‌ها ودوتایی‌ها است. امتیاز مدل‌های مختلف براساس تنوع پاسخ‌های تولید شده را در جدول 6 می‌بینید.

نوع مدل یک‌تایی‌ها دوتایی‌ها
SEQ2SEQ 0.0062 0.015
Mutual Information 0.011 0.031
RL 0.017 0.041

جدول 6 - امتیاز‌های تنوع پاسخ‌ها (نسبت نوع به واحد‌های سازنده متن) برای مدل‌های SEQ2SEQ استاندارد، اطلاعات مشترک و مدل RL پیشنهادی.

با توجه به نتایج جدول درمی‌یابیم که خروجی‌های تولید شده توسط مدل RL پیشنهادی نسبت به دیگر مدل‌ها (در مقایسه با مدل‌های اطلاعات مشترک و seq2seq استاندارد) از تنوع بیشتری برخوردار است. (جدول 6)

۷.۵. ارزیابی انسانی77

برای ارزیابی انسانی سه نوع تنظیم متفاوت درنظرمی‌گیریم. در تنظیم اول از داوران عمومی78 برای ارزیابی یک نمونه تصادفی از بین 500 نمونه، استفاده می‌شود. سپس پیام ورودی و پیام خروجی انتخاب شده را به سه داور تحویل می‌دهیم و از آن‌ها می‌خواهیم تا تصمیم بگیرند کدام یک از دو خروجی(خروجی‌های به دست آمده از مدل RL و اطلاعات مشترک) داده شده بهتر است. این تنظیم که کیفیت یک خروجی را به تنهایی در یک نوبت می‌سنجد، با نام single-turn general quality مشخص می‌شود.
در دومین تنظیم،دوباره پیام‌های ورودی و خروجی‌های سیستم به داور‌ها ارائه می‌شود. اما این بار از آن ها در خواست می شود که از بین دو خروجی، خروجی را انتخاب کنند که پاسخ به آن راحت‌تر باشد. این تنظیم که میزان سادگی برای پاسخگویی در یک نوبت را نشان می‌دهد،single-turn ease to answer می‌نامیم. مجددا در این سنجش نیز یک نمونه تصادفی از 500 مورد را ارزیابی می‌کنیم که هر کدام به 3 داور تحویل داده می‌شود.
برای سومین تنظیم، مکالمات شبیه سازی شده بین دو عامل، به داورها ارائه می‌شود. هر مکالمه شامل 5 نوبت است. ما 200 مکالمه شبیه‌سازی شده را ارزیابی می‌کنیم، و هر کدام را به سه داور تحویل می‌دهیم و از آن‌ها می‌خواهیم که در مورد این که کدام یک از مکالمات شبیه سازی شده، از کیفیت بالاتری برخوردار است، تصمیم بگیرند. این تنظیم، multi-turn general quality نام دارد.

نوع تنظیم RL-win RL-lose
single-turn general quality 0.40 0.36
single-turn ease to answer 0.52 0.23
multi-turn general quality 0.72 0.12

جدول 7 - بهره سیستم RL بر سیستم اطلاعاتی مشترک براساس ارزیابی انسانی.

نتایج ارزشیابی انسانی در جدول 7 نشان داده شده است. همانطور که انتظار می‌رفت، سیستم RL پیشنهادی افزایش قابل توجهی در کیفیت یک تک نوبت (حالت1) ایجاد نمی‌کند. (بردن در 40 درصد زمان‌ها شکست در36 درصد زمان‌ها) زیرا مدل RL برای پیش‌بینی حرف بعدی بهینه‌سازی نشده است، بلکه برای افزایش پاداش بلندمدت است. با توجه به پاداش در نظر گرفته برای مدل RL در مراحل قبلی،سیستم RL جواب‌هایی را تولید می‌کند که پاسخ به آن‌ها به طور قابل توجهی ساده‌تر از سیستم اطلاعات مشترک است. همچنین مقادیر جدول در تنظیم سادگی پاسخ در یک نوبت، بر گفته‌های قبلی دلالت دارد در این تنظیم میزان بردن 52 % زمان‌ها و میزان باختن 23% زمان‌هاست. و همچنین در گفتگوهای چند نوبته نیز، مدل RL پیشنهادی، به طور قابل ملاحظه‌ای کیفیت بالاتری دارند. (نتایج حالت سوم در جدول 7 نشان داده شده است.)

۸. نتایج و کارهای آینده

۸.۱. تجزیه و تحلیل کیفی مدل

یک نمونه تصادفی از پاسخ‌های تولید شده با توجه به پیام ورودی، در جدول شماره 8 نشان داده شده است وهمچنین نمونه‌ای از مکالمات شبیه‌سازی شده نیز در جدول 1 ابتدای مقاله ملاحظه می‌شود.

RL مدل اطلاعات مشترک پیام ورودی
?I’m 16, why are you asking .I’m 16 ?How old are you
?What’s yours .I have no idea ?What’s your full name
?Why ?Really .I don’t want to go home tonight
.I don’t want to hurt your feelings .I don’t know what you are talking about ?Do you have any feelings for me
.Ten seconds .Not long enough. Sorry, sir ?How much time do you have here
.Yes. We’ve got a lot of work to do here !Of course ?Shall we get started
!Yes. I love football .No, i don’t ?Do you play football
?About what I mean, he’s a good guy .We’d have to talk to him
.I don’t think it’s a good idea to say it .Because I don’t want to hurt you ?How come you never say it

جدول 8 - نمونه پاسخ‌های تولید شده با مدل‌های اطلاعات مشترک و RL پیشنهادی.

از جدول 8 می‌توان نتیجه‌گرفت که عامل بر مبنای مدل RL، پاسخ‌های تعاملی‌تری را نسبت به بقیه مدل‌ها تولید می‌کند و همچنین مدل RL، به پایان دادن جمله با سوالی دیگر و انتقال مکالمه به عامل دیگر، گرایش دارد. و همانطوری که در جدول 1 نیز مشاهده می‌شود مدل RL موفق به تولید مکالمات تعاملی و پایدار‌تری نسبت به مدل اطلاعات مشترک می‌گردد. (جدول 1و8)

۸.۱.۱. تحلیل خطا

با اینکه در این مدل پاسخ‌های تکراری جریمه می‌شوند (به آن‌ها پاداش منفی اختصاص داده می‌شود)، گاهی گفتگوها در یک حلقه تکراری با طولی بیشتر از یک می‌افتند مانند آنچه در جدول 9 مشاهده می‌شود. (جدول 9)

A: What’s your name ?
B: Daniel.
A: How old are you ?
B: Twelve. What’s your name ?
A: Daniel.
B: How old are you ?
A: Twelve. What’s your name ?
B: Daniel.
A: How old are you ?
B: ...

جدول 9 - یک نمونه مکالمه شبیه‌سازی شده با یک حلقه با طول بیشتر از یک.

از مشکلات دیگر مدل فعلی می توان به موارد زیر اشاره کرد:

  • گاهی اوقات مدل، موضوعی را در طول مکالمه آغاز می‌کند که ارتباط کمی با موضوع اصلی مکالمه دارد. در نتیجه همانطوری که در فرمول شماره 6 ذکر شده است باید توازنی بین ارتباط بین جملات در یک مکالمه و تکرار کمتر آن‌ها وجود داشته باشد.

  • در این مدل ما فقط می‌توانیم تعداد بسیار کمی از نامزدها و نوبت‌های شبیه سازی شده را بررسی کنیم، زیرا تعداد موارد مورد نظر به صورت نمایی79 رشد می‌کند.

۸.۲. نتیجه‌گیری

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

۸.۳. کار‌های آینده

در این بخش می‌خواهیم به بررسی ایده‌های جدید برای ادامه کار بپردازیم.
همانطوری که در بخش قبل ذکر شد، یکی از مشکلاتی که در این کار با آن روبرو هستیم تولید مکالمه با حلقه با طول بیشتر از یک است. برای رفع این اشکال می‌توان در پاداش جریان اطلاعات (در بخش 2.4.5) به جای در نظر گرفتن شباهت فقط با دیالوگ قبلی مطرح شده توسط یک عامل، میزان شباهت با کل تاریخچه گفتگو از یک عامل، در نظر گرفته شود. این بخش از پاداش را می‌توان مانند یک پاداش وزن‌دار در نظر گرفت. و به میزان شباهت به هر کدام از جملات، ضریبی اختصاص داد. به این معنی که مقایسه تکرارای بودن جمله قبلی، تاثیر بیشتری نسبت به جملات اول مکالمه داشته باشد. (ضریب جملات نزدیک‌تر نسبت به جملات اولیه بیشتر باشد.)
از اشکالات این روش می‌توان به سربار بالای محاسبه این پاداش برای مکالمات با طول زیاد اشاره کرد. اما همانطور که در بخش‌های قبل ذکر شد باتوجه به محدود در نظر گرفتن طول مکالمه، می‌توان در آینده این روش را مورد بررسی قرار داد.
از مشکلات دیگر این مدل که در بخش‌های قبل نیز به آن اشاره شد، ساخت مجموعه جملات گمراه‌کننده به صورت دستی است. علاوه بر این، تعداد جملات در این مجموعه بسیار کم است که از کیفیت مناسب پاداش سهولت در پاسخگویی می‌کاهد. در حالی که با بررسی خروجی‌هایی که از ورودی‌های متفاوت به‌دست‌ می‌آید، می‌توان تعداد جملات این مجموعه را افزود. با افزایش این تعداد، می‌توان پاداش سهولت در پاسخگویی را بهبود بخشید. اما راه‌حل مناسب‌تر برای این بخش انتخاب این مجموعه با بهره گیری از روش‌های یادگیری ماشین است. برای ساخت این مجموعه، می‌توان با مجموعه حاضر و با استفاده از روش‌های استخراج ویژگی80، مدلی برای تشخیص این جملات بسازیم؛ تا با جداسازی هرچه دقیق‌تر این جملات، دقت پاداش سهولت در پاسخگویی را بیافزاید. اما این روش نیز می‌تواند به بالا رفتن پیچیدگی محاسباتی الگوریتم81 بیانجامد.
با مقایسه پیچیدگی و هزینه الگوریتم‌های پیشنهادی و میزان دقت افزایش یافته، در آینده می‌توان کارآمدی یا نا کارآمدی هر کدام از الگوریتم‌های پیشنهادی را سنجید.
یکی از مهم‌ترین بخش‌ها در پاداش‌های ذکر شده، تعیین وزن مناسب برای هر بخش است. همچنین یکی از مشکلاتی که در بخش قبل نیز به آن اشاره شد، شروع موضوعی نامربوط در طول مکالمه، در صورت برقرار نبودن توازن بین وزن‌های پاداش‌های در نظر گرفته شده است؛ که نشان از اهمیت بالای توازن بین وزن‌ها دارد. در صورت استفاده از روش‌های پیشنهادی بالا روابط تعیین پاداش‌ها تغییر می‌کند به همین علت ممکن است وزن‌های در نظر گرفته شده در این مقاله با تغییر پاداش‌ها، نتایج مناسبی را دربر نداشته باشند. و نیاز به تغییر این وزن‌ها در آینده به وجود آید.

۹. مراجع

[1] Iulian V. Serban, Chinnadhurai Sankar, Mathieu Germain, Saizheng Zhang, Zhouhan Lin, Sandeep Subramanian, Taesup Kim, Michael Pieper, Sarath Chandar, Nan Rosemary Ke, Sai Rajeshwar, Alexandre de Brebisson, Jose M. R. Sotelo, Dendi Suhubdy, Vincent Michalski, Alexandre Nguyen, Joelle Pineau1 and Yoshua Bengio , "A Deep Reinforcement Learning Chatbot",pages 1. arXiv preprint arXiv:1709.02349.
[2] Jiwei Li1, Will Monroe1, Alan Ritter, Michel Galley, Jianfeng Gao2 and Dan Jurafsky , "Deep Reinforcement Learning for Dialogue Generation" .arXiv preprint arXiv:1606.01541.
[3] Alan Ritter, Colin Cherry, and William B Dolan. 2011. Data-driven response generation in social media. In Proceedings of the conference on empirical methods in natural language processing, pages 583–593. Association for Computational Linguistics.
[4] Iulian V Serban, Alessandro Sordoni, Yoshua Bengio, Aaron Courville, and Joelle Pineau. 2015a. Building end-to-end dialogue systems using generative hierarchical neural network models. arXiv preprint arXiv:1507.04808.
[5] Sepp Hochreiter, Jürgen Schmidhuber. "Long Short-Term Memory",1997.
[6] Felix A. Gers , Jürgen Schmidhuber. "Recurrent Nets that Time and Count", IDSIA, 2000.
[7] Understanding LSTM Networks, [Online], Available: http://colah.github.io/posts/2015-08-Understanding-LSTMs/#fn1 [Accessed Nov 2017].
[8] LSTM یادگیری شبکه های , [Online], Available: http://mehrdadsalimi.blog.ir/1396/02/25/Understanding-LSTM-Networks [Accessed Nov 2017].
[9] Encoder-Decoder Long Short-Term Memory Networks, [Online], Available: https://machinelearningmastery.com/encoder-decoder-long-short-term-memory-networks/ [Accessed Nov 2017].
[10] tensorflow neural machine translation tutorial, [Online], Available: https://github.com/tensorflow/nmt [Accessed Nov 2017].
[11] Artificial intelligence: Google's AlphaGo beats Go master Lee Se-dol, [Online], Available: http://www.bbc.com/news/technology-35785875 [Accessed Dec 2017].
[12] David Silver, Aja Huang, Chris J Maddison, Arthur Guez, Laurent Sifre, George Van Den Driessche, Julian Schrittwieser, Ioannis Antonoglou, Veda Panneershelvam, Marc Lanctot, et al. 2016. Mastering the game of go with deep neural networks and tree search. Nature, 529(7587):484–489.
[13] The story of AlphaGo so far, [Online], Available: https://deepmind.com/research/alphago/ [Accessed Dec 2017].
[14] Jiwei Li, Michel Galley, Chris Brockett, Jianfeng Gao, and Bill Dolan. 2015. A diversity-promoting objective function for neural conversation models. arXiv preprint arXiv:1510.03055.
[15] Wojciech Zaremba and Ilya Sutskever. 2015. Reinforcement learning neural Turing machines. arXiv preprint arXiv:1505.00521.
[16] Cristian Danescu-Niculescu-Mizil and Lillian Lee, "Chameleons in imagined conversations: A new approach to understanding coordination of linguistic style in dialogs". Proceedings of the Workshop on Cognitive Modeling and Computational Linguistics, ACL 2011.
[17] OpenSubtitle corpus, [Online] , Available : http://opus.nlpl.eu/OpenSubtitles.php [Accessed Nov 2017].
[18] Digital Ocean : Cloud Computing , Simplicity at scale. [Online] , Available : https://www.digitalocean.com/[Accessed Feb 2018].
[19] Subhashini Venugopalan and Marcus Rohrbach and Jeff Donahue and Raymond J. Mooney and Trevor Darrell and Kate Saenko, "Sequence to Sequence - Video to Text", CoRR, 2015.
[20] Kishore Papineni, Salim Roukos, Todd Ward, and Wei Jing Zhu. 2002. BLEU: a method for automatic evaluation
of machine translation. In Proceedings of the 40th annual meeting on association for computational linguistics, pages 311–318.

۱۰. پی‌نوشت‌ها


  1. Natural Language Processing (NLP)

  2. Dialogue System

  3. Conversational Agents (CA)

  4. Personal Assistants

  5. Chatbots

  6. همچون Siri در Apple و Cortana در Microsoft

  7. منظور از اهداف بلند مدت سرگرم کردن کاربر، ادامه پیدا کردن مکالمه با دیالوگ های جدید، برخورد کمتر با جملات گنگ،جلوگیری از حلقه بی نهایت و غیره می باشد.

  8. Training data

  9. Ritter

  10. Machine Translation

  11. Sordoni

  12. a phrasal SMT-based(Statistical Machine Translation) conversation system

  13. LSTM sequence-to-sequence(SEQ2SEQ) model

  14. Conversation System

  15. Markov Decision Processes (MDPs)

  16. the Maximum-Likelihood Estimation (MLE) objective function: در علم آمار برآورد درست‌نمایی بیشینه روشی است برای برآورد کردن پارامترهای یک مدل آماری. وقتی بر مجموعه‌ای از داده‌ها عملیات انجام می‌شود یک مدل آماری به دست می‌آید آنگاه درست‌نمایی بیشینه می‌تواند تخمینی از پارامترهای مدل ارائه دهد.

  17. ارتباط مفید با کاربر

  18. توسط توسعه دهنده

  19. Long-term influence

  20. Long Short-Term Memory(حافظه طولانی کوتاه-مدت)

  21. Sepp Hochreiter

  22. Jürgen Schmidhuber

  23. Long-term dependency

  24. Encoder-Decoder( sequence-to-sequence) LSTM

  25. Text summarization

  26. Speech Recognition

  27. Thought vector

  28. Action

  29. State

  30. Policy

  31. به طور مثال احتمال انتخاب عمل a به شرط بودن در حالت s.

  32. Ease of answering

  33. این جنبه از تولید کلام به تابع forward-looking مربوط می‌شود.

  34. Dull responses

  35. manually constructed

  36. Information Flow

  37. Semantic Coherence

  38. Simulation

  39. Strategy

  40. آلفاگو (AlphaGo) یک برنامه رایانه‌ای است که توسط Google DeepMind در لندن، برای بازی تخته‌ای Go توسعه یافته‌است. آن‌ها برای آموزش برنامه خود از ترکیب جدیدی از یادگیری بانظارت از بازی انسان های خبره و یادگیری تقویتی از بازی های که خود برنامه انجام می‌دهد، استفاده می‌کنند. برای اطلاعات بیشتر در مورد این برنامه می‌توانید به مرجع 12 و 13 مراجعه کنید.

  41. Supervised Learning

  42. source-target pair

  43. Mutual Information

  44. pre-train

  45. برای اطلاعات بیشتر می‌توانید به منبع15 مراجعه کنید.

  46. Experimental Results

  47. Dataset(Corpus)

  48. Cornell Movie-Dialogs Corpus

  49. یک مرجع معتبر جهانی برای انواع فیلم، سریال و شخصیت‌های آن‌ها

  50. metadata

  51. TensorFlow: یک چارچوب متن باز برای یادگیری ماشین است.

  52. این سرور از سایت DigitalOcean شد.

  53. RAM:حافظه دسترسی تصادفی

  54. 8 core virtual cpu

  55. PreProcessing

  56. sentence splitter

  57. stop words

  58. vocabulary

  59. tag

  60. object

  61. برای مطالعه بیشتر در مورد مدل seq2seq پیاده‌سازی شده می‌توانید به مرجع شماره‌ 19 مراجعه کنید.

  62. epoch

  63. script

  64. Automatic Evaluation

  65. معیارBilingual Evaluation Understudy ) BLEU) روشی برای ارزیابی کیفی متن ترجمه شده توسط ماشین یا همان ترجمه ماشینی است.کیفیت ترجمه با عددی بین ۰ و ۱ اندازه‌گیری و اغلب به صورت درصد گزارش می‌شود. این عدد نمایانگر میزان نزدیکی ترجمه به مجموعه‌ای از ترجمه‌های انسانی با کیفیت خوب (مجموعه مرجع) است.

  66. Perplexity

  67. Length of the dialogue

  68. Dull responses (کسل کننده یا راکد)

  69. Risk

  70. Circular dialogues

  71. Diversity

  72. Unigram

  73. Bigram

  74. Token

  75. برای مطالعه بیشتر می‌توانید به مرجع شماره 14 مراجعه کنید.

  76. type-token ratio

  77. Human Evaluation

  78. داوران از بین مردم : crowdsourced judges

  79. exponential

  80. feature extraction

  81. Orders of approximation