How does one determine similarity between people online? (Quora和訳)

http://www.quora.com/How-does-one-determine-similarity-between-people-online

 

How does one determine similarity between people online?

どのようにオンラインのユーザ間の類似度を決定するか?

How do you quantify similarities between people using shopping sites, social networks, Q&A sites etc (e.g how do Netflix, Amazon, Paypal, Twitter, Linkedin, Facebook, Quora calculate user similarity/assign users into groups)

どのようにショッピングサイト、ソーシャルネットワーク、QAサイトのユーザ間の類似度を定量化するか。

 

回答1

 

Here are some educated guesses about what serves as a basis for their work:

(1) Use vector models. For each user, look at the text he wrote.

Build a tf.idf vector. See http://en.wikipedia.org/wiki/TF_IDF for details.

Then compute the cosine between any two users.

You can supplement this with fancier Techniques such as LSI.

If you want to implement something such as similarity measure based on text, you can look at the

org.apache.lucene.search.similar package in Lucene (open source).

(2) Networking sites such as Facebook might simply look at how many friends you have in common and compute something like the Jaccard index .

 

 

彼らの仕事の基礎について、いくつかの経験から推測は以下のとおりです。

(1)ベクトルモデルを使用してください。 ユーザーごとに、彼が書いたテキストをもとに。TF-IDFベクトルを構築します。

その後、任意の2つのユーザー間のコサインを計算します。

またLSIの等の凝ったテクニックこれを補完することができます。

このようなテキストに基づいて類似度として何かを実装する場合は、(オープンソースの)Luceneライブラリがあります。

(2)Facebookなどのネットワーキングサイトは、単にあなたが共通に持ってどのように多くの友人を見て、Jaccardインデックスのようなものを計算しているのかもしれない。

(関連キーワード: LSI / Jaccard Index )

 

 

回答2

 

A good place to start is: Programming Collective Intelligence

http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325

Whole books have been written on this area so answering it in a few words is not give anywhere near a full answer.

But if using the collaborative filtering approach, then find how many actions (e.g. products purchased, likes, friends) two people have in common. But to make it work well you have assign weights to the actions in common. The correlation value between two people is the sum of the weights of the actions. But the tricky part is assigning good weights to the actions. The weight has to be relative the two people, the cluster of the two people and the whole population.

 

 

集合知プログラミングは入門には良い。

その領域についてこの本に書かれている。

しかし、協調フィルタリング手法を使用している場合は、その後二人が共通して持ってどのように多くのアクション(購入などの商品、好き、友人)を見つける。

しかしそれはあなたが共通のアクションに重みを割り当てるているうまく機能させるために。

二人の間の相関値は、アクションの重みの合計です。

しかし、トリッキーな部分はアクションに適切な重みを割り当てています。 重量は相対的な二人、二人のクラスタと全体の人口にする必要があります。

 

回答3

Recommendation mining is very useful to determine similarity between peoples using shopping sites, social networks and Q&A sites on the basis of their likes, choices and on-line behavior

Some of popular recommendation engine are

 

You can also find similarity between in text posted by authors in Q&A, social networks, blogs etc. For that you can try out following techniques

  • Jaccard Index
  • Simrank
  • Vector space model with Cosine Similarity
  • Sorensen similarity index
  • BM25 Okapi model

 

 

レコメンドマイニングは、ショッピングサイト、ソーシャルネットワーク、Q&Aを用いて人々の間の類似性を決定するために非常に便利です。

有名なレコマンドエンジンとしては以下があります。

また、Q&A、ソーシャルネットワーク、ブログ等での、投稿者間の類似性を見つけることができます。

そのためには、次の方法を試してみることができます

  • ジャッカード係数
  • Simrank
  • コサイン類似度によるベクトル空間モデル
  • Sorensen similarity index
  • BM25 Okapi model

(関連キーワード: Jaccard Index / Simrank / Vector space model with Cosine Similarity / Sorensen similarity index / BM25 Okapi model )

 

 

 

 関連するQuoraのQA