概念としての「ランダム」

順次再生する曲を選ぶロジック同士には依存関係がなく、完全にランダムに選択される。よって、同じアーティストの別の曲が次に再生されることも可能性としてはある。

これはギャンブラーの誤謬と呼ばれる現象。例えば、コイントスで表が連続してでると、次は裏が出ると思いがちであるが、常に確率は1/2である。従前の結果が次の結果に影響を与えると考えてしまう。よって、「曲がシャッフルされて、まずアーティストAの歌が再生されたら、次に再生されるのはアーティストA以外のものになる可能性が高くなるだろう。」という予想は、確率計算上は誤っている。(けど、Spotifyユーザのサービスに対する期待としては正しい。)

Spotify: 曲をシャッフルするのは単純にランダムではいけない - ワザノバ | wazanova

このお話、おもしろかった。「ユーザのサービスに対する期待としては正しい」って部分がおもしろかった。じゃあ、ここで「ユーザの期待」について考えてみる。

アプリケーションの仕様や挙動や設計や実装について人間とお話していると、ちょくちょく「ここはランダムで」とか「新着順で」とかいうフレーズが飛び交う。ほいで、試しにそれをそのまま実装してみると、「あっ、この場合はこれは表示されてほしくない」「基本は新着なんだけれど、これとこれは連続するとうれしくない」みたいな感覚を持つことがある。その段階で、その段階のお話の通りの挙動になるように実装しようとすると、条件分岐が複雑になりすぎたり、そもそも感覚をうまく言語化できなかったりして、だいたい変な実装に向かいそうになってモヤモヤする。人間はむつかしい。

そういうのとだいぶ向き合って実装されているんじゃないか、と感じるのが Facebook の News Feed だったりする。なんかの条件で、あるものが表示されたりされなかったり、目立つ位置に出たり出なかったり、している印象を受ける。たぶん、裏側ではいろいろやっていると思う。すごい。

でも、それがぼくのほしいものかというと必ずしもそうでもなくて、そういえば2012年にこんなことを書いていた。


裏側でいろいろやっているな、と感じてしまうと、「いや、そういうのはいいんで、そのまま見せてください」という気持ちになる。なんか、コントロールが効かない感じなのはいやなんだな、きっと。フィードリーダが「これはきっと読まないだろうと思って、スキップしておきました」って言ってきたら「えっえっ」ってなると思う。それに近い感覚。なにを読んでなにを読まないかは自分で決めたい。このへんは、人それぞれなんかな。うまいこと絞って出してくれた方がうれしい、っていう人もいそう。ぼくも不慣れな飲食店では「おまかせで」と言って気持ちよく過ごしていたりするから、ドメインにも依るお話か。今回は深追いしすぎずに、ここらで止めよう。

「ユーザの期待」ってのは、たしかにあると思う。顕在化していて言語化されているものだけじゃなくて、潜在的な期待ってのもあると思う。言語化されているけれど、潜在的な真の期待とはずれて言語化されている、ってこともある。それらとは別の層で「自分の見えないところでなにかやっていると感じさせてほしくない」ってのも、あるのかもしれない。

ミュージックプレイヤーに分類されるアプリケーションの開発チームに属しているとして、口頭でのなんとなくのやりとりで「ランダム再生したいよね〜」なんてフレーズが出ることはあるだろう。でも本当に「ランダム」を期待しているのか、もうちょっと複雑な期待をしているのか、ちゃんと確認した方がよさそう。

ソーシャルゲームのガチャにしたって、ユーザは「こんだけお金をつぎこんだんだから、そろそろレアを引くはず」とか期待している。「確率20%で当たる」って言ったら「5回引けば必ず1回は当たる」って思われちゃう場合があるんだから、ユーザの期待と、それの言語化と、それの実装ってのは、本当にむつかしいのだなあ。