Misskeyにあるアンテナ機能の、Mastodonから見た問題点

私が運営してるMastodon SNSのkmyblueなんですが、一時期、うちに投稿された一部の投稿だけをMisskeyに配送しないようにしようかと検討していました。ただ、しばらく考えた結果、「実際問題、利用者はそこまで考えていないんじゃないか」という結論に至りましたのでやらないことにしました。
代わりに、なぜこのような検討を行うにいたったか、Mastodonの立場から見たMisskeyの問題点についてこの記事に残してみます。

やろうと思っていた制限は、「購読拒否を設定したアカウントによる未収載投稿を主要Misskeyサーバー(misskey.io含む)に配送しない」でした。
なぜ未収載投稿だけを選んだのか、なぜ相手がMisskeyなのかを、背景から順を追って説明します。かなり長くなりますので、未収載について分かっている人は途中を読み飛ばしても大丈夫です。

「未収載」投稿の位置づけ

kmyblueには「ローカル公開」という公開範囲があり、kmyblue利用者のほとんどはこの公開範囲を使っているので感覚が麻痺しているかもしれませんが、一般のMastodonサーバーの公開範囲には「公開 未収載 フォロワーのみ 指定した相手のみ」の4種類があります。

このうち「公開」は、連合タイムライン、ローカルタイムラインに掲載されます。「未収載」は、投稿自体は公開されるにかかわらずタイムラインには掲載されません。

ここでお気付きの方いらっしゃるかもしれませんが、フォロワー以外の方が未収載投稿の存在に気づくには、自分でそのアカウントの詳細を開く必要があります
未収載は、フォロワー以外では、そのアカウントに興味を持った人にだけ見せますよ、という投稿範囲です。投稿ではなくアカウント単位の話、というところが重要です。

参考までに、Mastodon公式ブログにある未収載についての記述を引用します。

Unlisted messages are perfect if you want to be just a little low-key and not attract strangers to interact with you; private is great when you don’t want your messages easily shared around.

https://blog.joinmastodon.org/2018/07/cage-the-mastodon/

未収載投稿は、公開タイムラインに載せたくない、でも知り合い以外に見られたくないほどではない、そして「stranger」との交流を避けたい場合に使われます。
「stranger」の意味をWeblioで調べてみますと、以下になります。

(見)知らぬ人、他人、客、不慣れな人、初めての人、未経験者

Weblio「stranger」

公開タイムラインに掲載されると、もちろんあなたの知らない人にも投稿が見られるわけです。連合タイムラインを通して、他のサーバーの無関係の人に見られる可能性があります。その中にはきっとあなたの活動に好意的な人もいるでしょうけど、嫌悪する人、攻撃的な人もいます。
そのような人は、普通はあなたやあなたのジャンルを調べるようなことはしないでしょう(積極的に調べる変わり者もいますが)。そのような人の目にとまることで、人間として良識のある人であれば無視かブロックで済むかもしれませんが、中には不快感の表明、悪口陰口、抗議のリプを送る人も出てくるでしょう。

実際、Twitterでもそのような話題はよくありました。温泉むすめも、温泉施設に看板が置いていなければ批判の目に晒されることはありませんでした(一連の騒動を肯定してるわけではありません)。彼女と一緒にサイゼリヤに行ったときのイラストも、Twitterに投稿されて多数の人の目に触れた結果、多くの女性から非難が集まりました。Mastodon開発者はそのような事態を恐れているのでしょう。(私が以前書いたこのゴミ記事も参照してください

未収載という公開範囲は、そのような人たちの目に偶然触れることがないようにしたい、でも非公開にするほどではない、そういう微妙な投稿に適用するものだと考えています。

少し話がそれますが、未収載投稿はフォロワーがブーストすることによって広めることが可能です。しかしそのアカウントをフォローしているような人ですから、その人のフォロワーたちの考え方、属性などもきっと当人と似ているのでしょう。MastodonにはTwitterのようなフリーワードのトレンドがあるわけではないのですから、似た人たちの集まり、クラスタの間だけで投稿が共有されやすい仕組みになっています。

Misskeyのアンテナ機能が抱える問題

結論から先に書きます。Misskeyのアンテナは、フォローしていない人の未収載投稿を拾います。
(4/30追記) 検索でも同様みたいです

MisskeyもMastodonと同様、公開タイムラインが複数に分かれています。ローカル、ソーシャル、連合です。ソーシャルタイムラインとは、ローカルタイムラインに自分がフォローしているアカウントの発言を足したものですがここでは重要ではありません。他の2つは、Mastodonにある同名のタイムラインと大体同じです。

ではアンテナとは何でしょうか。ローカル・連合にこれだけたくさんの投稿があるのですから、例えば「ブループロトコル」というゲームに関する言及も探せばどこかにあるでしょう。検索で探し出すことも可能ですが(※以前の記事に書きましたがMisskeyの検索もプライバシーを考慮していません)、その検索時のキーワードも「ブルプロ」「BLUE PROTOCOL」などといった表記ゆれを考えて全部調べなければいけません。毎日検索キーワードを打ち込む手間もあります。ときには最新情報をリアルタイムで追いたいと考えることもあります。そのような人に検索機能は不向きです。ではどうすればいいかというと、アンテナ機能経由でキーワードを指定します。するとそのキーワードに沿った投稿がリアルタイムで流れてきます。

このMisskeyのアンテナ機能は、Fedibirdの「キーワード購読」、kmyblueの「アンテナ」と基本的には同じものですが、決定的な違いが1つあります。フォローしていない人の未収載投稿を拾います。言い換えると、フォローしていない人の未収載投稿がリアルタイムで流れてきます

MastodonにもMisskeyにも、アカウントに鍵をかけるシステムはあります。それによって投稿者は、自分の未収載投稿をリアルタイムでタイムラインに流していい人を自分で制御することができます。そもそも未収載投稿は、そのアカウントに興味を持った人に見せ、「stranger」に見せないことを前提とした公開範囲です。Misskeyのアンテナ機能は、その前提を破壊するものです。

でもMisskeyのアンテナもキーワード検索ですから、見る人は結果的に「stranger」にならないのでは?と考える人もいるでしょう。確かにアニメにしかないような固有キーワードで検索すればその通りでしょう。

もうちょっといい例もあるにはあるのですが、ここではkmyblue利用者にとって最も身近な例を挙げます。kmyblueの利用者層に多いのが男性同士のカップリング、いわゆるBLなんですが、そこではカップリングを「AxB」という形式で表現します。Aが攻めでBが受けという意味ですね。「AxB」と「BxA」では全く違います。
普段弱気なAがショタBに対してはくいくい攻めるというシチュ、ショタBが弱気なAを押し込めるシチュ、全く違います。ここで「BxA」好きな人が「AxB」のシチュを見てしまうと、「自分の知っているBは強気のはずだったのに」「Aは奥手だと信じていたのに」という解釈違いが発生して、自分の頭の中での「BxA」に満足できなくなってしまう、「BxA」のことを考えようとしてもどうしても雑念が入ってしまう。中には、通報などの集団イジメとか喧嘩とか排除とかに発展してしまうこともある。BLを知らない自分には到底理解できない話ですが(自分にとっては本当にあったかも怪しいですが)、そのような人もいるようですね。
ここで「AxB」が好きな人が、「BxA」好きな人に配慮して「AxB」の話を公開タイムラインに載せず未収載でやったとします。当然フォロワーもそれを理解している人ばかりですし、読みたくない人は事前にフォロー外してます。解釈違いは発生せずめでたしめでたしです。

ではこれをMisskeyのアンテナでやったらどうなるでしょう。「AxB」好きな人も「BxA」好きな人も、実は検索キーワードは一緒ではないかと思います。全員が全員「AxB」「BxA」と表記してくれたら助かるのですが、そうでない書き方をする人も多いのであれば、結局はB、Aそれぞれの名前で書くしかないわけですね。結果として「AxB」「BxA」両方出てきます。せっかく未収載にして配慮してくれたはずの投稿も全部出ます。

実際はCWで隠す人も多いんじゃないかと思いますが、もともと未収載投稿とは「stranger」を避けるためのものですから投稿者も少々安心しているところはあると思います。そのような安心感が成り立つのを、Mastodonの中だけの話にしたのがMisskeyの「アンテナ」機能です。(実際にはアイマストドンのタグ検索が未収載を拾うなど、Mastodonの中にもそういうサーバーは少なからずあると思います)

Fedibirdの「キーワード購読」やkmyblueの「アンテナ」でも一見同様の問題は発生するように見えますが、実は起きません。どちらもフォローしていないアカウントの未収載投稿は拾わないからです。そのため、未収載投稿がフォロワーでない人に意図せず漏れる可能性は、少なくともkmyblueのアンテナ機能では発生しえません。
加えて、両者は発言をホームやリストに保存します。Mastodonのホーム・リストは、最新の800件の投稿のみを保持し、かつ7日以上ログインしていないユーザーのものは投稿の登録が自動で全削除されます(サーバーによって数字が異なる場合があります)。つまり発言が永遠に保持されるわけではありません。発言を永久的に見られないようにし、アンテナをあくまで検索ではなく最新発言を追う機能に特化することも、不用意な衝突を防ぐためには重要なことです。

kmyblueはSearchabilityを無視して検索機能を拡張しようとした時期もありましたが、その時の私ですら未収載投稿はフォロワーにしか検索できないようにするつもりでした。未収載投稿は「stranger」から保護されなければいけません。簡単に言い換えれば、Mastodonの設計思想を正確かつ完璧に把握していない私ですらドン引きするレベルの仕様だということですね。

Misskeyのアンテナ機能が未収載投稿を拾うことを否定しているわけではありません。Mastodonの立場から見れば、Misskeyユーザーは、未収載投稿がアンテナに拾われることに同意しているものと見なされるからです。MastodonとMisskeyとではソフトウェアの設計思想が根本的に異なり、この面ではソフトウェア同士の相性が悪いと言わざるを得ません。

実際、Misskeyからkmyblueに流入する人はいます。ですがkmyblueはMastodonサーバーとして、そうした人に迎合すべきではないと思っています。Misskeyと同じ考え方で機能を設計するなら、もうMisskeyに乗り換えたほうがいいですね。MastodonにはMastodonの考え方があり、Mastodonの文化を示すことが必要です。MisskeyとMastodonの違いを明確にすることで、「自分はMastodonのほうが合っている」「自分はMisskeyのほうがいい」という棲み分けができるようになるわけです。Mastodon側がそれを曖昧にしてしまうと、既存ユーザーにとっても、他のサーバーにとっても、困ったことになります。

kmyblue内購読機能における対応

kmyblueの「アンテナ」は公開・ローカル公開投稿を拾いますが、それでもなおkmyblue内にいる「stranger」に投稿を見られるリスクは残っているわけです(ローカルタイムラインよりはリスクは少ないですが)。また、自分の発言が目に見えない誰かに購読されていることに良くない感情を持つ人もいます。私自身がそうでしたから、言葉に表せない気味悪さは理解しています。
ですからkmyblueは、独自の購読拒否機能を実装しました。この機能を利用したアカウントの投稿はkmyblue内アンテナに掲載されず、また他のサーバーにもActivityPubを通して購読拒否の意思を送信します。
その購読拒否を設定しているアカウントはすでにいくつかあります。実際に設定している人がこれを読んでドキッとするかもしれないので具体的な数字の公表は差し控えますが、そんなにいないです。でも決して1人ではありません。

配送制限をオプション化する理由

購読拒否を設定した人は、「自分の発言が購読されたくない」という意思を明確に示したものとkmyblueでは見なします。これだけでも本来ならFedibirdやMisskeyに発言を流すべきではないのですが(※Fedibirdはこの記事を書いた日に対応してくれました。私も誤解を生みそうな書き方をしてしまい大変申し訳無いですが、のえる様の寛大な対応に感謝します)、そもそも購読拒否はkmyblueが勝手に付け加えた設定ですので、それを守れと周囲に言うのも理不尽な話なわけです。
kmyblueでは両者と密接につながっているアカウントが多く存在することもあり、購読拒否機能に対応しない購読機能を搭載したサーバーへの全アカウントの投稿の一律配送拒否措置は現実的ではないと考えます。

kmyblue利用者の中には、ActivityPubを始めたばかりの人、話題だからMisskeyに登録してついでにMastodonにも登録してみたくらいの考えの人も多いです。そのような人たちは「そんなことまで考えてないのではないか」とも思っています。
今回の制限は、該当する発言が非常に絞られる以上、宗教的な問題にすぎません。他のサーバーも同様の制限を実施するなら話は別ですが、kmyblue単独では実行し得ないのではないでしょうか。

【追記】kmyblueにおける対Misskey追加対応

kmyblueでは購読機能の配信制限をいったん見送りましたが、そのあと結局各ユーザーがオプションで制限できる機能を追加しました。多分これは無難なラインではないかと思いますので共有します。

kmyblueでは、あらかじめ任意のオプションを設定したユーザーの「ローカル公開」「未収載」投稿に限り、Misskeyサーバーへの配送時に「これはフォロワーにしか閲覧できない投稿です」と偽装します。
これによって、未収載投稿について、Mastodonサーバーでは誰でも見れるのにMisskeyではそのアカウントのフォロワーしか見れない、ということが起こります。Misskeyにおいて未収載投稿の公開範囲が制限されるのは不本意ではありますが、意図しない人に未収載発言が検索され容易にアクセスできる状態にしないためには、これが最も差し障りのない解決策ではないかと思います。

この記事が気に入ったらサポートをしてみませんか?