Systems
Mirai Guide:来場者の報告を在庫シグナルに変える
信頼度で重み付けし新しさで半減させる合意形成と、それが防ぐ「古い完売」の悪循環。
来場者はブースで見たものを報告します。潤沢、残りわずか、完売。
ばらばらのそれを、見知らぬ誰かが行動できる1つの値にまとめるのは合意形成の問題です。ただ、少し変わった性質があります。在庫の状態は時間的だという点です。40分前の「完売」は、現在についての対立意見ではありません。すでに変わっているかもしれない状態についての、古い情報です。
重み付き投票
45分の窓に入る報告を採点し、最高点の値が勝ちます。
各報告は、報告者の信頼度に、15分ごとに半減する新しさ係数を掛けた値を寄与します。だから、控えめな報告者の新しい報告が、信頼された報告者の古い報告を上回ることがあります。
確信度は勝者の得点シェアとして、報告件数と最新時刻とともに返します。そうするとUIは、「何だと考えているか」だけでなく「どれくらい確かか」まで言えます。
報告者は低い信頼度から始まり、裏付けが取れるたびに少しずつ上がります。参加に認証は要りません。信頼は、時間をかけて群衆と一致することから積み上がります。
悪循環
ここで設計上防ぐべき失敗は、操作ではありません。古さが自らの訂正を抑え込むことです。
いったん完売と表示されたらどうなるか考えてみてください。人は見に行かなくなります。だから誰も報告しません。だから値が更新されません。だから補充のあともずっと完売のままで、掲示板は赤くなったきり戻ってきません。
これに2つの仕組みで対処しています。
1つ目。補充の主張は、古い完売報告を投票で上回るのではなく、まとめて落とします。 半減期を待たずに、1件の報告で回復できます。
2つ目。誰がそれを主張できるかを信頼度の下限が決めます。群衆による「潤沢」が古い「完売」を単独で覆せるのは、その報告者が最低1回は裏付けを得ている場合だけです。作りたての鍵だけで本物の完売を消すことはできません。ただし、通常の重み付き投票には普通に寄与します。
運営による補充はこの下限の対象外で、その例外はUIではなく通信層で強制しています。報告ペイロードのスキーマは群衆用の3値しか受け付けないので、運営補充を作れるのは管理経路だけです。
残しておくべき細部
信頼度の下限は0.31です。開始値0.3と、1回裏付けを得た後の値のちょうど間にあります。
これは神経質さではありません。信頼度は累積した浮動小数で、0.3 + 0.04は0.33999999999999997と評価されます。ちょうど0.34を下限にすると、回復経路が永久に手の届かない場所へ行きます。
この説明は定数のすぐ隣に置いてあります。そうしないと、次に「整理」する人が、数週間後に「掲示板が二度と戻らない」という形でしか現れないバグを、また入れてしまうからです。