谷口稜の仕事は、言葉の差分を数えることだった。
正確には、対話最適化エンジンの変換精度を検証するQAエンジニアという肩書きがついている。稜が毎日やっていることは、変換前と変換後の文章を並べて読み、変換が適切に行われているかを項目ごとに判定する作業だった。
対応最適化法が企業の顧客応対に義務づけた分類・自動処理の技術は、施行から四年のあいだに、当初の想定を超えて広がった。法律はあくまで企業対消費者の応対を対象としていたが、その過程で開発された自然言語の意図分類と変換のアルゴリズムは、汎用的なコミュニケーション支援ツールとして民間に開放された。
いまでは主要なメッセージアプリのほとんどに、「最適化アシスト」機能が標準搭載されている。オンにすると、送信前に文面が自動で調整される。攻撃的な表現はやわらげられ、曖昧な表現は明確化され、否定的なニュアンスは建設的な提案に変換される。デフォルト設定はオン。大半のユーザーは、初期設定のまま使っている。
稜が日常的に見ているのは、そのアシスト機能が実際のメッセージをどう書き換えたかのログだった。データはすべて匿名化されている。送信者も受信者も特定できない。ユーザーIDはハッシュ化され、固有名詞はマスキングされ、日時もランダムにずらされている。検証作業は専用のサンドボックス環境で行われ、毎回ランダムに抽出されたサンプルだけが表示される。作業を終えてセッションを閉じれば、データは揮発する。翌日のセッションには別のサンプルが割り当てられる。同じログに二度アクセスする方法はない。稜が見るのはただ、その日かぎりの画面に、左に原文、右に変換後が並んだスプレッドシートだけだった。
たとえば、こういうものだ。
原文:「は? 意味わかんないんだけど」 変換後:「すみません、もう少し詳しく教えていただけますか?」
原文:「だから何回も言ってるじゃん」 変換後:「以前もお伝えしたかと思いますが、念のため再度共有しますね」
変換精度のスコアは高い。文意の核は保存されている。ただ、感情の温度はすべて均される。怒りは丁寧さへ、苛立ちは冷静さへ、投げやりは前向きさへ。稜の仕事は、その均し方が自然かどうかを五段階で評価することだった。
問題は、稜がこの仕事を三年間続けていると、均される前の言葉、原文のほうに、人間の体温を感じるようになってしまうことだった。
稜は、自分のメッセージアプリの最適化アシストをオフにしていた。
職業的な理由が半分、個人的な信条が半分だった。変換のロジックを毎日検証している人間が、自分の言葉を同じロジックに通すのは、料理人が自分の料理だけレトルトで済ませるような居心地の悪さがあった。
ただ、オフにしているのは送信側の設定だけだ。受信側がアシストをオンにしているかどうかは、こちらからはわからない。相手が自分の言葉を最適化して送ってきているかどうかは、受け取った文面からは判別できない。
それが仕様だった。変換の痕跡を残さないことが、最適化アシストの設計思想の根幹にあった。「相手に変換を意識させない」ことが、コミュニケーションの自然さを保つために不可欠だとされていた。
稜の恋人は、森村佳乃という名前だった。同じ駅の沿線に住んでいて、付き合って一年と少しになる。共通の友人の紹介で知り合い、週に一度か二度、夕食を一緒に食べる関係だった。メッセージのやりとりは毎日あった。朝の「いってきます」から夜の「おやすみ」まで、途切れることはほとんどなかった。
佳乃のメッセージは、いつも穏やかだった。
「今日は少し疲れたけど、帰ったらゆっくりするね」「週末、もしよかったら一緒にごはん行こうよ」「ありがとう、そう言ってもらえると嬉しい」
稜はその言葉を、佳乃の言葉として受け取っていた。
異変に気づいたのは、月次のログ検証の最中だった。
いつもの作業だった。匿名化されたメッセージのペアを開き、左の原文と右の変換後を比較する。一件あたり十五秒から三十秒。一日に四百件。三年間、ほぼ同じリズムで繰り返してきた作業だった。
その日のログの三百十二件目に、稜の指が止まった。
原文:「[NAME_A]との約束、今週もキャンセルしていい? 正直あんまり気分じゃなくて」 変換後:「[NAME_A]との予定、今週はちょっと難しいかも。来週にリスケしてもいいかな?」
マスキングされた[NAME_A]に、特に引っかかったわけではない。匿名データでは人名はすべてこう表示される。稜の目が止まったのは、変換後の文面だった。
見覚えがあった。
同じ言い回しを、つい先月、読んだ記憶があった。自分のスマートフォンの画面で。
偶然だ、と思った。よくある言い回しだ。最適化アシストが出力するパターンには傾向がある。同じような入力には同じような出力が返る。似た文面が現れるのは当然だ。
稜は作業を続けた。三百十三件目、三百十四件目と進んだ。三百十八件目で、また手が止まった。
原文:「ごめん、もう少しひとりの時間がほしい。[NAME_A]のことが嫌なんじゃないけど、最近ちょっと息苦しくて」 変換後:「最近ちょっと忙しくて、なかなか会えなくてごめんね。落ち着いたら連絡するね!」
稜は画面から目を離し、天井を見た。
落ち着いたら連絡するね。その一文を、稜は二週間前に受け取っていた。佳乃から。日曜の昼過ぎに届いたメッセージの、最後の一行。そのとき稜は「了解、ゆっくりしてね」と返した。佳乃は翌日の夜にスタンプをひとつ送ってきて、その日の会話はそれで終わった。
匿名化のアルゴリズムは堅牢だ。ハッシュ化されたユーザーIDから個人を特定することは原理的にできない。日時もランダムにずらされている。本来、ログの中から特定のユーザーのメッセージを見分けることは不可能なはずだった。
ただ、文脈は別だった。
稜は三百十二件目に戻った。前後のログを開いた。同一のハッシュIDから送信されたメッセージが、そのサンプルに十七件含まれていた。稜はその十七件を、上から順に読んだ。残りの検証作業が手につかないまま、定時が来て、セッションが閉じた。画面が白くなり、データが消えた。明日のサンプルにあのハッシュIDが含まれる保証はない。おそらく含まれない。
原文と変換後を並べて読むと、ひとつの線が浮かび上がった。
原文のほうの佳乃、と呼んでいいのかどうか、稜にはまだ確信が持てなかったが、三ヶ月ほど前から、少しずつ距離を取ろうとしていた。最初は小さな迷いだった。「今日会うのちょっと面倒だな」程度の、誰にでもある気分の揺れ。それが次第に、「ひとりでいたい」「少し離れたい」「このまま続けていいのかわからない」へと変わっていた。
変換後のほうの佳乃は、一貫して穏やかだった。「忙しい」「タイミングが合わない」「来週にしよう」。否定の言葉は一度も使われていなかった。距離を取りたいという意思は、スケジュールの都合に変換されていた。迷いは、前向きな保留に書き換えられていた。
稜が受け取っていたのは、変換後のほうだった。
稜は三年間、毎日、他人の言葉の原文と変換後を見比べてきた。そのたびに、変換精度を五段階で評価してきた。文意の核が保存されているか。不自然な改変はないか。原文の意図が歪められていないか。
稜自身がつけてきたスコアの基準に照らせば、佳乃のメッセージの変換は、すべて「適切」の範囲内だった。文意の核は保存されている。「会いたくない」は「会えない」に。「離れたい」は「忙しい」に。構造は維持されている。ニュアンスが調整されているだけだ。ガイドラインの定義では、これは歪曲ではなく最適化だった。
ただ、「会えない」と「会いたくない」のあいだには、稜の人生を左右するくらいの距離があった。
稜は翌日、佳乃に会った。駅前のカフェで、向かい合って座った。
何を言うか、前の晩から考えていた。原文のことを伝えるべきか。ログを見たことを言うべきか。業務上知り得た情報を私的に利用したことになるのではないか。そもそも、あのログが本当に佳乃のものだという確証はない。状況証拠の積み重ねにすぎない。
稜は結局、こう切り出した。
「最近、メッセージの最適化アシスト、使ってる?」
佳乃はアイスティーのストローから口を離して、少し首をかしげた。
「最適化? あー、あのアプリの? うん、使ってるよ。っていうか、最初からオンになってたし。みんな使ってるんじゃないの?」
「うん。たぶん、ほとんどの人は使ってる」
「稜は使ってないの?」
「オフにしてる」
「なんで?」
稜は少し間を置いた。「仕事でああいうシステムの中身を見てるから、自分の言葉がいじられるのが気になって」
「へえ」と佳乃は言った。それから少し笑って、「稜らしいね」と付け足した。
そのあとの会話は、いつも通りだった。佳乃は職場の後輩の話をして、稜は聞いた。帰り道で佳乃は「今日は楽しかった」と言った。稜は「また来週」と返した。
電車の中で、稜はスマートフォンを開いた。佳乃からメッセージが届いていた。
「今日ありがとう。楽しかったね。また来週ね☺」
稜はその文面を見つめた。これは原文だろうか。それとも変換後だろうか。佳乃が本当に打った言葉は何だったのだろうか。「楽しかった」の前に、「正直ちょっと疲れた」があったのかもしれない。「また来週ね」の前に、「来週は会わなくてもいいかな」があったのかもしれない。あるいは、原文もまったく同じだったのかもしれない。
それを確かめる方法は、稜にはなかった。あの十七件のログはセッションとともに消えている。同じサンプルが割り当てられることは二度とない。佳乃の原文は、稜の記憶の中にしか残っていなかった。
最適化アシストの設計思想は一貫している。変換の痕跡を残さないこと。受け手に変換を意識させないこと。それが自然なコミュニケーションを保つための前提であること。稜はその思想を正しいと思ってきた。検証業務の中で、何千件もの変換を「適切」と評価してきた。
ただ、いま稜の手の中にある「楽しかったね」の五文字は、どれだけ見つめても、原文か変換後かの区別がつかなかった。佳乃の体温を探ろうとしても、画面の文字は均一な明朝体で、声も息づかいも手の震えも伝えなかった。
稜は返信を打った。最適化アシストはオフのまま。自分の言葉はそのまま送られる。
「こちらこそ。また来週」
送信した。既読がついた。佳乃からの返信はなかった。
それがアシストのない沈黙なのか、アシストが「返信不要」と判定した結果なのかも、稜にはわからなかった。仕事で嫌というほど見てきたことだ。沈黙は、このシステムのなかでは満足と区別がつかない。応答がないことは、問題がないことと同義に処理される。
では、恋人の沈黙はどうだ。
原文のない沈黙を、稜はポケットの中のスマートフォンごと握りしめていた。電車が駅に滑り込む音が、答えのない疑問を遮るように響いて、やんだ。