値を明らかにせずに分散ノード間のパーセンタイルを推定する


23

解決すべきかなりユニークな問題があり、ここで誰かがそれをどうやってうまくやるのかについての洞察を与えてくれることを望んでいます。


問題:単一の参加者が共有する番号を実際に知らないような方法で、N個の番号のリストが参加者セット間で共有されているとします。すべての参加者は、N(数値のリストのサイズ)とリスト上のすべての数値の合計を知っていますが、先験的なことは何も知りません。

一緒に作業することにより、参加者が「a <b」という文が真であるかどうかを学習するように、2つの共有番号aとbを比較できますが、それ以上はできません。ただし、これは非常に高価です(1回の比較を完了するのに数秒、場合によっては数分かかることがあります)。そのようなことがどのように可能かについてのもう少しの情報については、この投稿の終わりを見てください。

一日の終わりに、当事者は、リスト内のどのインデックスを、リスト内の「上位Kパーセント」(最大のK%)共有番号に対応させるかを出力します。もちろん、これはソートするか、「トップK」選択アルゴリズムを使用して実行できます。ただし、これらは非常に多くの比較を使用する傾向があるため、回避する必要があります。(これらは、O(n log n)またはO(n)のいずれかで、かなり大きな隠し定数があります。)

別の選択肢は、(1-K)%がXより小さく、K%が大きい数値Xでの「推測」です。次に、各要素をXと比較して、どれだけ大きいか、小さいかを確認できます。推測が間違っていた場合は、正しいソリューションに収束するまで、バイナリ検索などを使用して修正します。推測が正しければ、比較にかかる時間ははるかに少なくなります。

だから、私の質問は、

Nと合計のみを考えると、Xを「予測」する最良の方法は何ですか?

もちろん、これは基礎となるディストリビューションに依存します。さまざまなユースケースでは、基礎となる分布は異なる可能性がありますが、既知であるため、すべての一般的なもの(通常、均一、指数関数、おそらくいくつか)の優れたソリューションに興味があります。また、基礎となる分布についての仮定を前提として、「バイナリのような」検索を実行してステップ数を最小限に抑える最善の方法に関する提案を聞きたいと思います。


付録:リストの各値は、Shamirの秘密共有スキームを使用して参加者間で共有されます。仮定M参加者が存在すると、リストは、リスト上のi番目の数は多項式で表現され、そして長さNであり、いくつかの有限体Fの一定期間にわたり度M-1のfはiが数であります共有されていることを、他のすべての係数はj番目の参加者の株式は次いで、F.からランダムに一様に選択されるfをIJ 1 I Nfffj1N。この共有を考えると、参加者はその番号に関する情報を(情報理論的には)持っていません。実際、参加者の適切なサブセットでは、知識を組み合わせて共有番号に関する情報を学習することはできません。ただし、高度な安全なマルチパーティ計算手法を使用すると、情報を公開せずに、ある共有値が別の共有値よりも小さいかどうかを判断できます。この手法では、すべての参加者が協力する必要があります。そのため、実行するのに費用がかかるため、できる限り少ない回数で実行する必要があります。


これは面白そうに聞こえますが、そのプロセスをまだ完全には理解していません。特に2番目の段落を明確にできますか?どのように多くの参加者?あるMのより小さい、より大きいが、またはに等しいN?各参加者は数字のサブセットを知っていますか?明らかに、彼らはすべてのことができないだけ知っているN、その後の情報集約の方法で任意の質問やコラボレーションを依頼する方法がないため、その合計を< bが。質問できる種類に制限はありますか?あなたの編集を楽しみにしています。MMNNa<b

1
この質問は統計的よりもアルゴリズム的であるように思われ(この点について説明するためのリクエストは応答しませんでした)、統計コミュニティは実行可能な応答を提供していませんので、TCSに移行して、そこに関心が生じるかどうかを確認しましょう。
-whuber

6
本当の質問は、単に次のように思われます:「分布がわかっている場合、比較ベースの選択アルゴリズムの設計でこの情報をどのように活用できますか?アルゴリズムは、可能な限り少ない比較を使用する必要があります(予想、定数要因問題)。」これは正しかったですか?
ユッカスオメラ

2
八尾の億万長者の問題を考えましたか?これにより、はるかに少ない計算で安全な比較が可能になります。
MS Dousti

3
kn nknnk<<n
マッシモカファロ

回答:


1

次の2つの関連する質問をするようです。

  1. 「リスト内のどのインデックスがトップに対応するか」
  2. 「パーセンタイルの推定」、「…K%が大きい数値X」

これらには、非常に異なる数のペアごとの比較が必要な場合があります。

重要な影響を与える可能性のある他の側面は、共有される情報です。誰もが受け取った数、合計、および参加した比較のyes / noの結果を知っています。ただし、「リスト内のどのインデックスがトップに対応するかを出力したい」とも言うので、インデックスに関するいくつかの情報が共有されること。正確に共有されているものに応じて、非常に異なるソリューションが再び得られる場合があります。


申し訳ありませんが、私は十分に明確ではなかったに違いありません。リスト上の単一の番号は誰も知りません。代わりに、N個の「数字の共有」のリストがあります(数字の共有の概念に慣れていない場合は、Shamirの秘密共有スキームを使用します)。したがって、1人の参加者が持つ事前情報は、Nとリスト内のすべての数字の合計のみです。それらはそれぞれ、各番号に関する情報を少し持っていますが、その番号が何であるかを知るのに十分な情報はありません。

2つの関連する質問に関する限り、2番目の質問は最初の質問に対する効率的な解決策を意味します。いくつかの比較を使用してXを見つけることができる場合(合理的に良好な初期推測ができる場合は可能)、さらにN個の比較を使用してXより大きいすべての値のインデックスを見つけます(これらの比較も安価です。 Xを共有する代わりにXを知っていると、比較のコストが約3分の1削減されます。)上位Kを見つけるための汎用アルゴリズムは、〜log( X)比較

コメントの回答と元の質問の付録をありがとう。今、問題は異なって見えます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.