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を下限にすると、回復経路が永久に手の届かない場所へ行ってしまいます。この説明を定数のすぐ隣に置いてあるのは、次に「整理」する人が、掲示板が二度と戻らないという形でしか現れないバグを再導入しないためです。