دو پیام در صف پشتیبانی شما میرسد.
«این سومین باریست که اپلیکیشن شما کار مرا خراب کرده. درستش کنید.»
«نمیدانم دارم درست انجامش میدهم یا نه، و میترسم چیزی را خراب کرده باشم.»
هر مدل تشخیص احساسیای که دوست دارید رویشان امتحان کنید. هر دو دقیقاً یک نتیجه را برمیگردانند: منفی، برانگیختگی بالا. عصبانی به نظر میرسند. ناراحت.
پس با هر دو یک جور رفتار میکنید — و تازه یک اشتباه کردهاید، چون این دو نفر دقیقاً برعکس هم به چیزی نیاز دارند.
اولی خشمگین است، و آدمهای خشمگین درگیر هستند. فکر میکنند میتوانند مشکل را حل کنند، و تا حلش نکنند دست بر نمیدارند. یک عذرخواهی صمیمانه و قول اینکه پیگیری میکنید بفرستید، و بیشتر عصبانیشان میکنید.
دومی ترسیده است. فکر نمیکند بتواند چیزی را درست کند. یک جواب بد دیگر با فاصله گرفتن و هیچوقت برنگشتن فاصله دارد — بیسر و صدا، بدون اینکه هیچوقت بگوید چرا. یک شماره بلیت و یک بازه پنجروزه برطرفسازی بفرستید، و از دستشان میدهید.
یکی شکایت است. دیگری خداحافظی. و تقریباً هیچچیز در جعبهابزار هوش مصنوعی احساسی نمیتواند به شما بگوید کدام کدام است.
مدتی وقت صرف فهمیدن این موضوع کردیم. جواب خیلی جالبتر از چیزی بود که انتظارش را داشتیم، و با یک شبکه عصبی تمام میشد که روی یک میلیارد توییت آموزش دیده بود و با یک مقاله روانشناسی از 1985 موافق بود — مقالهای که هیچوقت نخوانده بود.
بعد گمشده
درباره خشم و ترس این نکته هست: وقتی به شیوه معمول اندازه بگیریدشان، تقریباً یکسانند.
هر دو بد هستند. هر دو برانگیختگی بالایی دارند — ضربان قلبتان در هر دو حالت بالا میرود. این دو ویژگی، «چقدر خوب یا بد احساس میکنید» و «چقدر هیجانزده هستید»، دو محوری هستند که تقریباً هر مدل احساسی رویشان ساخته شده. معمولاً بهشان میگویند ارزشمندی و برانگیختگی.
خشم و ترس در آن فضا روی هم قرار میگیرند. هیچ مدلی که فقط از این دو عدد ساخته شده باشد نمیتواند آنها را از هم جدا کند، هرچقدر هم پیشرفته باشد، چون اطلاعات لازم اصلاً در آن دادهها وجود ندارد.
چیزی که واقعاً آنها را از هم جدا میکند چیز سومی است: آیا احساس میتوانید کاری دربارهاش بکنید؟
خشم چیزی است که وقتی چیزی اشتباه است و میتوانید عمل کنید احساس میکنید. ترس چیزی است که وقتی چیزی اشتباه است و نمیتوانید احساس میکنید. آن حس کنترل — روانشناسان بهش میگویند توانایی مقابله یا توانمندی — تمام تفاوت را میسازد. و همین است که به شما میگوید آیا کسی میجنگد یا فرار میکند، بالا میبرد یا ناپدید میشود.
این یک ایده حاشیهای نیست. چهار برنامه تحقیقاتی مستقل طی دو دهه جداگانه به همین نتیجه رسیدند، و یکی از آنها (Lerner & Keltner, 2001) علّی اثباتش کرد: آدمهای عصبانی قضاوتهای خوشبینانه و ریسکپذیر میکنند در حالی که آدمهای ترسیده قضاوتهای بدبینانه و ریسکگریز — و تأثیر از مسیر کنترل و قطعیت رد میشود، نه از مسیر اینکه چقدر بد احساس میکنند.
جالبترین نتیجهشان ارزش تأمل دارد. قضاوت آدمهای عصبانی شبیه قضاوت آدمهای شاد است. نه شبیه آدمهای ترسیده. خشم و شادی ارزشمندی متضاد دارند، و مهم نیست، چون ارزشمندی چیزی نیست که کار را انجام میدهد.
پس چرا این محور در ابزارها دیده نمیشود؟
چرا این محور گم شد
بیشتر ابزارهای احساسی به تعداد کمی مدل نظری برمیگردند. دو تأثیرگذارترینشان چرخ احساسات پلوتچیک (1980) است و، که روی آن ساخته شده، ساعت شنی احساسات کامبریا (2012)، که مدل پشت SenticNet است.
چرخ پلوتچیک شیء زیبایی است. شبیه چرخ رنگ شکل گرفته، و ایده محوری چرخ رنگ را هم با خود حمل میکند: احساسات جفتهای متضاد دارند. شادی مقابل غم است. اعتماد مقابل انزجار. و خشم مقابل ترس.
آن آخری مشکلساز است، و وقتی ببینیدش دیگر نمیتوانید نبینیدش.
اگر خشم و ترس دو سر یک محور باشند، یکدیگر را خنثی میکنند. شدیدترین خشمی که یک نفر میتواند حس کند را بردارید، با شدیدترین وحشتی که میتواند حس کند مخلوط کنید، و از مدل بپرسید چه چیزی به دست میآید:
(rage + terror) / 2 == neutrality
آرامش. دو شدیدترین حالت منفیای که یک انسان قادر به تجربهشان است را با هم ترکیب کنید، و مدل گزارش میدهد که هیچ احساسی ندارید.
این باگ در پیادهسازی نیست. نتیجه مستقیم هندسه است — و یعنی مدل دقیقاً همان چیزی را دور ریخته که بهش نیاز داشتیم. با متضاد کردن خشم و ترس، تضمین میکند که هیچوقت نمیتوان آنها را از هم تشخیص داد.
چرخ خودش هم تا حدی میداند، بهطور تصادفی. ساعت شنی فرمولی برای امتیازدهی احساس دارد، و در آن فرمول محور خشم–ترس در مقدار مطلق پیچیده شده: هر دو سر ناخوشایند حساب میشوند. که درست است! خشم و ترس هر دو ناخوشایندند. اما این رفتار ساکتانه با هندسهای که آنها را در دو قطب متقابل قرار داده تناقض دارد. حساب خود مدل با نمودار خود مدل جور در نمیآید.
واقعاً شواهد چه میگویند
اینجا بود که نوشتن کد را متوقف کردیم و رفتیم ادبیات را بخوانیم، و چند روز خوشایندی نبود.
ساختار جفتهای متضاد پلوتچیک تست شده. در 2009، اسمایت و اسنايدر آن را از بیش از دو هزار تست آماری گذراندند و نتیجه گرفتند که نظریه چرخ احساسات «هیچ پشتوانه تجربیای ندارد.» جفتهای متضاد استعارهای ظریف و قرضگرفتهشده از نظریه رنگ هستند. یافتهای درباره آدمها نیستند.
در همان حال، چیزهایی که واقعاً تکرارپذیرند — مدوره ارزشمندی–برانگیختگی راسل، و بُعد کنترلی که خشم را از ترس جدا میکند — دقیقاً همان بخشهایی هستند که بهندرت وارد نرمافزارهای کاربردی میشوند.
مشکل مرتبه دومی هم اینجا هست، و همان مشکلی بود که واقعاً ما را آزار میداد. هر کدام از این مدلها قابل استفاده است. جذاب است، قابل آموزش است، روی یک اسلاید جا میشود. پس تکرار میشوند — و وقتی مدلی به اندازه کافی تکرار شد، بررسی اینکه از کجا آمده بیشتر شبیه وسواس میشود تا دقت. اینطوری است که یک استعاره ساکتانه تبدیل میشود به یک بنیان.
ساختن روی چیزی که دوام میآورد
پس emotion-algebra را ساختیم، و محور گمشده را در مرکزش قرار دادیم.
هسته پنج عدد دارد: چقدر خوب احساس میکند، چقدر بد احساس میکند (بله، جداگانه — بعداً برمیگردیم به این)، چقدر احساس کنترل دارید، چقدر برانگیخته هستید، و چقدر همهچیز غیرمنتظره است. اینها از فونتاین و همکاران (2007) آمده، که آنها را از 144 ویژگی اندازهگیریشده در فرهنگهای مختلف استخراج کردند، نه از یک نمودار جذاب.
حالا مخلوطسازی درست رفتار میکند:
from emotion_algebra import prototype, dominant
dominant(prototype("anger").blend(prototype("fear"), 0.5))
# 'distress'
نه «آرامش». رنج — عمیقاً ناخوشایند، برانگیختگی بالا، با حس کنترل که خنثی شده. که دقیقاً چیزی است که ترکیب خشم و وحشت باید حس شود.
و صف پشتیبانی هم درست کار میکند:
from emotion_algebra import affect_from_texts
angry, afraid = affect_from_texts([
"This is the third time your app has lost my work. Fix it.",
"I don't know if I'm doing this right and I'm scared I've broken something.",
])
angry.valence, angry.potency # -0.43, +0.16 -> 'disgust'
afraid.valence, afraid.potency # -0.47, -0.43 -> 'apprehension'
به آن اعداد نگاه کنید. ارزشمندی تقریباً یکسان است — هر دو پیام به یک اندازه ناخوشایند هستند، و به همین دلیل یک مدل احساسی معمولی فقط یک چیز میبیند. توانمندی متضاد است. یکی احساس میتواند عمل کند؛ دیگری نه.
آن شکایت شماست، و آن خداحافظی شماست.
تستی که میتوانست همهچیز را خراب کند
نگرانی ما این بود. هر چیزی که بالا گفتیم روی ادبیات روانشناسی استوار است، و آن ادبیات تقریباً بهطور کامل روی پرسشنامهها ساخته شده — آدمهایی که کلمات را در مقیاس ۱ تا ۹ امتیاز میدهند. پرسشنامهها یک ویژگی ناخوشایند دارند: میتوانند ساکتانه یک نظریه را رمزگذاری کنند به جای اینکه تستش کنند. اگر هر کسی که پرسشنامه احساسی مینویسد همان کتاب درسی را خوانده باشد، پرسشنامهها با کتاب درسی همنظر میشوند، و همه احساس اعتبار میکنند.
ما شاهدی میخواستیم بدون هیچ آموزش نظری.
DeepMoji یک شبکه عصبی است که روی 1.2 میلیارد توییت آموزش دیده تا حدس بزند هر پیام با کدام ایموجی تمام شده. واقعاً تنها کاری است که میکند. هیچوقت نام پلوتچیک را نشنیده، یا نظریه ارزیابی را، یا توانایی مقابله را. هیچ نظری درباره احساس ندارد — فقط حس بسیار دقیقی از این دارد که آدمها وقتی چیزی حس میکنند واقعاً چطور مینویسند.
پس ازش فقط یک سؤال پرسیدیم که تنها سؤال مهم بود:
آیا میتوانی خشم را از ترس تشخیص دهی؟ و اگر بله — از چه چیزی استفاده میکنی؟
میتواند. با کامنتهای واقعی انسانی که توسط انسانهای واقعی برچسب خوردهاند، خشم را بهتر از شانس از ترس جدا میکند. (برچسبها را بر هم بزنید و توانایی کاملاً ناپدید میشود، پس محصول روش ما نیست.)
بعد نگاه کردیم چطور. جهتی را که DeepMoji برای جدا کردن این دو استفاده میکند گرفتیم و اندازه گرفتیم چقدر با هر کدام از پنج محور ما همخط است.
با توانمندی همخط است — سه برابر قویتر از هر چیز دیگری. نه ارزشمندی. نه برانگیختگی.
مدلی که روی یک میلیارد توییت آموزش دیده، که هیچوقت بهش نگفتهاند خشم شامل حس کنترل است و ترس شامل نبودنش، دقیقاً همان تمایز را انتخاب میکند وقتی مجبورش میکنید انتخاب کند. محور را خودش پیدا کرد.
این متقاعدکنندهترین چیزی است که داریم، و میخواهیم شفاف باشیم که میتوانست برعکس پیش برود. اگر DeepMoji خشم و ترس را با ارزشمندی جدا میکرد، یا اصلاً جدا نمیکرد، محور سوم ما محصول ادبیات روانشناسی بود و مجبور بودیم بگوییم.
تلخ و شیرین، و چیزهایی که یک عدد تنها نمیتواند نگه دارد
یک نتیجه دیگر، چون نتیجه خوبی است.
ما «چقدر خوب احساس میکند» و «چقدر بد احساس میکند» را به صورت دو عدد جداگانه حمل میکنیم، نه یک امتیاز از منفی تا مثبت. به نظر جزئیات فنی میآید. نیست.
آدمها واقعاً همزمان خوب و بد احساس میکنند. مطالعه کلاسیک از روز فارغالتحصیلی استفاده میکند: دانشجوها شادی واقعی و غم واقعی را همزمان گزارش میکنند، نه یک میانگین ولرم. یک امتیاز ارزشمندی تنها از نظر ریاضی قادر به نمایش این نیست. مجبور است «کمی خوشحال» گزارش کند، که آنچه آدمهای آنجا حس میکنند نیست.
دو کانال میتوانند نگهشان دارند. یعنی مدل میتواند پیروزی اجباری را نشان دهد، خداحافظی صمیمانه را، مشتریای که هم آسوده است و هم هنوز عصبانی. آنها احساسات جالب هستند، و همانهایی هستند که یک عدد تنها صافشان میکند.
احساسات برای طرف دیگر
تا اینجا همهچیز درباره خواندن یک انسان بود. همان مکانیسم به عکس کار میکند، تا به یک شخصیت زندگی احساسی خودش را بدهید.
احساس، اینجا، یک جابهجایی است — از جایی که معمولاً هستید کنار زده شدهاید، و با گذشت زمان به جایگاهتان برمیگردید. جایی که بهش برمیگردید صفر نیست. چیزی به نام «بدون احساس» وجود ندارد؛ حتی در حالت عادی شما جایی هستید، و آن جایی کمی خوشایند، آرام، و کمی تحت کنترل است. (ایل ملایم مثبت به این دلیل است که موجودی که در حالت استراحت است میرود و چیزی را کاوش میکند به جای اینکه بیحرکت بنشیند. تأثیر واقعی و اندازهگیریشدهای است.)
پس یک نگهبان که تازه چیز وحشتناکی دیده، وقتی تایمر تمام شود به خنثی برنمیگردد. آرامآرام پایین میآید:
terror → fear → apprehension → pensiveness → acceptance
ترس، بعد محتاطی، بعد نوعی تأمل آرام، و در نهایت خوب است. آن ترتیب را ما ننوشتیم؛ از هندسه بیرون میآید.
و دو نگهبان میتوانند متفاوت باشند چون به سمت نقاط استراحت متفاوتی میرسند. به یکی حس کنترل پایهای کمی پایینتر و عادت دو بار سختتر گرفتن خبرهای بد بدهید، و او بهطور قابل تشخیصی مضطرب میشود — بیشتر میپرد، آرامتر بهبود پیدا میکند، بیشتر فکر میکند. این یک شخصیت است، و چهار عدد است به جای یک درخت رفتار.
و بعد بخش مفید: چه کاری انجام میدهد؟ آن هم از محور کنترل میآید. نگهبان خشمگین به شما حمله میکند. نگهبان ترسیده فرار میکند. «احساس منفی» نمیتواند بین این دو انتخاب کند، و هیچوقت نمیتوانسته.
بخشی که به شما میگوییم چه عیبی دارد
هر مدل در کتابخانه یک درجه و یک استناد دارد — از ESTABLISHED (تکرارپذیر، بینفرهنگی، فراتحلیلی) تا METAPHOR (نمودار زیبایی که در برابر تست دوام نیاورد).
چرخ پلوتچیک با درجه METAPHOR هنوز آنجاست، و دقیقاً همانطور که پلوتچیک مشخص کرده کار میکند — -anger هنوز fear برمیگرداند، چون مدلش همین را میگوید. حسابش با وفاداری پیادهسازی شده، و مدلش درباره آدمها درست نیست. هر دو درست است، و ترجیح میدهیم هر دو را به شما بگوییم تا یکی را انتخاب کنیم.
درباره کمبودهای خودمان هم به همین صراحتیم:
خواندن برانگیختگی از متن حل نشده. ارزشمندی را میتوانیم بگیریم، توانمندی را میتوانیم بگیریم — نمیتوانیم بهطور قابل اعتماد بفهمیم چقدر هیجانزده کسی است از روی کلماتش. بهترین عدد ما بد است. آن را به جای اینکه ساکتانه امیدوار باشیم بررسیاش نکنید، با برچسب «بد» عرضه میکنیم.
یکی از یافتههای خودمان موقتی است. «حس کنترلی» که خشم را ایجاد میکند و «حس کنترلی» که آدمها هنگام عصبانیت گزارش میکنند معلوم شده یکی نیست — در اوج خشم کمتر احساس فرمانروایی میکنید از آنچه نظریه پیشبینی میکند. عصبانی شدن در نهایت از دست دادن کنترل است. فکر میکنیم این مهم است. و فکر میکنیم شواهدمان برایش ضعیف است، و طبق همان درجهبندیاش کردهایم.
چرا این همه زحمت کشیدیم
یک کتابخانه احساسی که ساکتانه چیزهایی را ادعا میکند که شواهد نقضشان میکند، بدتر از بیفایده است. با اطمینان بیفایده است — و هر چیزی که رویش ساخته شود اشتباه را به ارث میبرد، ساکتانه، برای همیشه.
ترجیح میدهیم چیزی عرضه کنیم که به شما بگوید هر بخشش چقدر قابل اعتماد است.
pip install emotion-algebra
مستندات یک شروع سریع پنجدقیقهای دارد، راهنمای دادن زندگی احساسی به یک عامل، و جدول کامل شواهد با تمام استنادها. اگر فکر میکنید یکی از درجهبندیهای ما اشتباه است، سورس کد همینجاست برای بحث — و واقعاً خوشحال میشویم بشنویم.
در همین حال: جایی در صف پشتیبانی شما، کسی دارد آرامآرام یک خداحافظی مینویسد. خوب است بدانید کدامشان است.