2

スタートアップ製品の一部として、「類似ユーザー機能」を計算する必要があります。そして、豚を使うことにしました。私は数日間豚を学んでいて、それがどのように機能するかを理解しています。ここから始めるのは、ログファイルがどのように見えるかです。

user        url             time
user1       http://someurl.com      1235416
user1       http://anotherlik.com       1255330
user2       http://someurl.com      1705012
user3       http://something.com        1705042
user3       http://someurl.com      1705042

ユーザーと URL の数が膨大になる可能性があるため、ここではブルートフォース アプローチを使用できません。まず、少なくとも共通の URL にアクセスできるユーザーを見つける必要があります。

アルゴリズムは次のように分割できます。

  1. いくつかの一般的な URL にアクセスしたすべてのユーザーを検索します。
  2. アクセスされたリソースごとに、すべてのユーザーのペアごとの組み合わせを生成します。
  3. と URL の各ペアについて、それらのユーザーの類似性を計算します。類似性は、アクセス間の時間間隔に依存します (したがって、時間を追跡する必要があります)。
  4. 各ペア URL の類似度を合計します。

ここに私がこれまでに書いたものがあります:

A = LOAD 'logs.txt' USING PigStorage('\t') AS (uid:bytearray, url:bytearray, time:long);
grouped_pos = GROUP A BY ($1);

まだそれほど多くはないことはわかっていますが、ペアを生成する方法やさらに先に進む方法がわかりません。そのため、どんな助けもいただければ幸いです。

ありがとう。

4

2 に答える 2

3

MapReduceとのコクラスタリングの実行に関するIBMの優れた詳細な論文があり、これはあなたにとって役立つかもしれません。

Googleニュースのパーソナライズに関する論文では、同じ問題を解決するための局所性鋭敏型ハッシュのかなり簡単な実装について説明しています。

于 2011-04-19T09:02:51.693 に答える
0

アルゴリズムについては、クエリ/URL 二部グラフに関する論文を参照してください。ここにいくつかのリンクがあります:

Qiaozhu Mei、Dengyong Zhou、Kenneth Church によるヒット時間を使用したクエリの提案 http://www-personal.umich.edu/~qmei/pub/cikm08-sugg.ppt

クリック グラフのランダム ウォーク Nick Craswell と Martin Szummer 2007 年 7 月 http://research.microsoft.com/apps/pubs/default.aspx?id=65235

于 2011-04-14T04:07:28.327 に答える