求一个可行方案:计算新用户和老用户通讯录的最高匹配度

2018-10-29 12:13:42 +08:00
 iblislsy

需求: 对于每一个新用户,希望能计算出和老用户的通讯录最高匹配度,找到类似伪造通讯录的情况。

例子: 每一个用户的通讯录表结构如下

user_id phone

123 18721212111

123 18721212112

123 18721212113

124 18721212111

124 18721212112

124 18721212115

124 18721212116

假设 user_id:123 是一个新用户,可以发现用户 123 和用户 124 存有相同的联系人

用户 123 和 124 的匹配度为: 相同号码数量 /新用户的号码数量 = 2/3 = 0.67

需要遍历找到匹配度最高的用户,或者是大于某一阈值的用户群体。

各位大佬,这个复杂度似乎有点高,有没有可行的方案。

4978 次点击
所在节点    程序员
51 条回复
swulling
2018-10-29 12:17:39 +08:00
网贷风控?
luozic
2018-10-29 12:20:32 +08:00
向量?
lance6716
2018-10-29 12:22:12 +08:00
遍历找到匹配度最高的用户对?还是啥,请使用量词定义
proudofmyself911
2018-10-29 12:34:11 +08:00
老用户是伪造的怎么办。。。
luckychenhaha
2018-10-29 12:35:24 +08:00
局部敏感哈希
Humorce
2018-10-29 12:37:41 +08:00
@proudofmyself911
抓网上营业厅详单,虽然这个做法很恶心,但是你要知道这个操作是要用户“授权”的
iblislsy
2018-10-29 12:38:04 +08:00
@lance6716 找到这个匹配度 0.67 就可以了,能找到超过给定阈值θ(比如 0.5)的用户集群更好
iblislsy
2018-10-29 12:38:33 +08:00
@lance6716 这个 0.67 是用户 123 和其他所有用户匹配的最大值
iblislsy
2018-10-29 12:39:18 +08:00
@luckychenhaha 我补习一下
codingadog
2018-10-29 12:39:55 +08:00
麻烦说明下是什么 app,我先去卸载了
iblislsy
2018-10-29 12:41:04 +08:00
@codingadog 传说中的钢筋?
iblislsy
2018-10-29 12:42:53 +08:00
@iblislsy 通讯录授权请问是第一天出现吗? 我把通讯录换成别的变量,你是不是就杠不了? 又多了一个 block 谢谢了,纯讨论技术
semut
2018-10-29 12:43:31 +08:00
关键词 simhash
iblislsy
2018-10-29 12:45:08 +08:00
@semut 谢谢,我补课
wizardoz
2018-10-29 12:45:31 +08:00
如果结合对联系人的称谓,会不会更好玩一些?
iblislsy
2018-10-29 12:47:04 +08:00
@wizardoz 加上称谓,问题 又复杂了,先看看能不能找一个容易出结果的方案
jmc891205
2018-10-29 12:58:46 +08:00
老用户数据量有多少?能一口气读到内存里再处理吗?
Zzdex
2018-10-29 13:02:57 +08:00
最近在做一个类似的,也是占比来算出来匹配度。但我的数据量很小,硬算的,如果你找到好的方法希望分享以下 :)
iblislsy
2018-10-29 13:11:31 +08:00
@jmc891205 老用户数量(号码数量)粗略 1 千 w 吧,还会增长
codingadog
2018-10-29 13:24:06 +08:00
@iblislsy 不好意思,我不给,blocked

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/502123

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX