4

インテリジェントWeb (Web 2.0)のアルゴリズムについて3つの主な質問があります

ここで私が読んでいる本はhttp://www.amazon.com/Algorithms-Intelligent-Web-Haralambos-Marmanis/dp/1933988665であり、アルゴリズムをより深く学びたいと思っています。

1.フォローできる人(Twitter)

リクエストに最も近い結果をどのように判断できますか?データマイニング?どのアルゴリズム?

2.接続方法機能(Linkedin)

単純にアルゴリズムはそのように機能します。これは、2つのノード間のパスを描画します。たとえば、 Meと他の人の間のパスはCです。 私->A、B->A接続->C。これは、ブルートフォースアルゴリズムやその他のグラフアルゴリズムのようなものではありません:)

3.あなたに似ています(Twitter、Facebook)このアルゴリズムは1に似ています。それは単に共通のmax(count)友達(facebook)またはTwitterのmax(count)フォロワーを機能させますか?または彼らが実装する他のアルゴリズム?ループを実行しているので、2番目の部分は本当だと思います

 dict{count, person}
 for person in contacts:
        dict.add(count(common(person)))
 return dict(max)

すべてのさわやかなページで愚かな行為です。

4.つまり(Google)彼らが音声アルゴリズム http://en.wikipedia.org/wiki/Phonetic_algorithm単にsoundexhttp : //en.wikipedia.org/wiki/Soundexでそれを実装するかもしれないことを私は知っていますそしてここにありますGoogleのエンジニアリング担当副社長とCIOのダグラスメリルがhttp://www.youtube.com/watch?v=syKY8CrHkck#t=22m03sを話します

最初の3つの質問はどうですか?どんなアイデアでも大歓迎です!

ありがとう

4

4 に答える 4

7

あなたがフォローするかもしれない人々

係数ベースの計算を使用できます。

factorA = getFactorA(); // say double(0.3)
factorB = getFactorB(); // say double(0.6)
factorC = getFactorC(); // say double(0.8)

result = (factorA+factorB+factorC) / 3 // double(0.5666666666666667)
// if result is more than 0.5, you show this person

つまり、Twitterの場合、「フォローできる人」は次の要因に基づくことができます(ユーザーAは、この「フォローできる人」機能を表示しているユーザーです。多かれ少なかれ要因がある可能性があります)。

  • ユーザーAとユーザーBのツイートで頻繁に見られるキーワード間の相対性
  • 両方のユーザーのプロファイル記述間の相対性
  • ユーザーAとBの位置間の相対性理論
  • ユーザーAがフォローしているユーザーはユーザーBをフォローしていますか?

では、彼らはどこから「あなたがフォローするかもしれない人々」を比較しますか?このリストは、フォロワーが多い人(おそらく有名人、アルファオタク、有名な製品/サービスなど)と[ユーザーAがフォローしている人]の組み合わせからのものである可能性があります。

基本的に、ここでは、ツイートや経歴、計算を読んで、一定レベルのデータマイニングを行う必要があります。これは、サーバーの負荷がその日の最小である場合に、毎日または毎週のcronジョブで実行できます(または、別のサーバーで24時間年中無休で実行できます)。

どのように接続していますか

これはおそらく、パスを決定するためにブルートフォースの負荷がかかったと感じさせるための賢明な作業です。しかし、いくつかの表面調査の結果、これは単純であることがわかりました。

あなたがユーザーAだとしましょう。ユーザーBが接続です。ユーザーCはユーザーBの接続です。

ユーザーCにアクセスするには、最初にユーザーBのプロファイルにアクセスする必要があります。ユーザーBのプロファイルにアクセスすると、Webサイトには、ユーザーAがユーザーBのプロファイルにいることを示す情報が既に保存されています。したがって、ユーザーBからユーザーCにアクセスすると、Webサイトは、他のすべての可能なパスを無視して、「ユーザーA->ユーザーB->ユーザーC」とすぐに通知します。

これは、ユーザーCの場合の最大レベルであり、ユーザーAは、ユーザーCがユーザーAの接続になるまで、自分の接続を確認することはできません。

出典:LinkedINの観察

あなたに似ています

これは、アルゴリズムが異なるリストの人々を読み取ることを除いて、#1(あなたがフォローする可能性のある人々)とまったく同じです。アルゴリズムが読み込む人のリストは、あなたがフォローしている人です。

もしかして

グーグルがおそらくsoundex以上のものを使用したことを除いて、あなたはそれを正しく理解しました。Googleの場合、言語翻訳、単語置換、およびその他の多くのアルゴリズムが使用されています。おそらく非常に複雑になり、言語を扱う専門家ではないため、これについてはあまりコメントできません。

Googleのインフラストラクチャについてもう少し調べてみると、Googleにはスペルと翻訳サービス専用のサーバーがあることがわかります。Googleプラットフォームの詳細については、 http://en.wikipedia.org/wiki/Google_platformをご覧ください。

結論

高度に強化されたアルゴリズムの鍵は、キャッシングです。結果をキャッシュしたら、ページごとにロードする必要はありません。Googleがそれを行い、Stack Overflowが(質問のリストを含むほとんどのページで)それを行い、Twitterも驚くことではありません!

基本的に、アルゴリズムは開発者によって定義されます。他の人のアルゴリズムを使用することもできますが、最終的には独自のアルゴリズムを作成することもできます。

于 2011-01-02T04:49:21.277 に答える
2

あなたがフォローするかもしれない人々

多くの種類の推奨アルゴリズムの1つである可能性がありますか、協調フィルタリングである可能性がありますか?

接続方法

これは、ソーシャルグラフ上の最短経路アルゴリズムにすぎません。接続に重みがないと仮定すると、幅優先を使用するだけです。

あなたに似ています

フォローするPeopleと同じアルゴリズムを使用してデータセットを再配置するだけです。

あなたがフォローする可能性のある人々に使用されるアルゴリズムのタイプの良い紹介については、「集合知プログラミング」という本をチェックしてください。あなたと同様に、すばらしいPythonコードも利用できます。

于 2010-12-31T19:33:20.110 に答える
1
  1. Twitterブログからフォローできる人 -「提案は、フォローしている人やフォローしている人など、いくつかの要因に基づいています」http://blog.twitter.com/2010/07/discovering-who-to-follow.html So AとBをフォローし、両方がCをフォローしている場合、TwitterはCを提案します...
  2. 接続方法機能 あなたはこれに答えたと思います。
  3. あなたと同じように 上記のように、そしてあなたが言うように、結果はおそらくキャッシュされますが、それはセッションごとに一度だけ、あるいはもっと少ない頻度で行われます...

お役に立てば幸い、クリス

于 2010-12-31T12:41:15.417 に答える
1

私はツイッターを使いません。しかし、それを念頭に置いて:

1)。表面的には、これはそれほど難しいことではありません。私がフォローしている人ごとに、フォローしている人を確認してください。次に、フォローしている人のそれぞれについて、フォローしている人などを確認します。もちろん、深く行くほど、より多くのクランチが必要になります。

逆を効率的に抽出できる場合は、これをもう少し進めることができます。私がフォローしている人にとって、誰がフォローしているのでしょうか。

どちらの方法でも、言われていないのは、ツイーターに重みを付けて、彼らが本当にフォローしたい人かどうかを確認する方法です。リベラルなフォロワーも保守的なツイーターをフォローする可能性がありますが、それは私がフォローしたいという意味ではありません。保守的(#3を参照)。

2)。わからない、考えて...

3)。バイオとツイートだけが続くと仮定すると、難しい部分は次のとおりです。

  • どの属性が存在するかを決定する(政党、トピックタイプなど)
  • データマイニングのために各140文字をクリーニングします。

適切な属性のセットを取得すると、2つの異なるアルゴリズムが思い浮かびます。

  • Kはクラスタリングを意味し、私が区別する傾向がある属性を決定します。
  • N-最近傍、私が重視する傾向のある属性を与えられた、あなたに最も類似したN個のツイーターを見つけるため。
  • 編集:実際には、決定木はおそらくこれをすべて行うためのはるかに優れた方法です...

これはすべて投機的ですが、これを行うために報酬を受け取っていれば楽しそうに聞こえます。

于 2010-12-31T19:54:59.987 に答える