サポートキューにメッセージが二つ届く。
「あなたのアプリで作業を失うのは三回目だ。直せ。」
「これで合っているのかよくわからなくて、何か壊してしまったかもしれない。怖い。」
好きなセンチメントモデルに突っ込んでみればいい。どちらも同じ結果が出る: ネガティブ、高覚醒。怒っているように見える。不機嫌。
同じように扱う――そこで間違いが起きる。この二人は正反対のものを必要としているからだ。
一人は激怒している。激怒している人は関与している。問題を解決できると信じているし、解決が得られるまで粘り続ける。温かい謝罪と「原因を調査します」という約束を送れば、さらに腹が立つだけだ。
もう一人は怯えている。何かを直せると思っていない。一度でも不適切な返信があれば、ブラウザのタブを閉じて二度と戻ってこない――声をかけてくることなく、静かに。チケット番号と五日間の対応期限を送れば、その人は失われる。
一つは不満。もう一つは別れ。感情AIのツールボックスの中に、どちらがどちらかを見分けるものはほぼ存在しない。
なぜそうなのか、ずいぶん考えた。答えは予想よりも興味深いもので、結末は10億ツイートで訓練されたニューラルネットワークが、見たこともない1985年の心理学論文と同じ結論に到達するという話だ。
欠けた次元
怒りと恐怖について、こう的事实がある:通常の方法で測ると、ほぼ同一に見える。
どちらも気分が悪い。どちらも覚醒度が高い――どちらの場合も心拍数が上がる。この二つの性質、「どれだけ気分が良いか」「どれだけ興奮しているか」は、ほぼすべての感情モデルが構築される二つの次元だ。一般的にヴァレンスとアローザルと呼ばれる。
この空間の中で怒りと恐怖は完全に重なる。この二つの数字から作られたモデルはどれほど精巧であっても、この二つを分けることはできない。情報がそもそも存在しないからだ。
実際にこの二つを分けるのは三つ目の要素だ:何か対処できると感じているかどうか。
怒りは何かが間違っていて対処できるときに感じるもの。恐怖は何かが間違っていて対処できないときに感じるもの。その制御感――心理学者はcoping potentialやpotencyと呼ぶ――がすべての違いであり、誰が対立し誰が逃げるか、誰がエスカレートし誰が消えるかを決定するものでもある。
これは縁遠いアイデアではない。四つの独立した研究プログラムが二十年にわたって別々に到達した結論で、そのうちの一つ(Lerner & Keltner, 2001)は因果的に実証した:怒っている人は楽観的でリスクを許容する判断をするが、怯えている人は悲観的でリスク回避的な判断をする――その効果は気分の悪さではなく、制御感と確信を通じて生じる。
彼らの最も印象的な発見は、じっくり味わう価値がある。怒っている人の判断は、幸福な人の判断に似ている。 怯えている人ではない。怒りと幸福は正反対のヴァレンスを持つが、それは問題にならない。仕事をしているのはヴァレンスではないからだ。
では、なぜこの軸はツールに登場しないのか。
なぜこの軸が消えたのか
ほとんどの感情ツールは少数の理論的モデルに由来する。最も影響力が大きい二つはPlutchik の感情の輪(1980)と、その上に構築されたCambria の感情の砂時計(2012)だ。後者は SenticNet の背後にあるモデルでもある。
Plutchik の輪は美しい対象だ。色輪のような形をしており、色輪の中心的な考えをそのまま受け継ぐ:感情は正反対のペアで存在する。喜びと悲しみ、信頼と嫌悪――そして怒りと恐怖。
最後のこのペアが問題であり、一度気づいたら、もう眼を逸らせなくなる。
怒りと恐怖が一つの軸の両端にあるなら、相殺される。人が感じうる最も激しい怒りと最も激しい恐怖を混ぜ、モデルに何ができるかと聞いてみよう:
(rage + terror) / 2 == neutrality
平静。 人間が持つ二つの最も激しい負の状態を混ぜると、モデルは「何も感じていない」と報告する。
これは実装のバグではない。幾何学的構造から直接導かれる結果だ――そしてモデルがちょうど必要としていた量を捨て去ったことを意味する。怒りと恐怖を正反対に置くことで、永遠に区別されないことが保証されている。
ちなみに、この輪は半ばそれを知っている。砂時計にはセンチメントをスコアリングする公式があり、その公式では怒り–恐怖の軸は絶対値で囲まれている:どちらの端も不快としてカウントされる。それは正しい!怒りと恐怖はどちらも不快だ。しかし、それは元来この二つを正反対の極に置いた幾何学と静かに矛盾している。モデル自身の算術が、モデル自身の図と食い違っている。
実際の証拠は何を言っているのか
ここでコードを書くのをやめて文献を読んだ。そして数日間、決して快適ではなかった。
Plutchik の正反対ペア構造は検証された。2009年、Smith & Schneider は二千件以上の統計的検証にかけ、感情輪理論は「経験的支持を得ていない」と結論した。正反対のペアは色理論から借りた優れたメタファーにすぎない。人間についての発見ではない。
一方、実際に再現されるのは――Russell のヴァレンス–アローザルサーカムプレックスと、怒りと恐怖を分ける制御の次元――まさに実際のソフトウェアにあまり使われないパーツだ。
ここには二次的な問題がある。実際に私たちを困らせた問題だ。これらのモデルはどれも使える。鮮やかで、教えやすい、一枚のスライドに収まる。だから繰り返し語られ、一度十分に繰り返されると、その出所を確認することは几帳面ではなくわざわざらしいことのように感じられる。メタファーが静かに基盤に変わる、その過程だ。
残ったものに立てる
そこで私たちは emotion-algebra を作り、欠けていた軸をその中心に据えた。
コアは五つの数字で構成される:どれだけ気持ちいいか、どれだけ気持ち悪いか(はい、別々に――後で触れる)、どれだけ制御できているか、どれだけ覚醒しているか、そしてどれだけ予期しないか。これらは Fontaine と共同研究者たち(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'
その数字を見てみよう。ヴァレンスはほぼ同一――二つのメッセージは同程度に不快だ。だから従来のセンチメントモデルは一つのことしか見えない。ポテンシーだけが正反対。一人は行動できると感じ、もう一人はできない。
不満はこっちだ。別れはこっちだ。
成り行かなかったかもしれない検証
これが私たちを心配させたものだ。ここまで述べたことはすべて心理学文献に基づいているが、その文献はほぼ完全にアンケート――人々が1から9のスケールで言葉を評価する形式――に基づいて構築されている。アンケートには不快な性質がある:検証ではなく理論を静かに符号化してしまうということだ。感情アンケートを作成する全員が同じ教科書で教えられていたら、アンケートは教科書と一致し、全員が非常に正当化された気持ちになる。
私たちは理論的訓練を何一つ受けていない目撃者を欲した。
DeepMoji は12億ツイートで訓練されたニューラルネットワークで、メッセージがどの絵文字で終わるかを当てる。それが本質的にすべてだ。Plutchik を知らず、アペイズメント理論も知らず、coping potential も知らない。感情についてまったく意見を持たない――ただ人が感情を感じたときに実際にどう書くかについて、極めて知識豊富な感覚を持っているだけだ。
そこで私たちは唯一重要な質問をした:
怒りと恐怖を見分けられるか? できるなら、何を使って分けているのか?
できる。 人間がラベル付けした実際のコメントを与えれば、チャンスを大きく超えて怒りと恐怖を分ける(ラベルをシャッフルするとその能力は完全に消えるので、私たちの方法によるアーティファクトではない)。
そしてその方法を見た。DeepMoji が両者を区別するために使う方向を取って、私たちの五つの軸のそれぞれとどれだけ合致するかを測定した。
合するのはポテンシー――他の何よりも三倍強い。ヴァレンスではない。アローザルでもない。
10億ツイートで訓練され、「怒りには制御感があり、恐怖にはその欠如がある」と一度も教えられたことのないモデルが、選択を迫られたときにまさにその区別に手を伸ばす。自力で軸を見つけたのだ。
これが最も説得力のあるものであり、結果は逆もありえたと明確にしたい。もし DeepMoji がヴァレンスを使って怒りと恐怖を分けた場合、あるいはまったく分けられなかった場合、私たちの三番目の軸は心理学文献のアーティファクトであり、そう言わざるを得なかった。
苦さと甘さ、そして一つの数字では抱えきれないもの
もう一つの帰結を、興味深いので紹介しよう。
私たちは「どれだけ気持ちいいか」と「どれだけ気持ち悪いか」を二つの別々の数字として持っている。負から正への一つのスコアではなく。これは技術的な細目のように聞こえる。実際には違う。
人間は本当に同時に気分が良いと悪いを感じる。古典的な研究は卒業式を使った:学生は同時に本物の幸福と本物の悲しみを報告し、その二つのぬるま湯のような平均ではない。一つのヴァレンススコアでは、それを数学的に表現できない。「やや幸せ」と報告するしかないが、そこにいる誰もが感じていることとは違う。
二つのチャンネルなら抱えられる。つまりモデルは、不本意な勝利、愛着のこもった別れ、安堵と同時に激怒している顧客を表現できる。これらが面白い感情であり、一つの数字が平らにしてしまうものだ。
向こう側のための感情
ここまで述べたのは人間を読むことについてだ。同じ仕組みを逆に回せば、キャラクターに自らの感情的な命を与えることができる。
ここでいう感情は変位だ――通常の位置から押し出され、時間とともに元の位置に戻る。戻る先はゼロではない。「感情のない」という状態は存在しない。休息時でもあなたはどこかにいて、それは穏やかに心地よく、平静で、やや制御できている。(そのわずかなポジティブ傾向が、休息時の生物が惰性のまま座るのではなく探索に向かう理由だ。これは実在し、測定された効果である。)
だから、恐ろしいものを見た警備員がタイマー切れに中立に戻るわけではない。こうして下りていく:
terror → fear → apprehension → pensiveness → acceptance
恐怖、それから警戒、それから静かな沈思、そして最終的に元気になる。この順序を人為的に作ったわけではない。幾何学から自然に落ちてくるのだ。
二人の警備員が異なる休息点に向かって落ち着くために、性格が異なることもある。一人にやや低いベースラインの制御感と、悪いニュースを二倍に受け止める傾向を与えると、その人は明らかに不安な性格になる――驚きやすく、回復が遅く、考え込む時間が長い。これがキャラクターであり、行動木ではなく四つの数字だ。
そして有用な部分:その人は何をするか? これも制御の軸から来る。怒っている警備員は突っ込んでくる。怯えている警備員は逃げる。「負の感情」はこの二つを区別できず、かつてできなかった。
何が問題か、率直に伝える
ライブラリ内のすべてのモデルには等級と引用文献が付いている――ESTABLISHED(再現可能、文化横断的、メタ分析済み)からMETAPHOR(検証に耐えなかった美しい図)まで。
Plutchik の輪もここにあり、等級はMETAPHOR。Plutchik が指定した通りにまだ完全に動く――-angerはまだfearを返す。彼のモデルがそう言っているからだ。彼の算術は忠実に実装されており、かつ彼のモデルは人間について正しくない。両方が真であり、一方を選ぶより両方を伝えたほうがいい。
自分の欠点についても同じくらい正直だ:
テキストからアローザルを読むのは未解決。 ヴァレンスはわかる。ポテンシーはわかる。しかし言葉からどれだけ興奮しているかを確実に知る方法はない。最善の数字は悪い。黙って確認しないことを祈るのではなく、悪いと明記してリリースする。
自己の発見の一つは暫定的。 怒りを引き起こす「制御感」と、怒っているときに報告される「制御感」は実は同じものではない――激怒の最中には理論が予測するほど制御できていない。怒りを爆発させることは、結局のところ制御を失うことだ。これ重要だと思う。しかし証拠は薄いとも思い、そのように注釈している。
なぜわざわざやるのか
証拠に反することを静かに主張する感情ライブラリは、便利なより悪い。確信を持って無能であり、その上に構築されたものはすべてその間違いを静かに引き継ぐ。
自分の各部分がどれだけ信頼できるかを伝えてくれるものをリリースしたほうがいい。
pip install emotion-algebra
ドキュメントには5分間のクイックスタート、エージェントに感情的な命を与えるガイド、全引用文献を含む完全な証拠表がある。私たちの等級の一つが間違いだと思えば、ソースはすぐそこにあり議論できる――そしてぜひ聞かせてほしい。
Meanwhile: サポートキューのどこかで、誰かが静かに別れを書いている。それが不満なのか別れなのか、知っておくことは重要だ。