オンライン出会い系サイトの統計


10

オンラインの出会い系システムが調査データを使用して一致を判断する方法に興味があります。

過去の試合の結果データがあるとします(たとえば、1 =結婚して幸せ、0 = 2日目はありません)。

次に、2つの好みの質問があったとしましょう。

  • 「アウトドア活動はどの程度楽しんでいますか?(1 =強く嫌い、5 =強く好き)」
  • 「あなたは人生についてどの程度楽観的ですか?(1 =強く嫌い、5 =とても好き)」

また、好みの質問ごとに、「配偶者があなたの好みを共有することはどれほど重要ですか(1 =重要ではない、3 =非常に重要)」というインジケーターがあるとします。

各ペアについて4つの質問があり、一致が成功したかどうかの結果がある場合、その情報を使用して将来の一致を予測する基本モデルは何ですか?


2
女の子が可愛いか、男性が金持ちの時に成功するかと思った。他のすべては二次的です。
user4951

4
blog.okcupid.comをチェックしてください-彼らはどこかで、基礎となるマッチングモデルについて話します。
Felix S

どんなことをもっと深めたいですか?マイケルの答えはかなりしっかりした概観です。
ダン

EHarmonyの特許(特許6,735,568- google.com /… )を読んだ場合、彼らのシステムは主成分分析、因子分析の組み合わせを使用し、ニューラルネットワークを使用しています。他の人がK-NN、CARTS、およびGLMのような方法についても述べたように、うまくいくでしょう。
Chris Simokat

@ChrisSimokat-WOW!素晴らしいリンクをありがとう。それは興味深いことです。統計的手法やアルゴリズムを「著作権で保護」できるとは思いもしませんでした。
d_a_c321

回答:


4

私はかつて、統計的手法を使用するオンライン出会い系サイトの1つで働いている誰かと話をしました(おそらく、だれかについては言わなかったでしょう)。それは非常に興味深いものでした-まず、プロファイルベクトル間の距離がユークリディアンまたはL_1(シティブロック)の最近傍など、非常に単純なものを使用しましたが、類似しすぎる2人のマッチングが良いか悪いかについては議論がありました事。さらに、多くのデータ(誰が誰に、誰が誰とデートしたか、誰が結婚したかなど)を収集し、モデルを絶えず再トレーニングしていると述べました。データのバッチを使用してモデルを定期的に更新し、データベースの一致確率を再計算する増分バッチフレームワークでの作業。かなり興味深いものですが、私は


3

あなたはシンプルなモデルを求めました。ここに私がRコードから始める方法があります:

 glm(match ~ outdoorDif*outdoorImport + optimistDif*optimistImport,
     family=binomial(link="logit"))

OutdoorDif =アウトドア活動をどの程度楽しんでいるかについての2人の回答の差。OutdoorImport =アウトドアアクティビティを楽しむための回答に関する一致の重要性に関する2つの回答の平均。

*は、前後の用語が相互に作用し、別々に含まれていることを示します。

一致データはバイナリーであり、「幸福な結婚」と「第2日付なし」の2つのオプションしかないことを示唆しているため、ロジットモデルを選択する際に想定しました。これは現実的ではないようです。考えられる結果が3つ以上ある場合は、多項式または順序付きロジットまたはそのようなモデルに切り替える必要があります。

あなたが示唆しているように、何人かの人々が複数回マッチを試みた場合、それはおそらくモデルで説明しようとする非常に重要なことでしょう。これを行う1つの方法は、各人物に対して以前に試行された一致の数を示す個別の変数を用意し、その2つを操作することです。


すばらしい答えをありがとう..私はあなたに賞金を差し上げます!:)それは良いアプローチのようです。おそらく、Mのようなカテゴリに適合するN個の質問(たとえば、陸上競技の質問)がある場合、そのカテゴリ内の重要度と差異の平均を使用してモデルを充実させ、追加の用語として追加することができます。完璧ではありませんが、いくつかの相関する変数の相互作用を捉える簡単な方法かもしれません。再度ありがとうございます。あなたの答えにならなかった他の考えを聞いていただければ幸いです;)。
d_a_c321

最初に回答を正規化しないでください。誰もがアウトドアを楽しんだとしたら、アウトドアの答えはあまり適合性がなくなるはずです。
Sklivvz

@Skliwz、多肢選択(通常)の回答をどのように正規化するかわかりません。:また、連続予測変数の線形変換が理由のために、時には望ましいが、ここで説明されていることを覚えておいてくださいstats.stackexchange.com/q/7112/3748、ここで:stats.stackexchange.com/q/19216/3748を、彼らは変更されませんいくつかの異常な計算問題を除外したモデル予測。誰もがアウトドアを楽しんでいる場合、アウトドアとアウトドアの答えは同じように重要ではありませんが、私が指定したように、モデルにとってそれは本当に問題ではないと思います。(私のモデルが完璧であるというわけではありません)
Michael Bishop

1

簡単な方法の1つは次のとおりです。

2つの優先質問では、2つの回答者の回答の絶対差を取り、4つの代わりに2つの変数、たとえばz1とz2を与えます。

重要性の質問については、2つの回答を組み合わせたスコアを作成する場合があります。たとえば、応答が(1,1)の場合、1を指定すると、(1,2)または(2,1)は2を取得し、(1,3)または(3,1)は3、(2,3)または(3,2)は4を取得し、(3,3)は5を取得します。これを「重要度スコア」と呼びましょう。代わりに、max(response)を使用して、5ではなく3つのカテゴリーを指定することもできますが、5つのカテゴリーバージョンの方が良いと思います。

ここで、デフォルト値がすべてゼロの10個の変数x1-x10(具体的に)を作成します。最初の質問の重要度スコアが1の観測値= 1、x1 = z1。2番目の質問の重要度スコアも= 1、x2 = z2の場合。最初の質問の重要度スコアが2の観測値= 2、x3 = z1で、2番目の質問の重要度スコアが2の場合、x4 = z2というようになります。各観測値について、x1、x3、x5、x7、x9!= 0のいずれか1つ、x2、x4、x6、x8、x10についても同様です。

これをすべて実行したら、バイナリ変数の結果をターゲット変数として、x1-x10をリグレッサとしてロジスティック回帰を実行します。

これのより洗練されたバージョンでは、男性と女性の回答者の重要度を異なる方法で処理できるようにすることで、より重要度のスコアを作成する場合があります。たとえば、a(1,2)!= a(2,1)では、性別で回答を並べています。

このモデルの欠点の1つは、同じ人物の複数の観測値がある可能性があることです。つまり、大まかに言えば、「エラー」は観測値間で独立していないということです。ただし、サンプルに多くの人がいる場合、おそらく最初のパスではこれを無視するか、重複がないサンプルを作成します。

もう1つの不足は、重要度が高くなると、p(fail)の設定間の特定の差異の影響も大きくなることであり、これは(x1、x3、x5、x7、x9)の係数と(x2、x4、x6、x8、x10)の係数の間。((2,2)の重要度スコアと(1,3)の重要度スコアとの関係は私にはアプリオリに明確ではないため、おそらく完全な順序ではありません。)ただし、モデルではそれを課していません。私はおそらく最初はそれを無視し、結果に驚いたかどうかを確認します。

このアプローチの利点は、「重要性」と嗜好応答の違いの間の関係の関数形式について仮定を課さないことです。これは前の不足コメントと矛盾しますが、課されている関数形式の欠如は、係数間の予想される関係を考慮に入れていない関連の失敗よりもおそらく有益であると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.