在帐户管理系统中标记可能的相同用户

时间:2010-10-01 12:08:04

标签: database algorithm search runtime data-mining

我正在研究帐户管理系统上滥用检测机制的可能架构。我想要的是根据表中的某些相关字段检测可能的重复用户。为了简化问题,假设我有一个包含以下字段的USER表:

Name
Nationality
Current Address
Login
Interests

很可能一个用户在此表中创建了多个记录。可能存在该用户创建他/她的帐户的特定模式。挖掘此表以标记可能重复的记录需要做些什么。另一个问题是规模。如果我们允许说一百万用户,那么一个用户并将其与剩余用户进行匹配在计算上是不现实的。如果这些记录分布在不同地理位置的各种机器上会怎样?

我可以使用哪些技术来解决这个问题?我试图以技术上不可知的方式提出这个问题,希望人们可以为我提供多种观点。

由于

1 个答案:

答案 0 :(得分:1)

答案实际上取决于您对用户进行建模的方式以及构成副本的内容。

可能有一个用户使用所有哈利波特角色的名字。祝好运找到那种模式:)

如果您正在寻找大致类似的记录,请尝试以下简单方法: 哈希文档中的每个单词并选择最小的瓦片。为k个不同的哈希函数执行此操作。连接这些最小的哈希值。你拥有的是近乎重复的。

要清楚,让我们说一个记录有单词w1 .... wn。让我们说你的哈希函数是h1 ... hk。

让m_i = min_j(h_i(w_j)

并且签名是S = m1.m2.m3 .... mk

这个签名很酷的是,如果两个文档包含90%相同的单词,那么很有可能90%的机会很可能两个文档的签名相同。因此,您不必查找接近重复的内容,而是在签名中查找完全重复的内容。如果你想增加匹配数,那么你减少k的值,如果你得到太多的误报,那么你增加k的数量。

当然,存在用户隐含功能的方法,例如IP地址和cookie等。