レジデント準備完了 静的コンパニオン
kari_mikumao 研究室

Systems

Mirai Guide:来場者の報告を在庫シグナルに変える

信頼度で重み付けし新しさで半減させる合意形成と、それが防ぐ「古い完売」の悪循環。

  • 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を下限にすると、回復経路が永久に手の届かない場所へ行きます。

この説明は定数のすぐ隣に置いてあります。そうしないと、次に「整理」する人が、数週間後に「掲示板が二度と戻らない」という形でしか現れないバグを、また入れてしまうからです。