V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ViaSil
V2EX  ›  程序员

[头腾大战] 想请教各位技术大佬,头条真的能通过算法去推测出抖音用户的微信关系链么

  •  1
     
  •   ViaSil · 2019-03-21 13:18:06 +08:00 · 5104 次点击
    这是一个创建于 1834 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近头条跟腾讯,不是因为多闪获取了抖音已授权的 QQ/微信头像及昵称的事儿,吵起来了嘛……

    之前我一直浅薄地认为,在多闪上看到熟人推荐,是因为多闪获取了我的手机通讯录加比对抖音账号的原因,但今天看到这么一个观点,说头条能通过算法算出来用户在微信 orqq 上的好友关系链(暂且理解为微信 orqq 通讯录好友关系)?

    小白听起来觉得非常 NB,听说头条算法牛,没想过这么牛啊,想请各位技术大佬科普一下,这个在技术上真的能实现么? 贴个图 test1 贴个原文地址,感兴趣的可以瞅一眼: https://mp.weixin.qq.com/s/UkgouO7ylqYwoGW_PCB21Q

    通过这篇文章,我了解到如果某 APP 想实现这个好友关系获取模型,最基本需要获取的有: 1.微信 orqq 的登录授权(获取昵称、头像); 2.用户在微信 orqq 上的分享行为; 3.用户在微信 orqq 上的点击行为; 4.……?还有啥呢? 文章里说到的只是微信用户之间会形成的关系,但是我并没有授权微信 orqq 登录,没有公开分享过抖音链接,印象中也没有点击别人的链接去下载抖音,最后多闪上还是有了微信 orqq 好友的推荐(猜测是拿抖音的数据),所以这个好友关系,到底是怎么去获取的呢。。

    十分好奇,求个解答 or 分析 or 讨论 or ……感谢了!!!

    第 1 条附言  ·  2019-03-22 18:10:48 +08:00
    谢谢各位的讨论,通过回复了解到了大概 3 种获取好友关系的可能性,写得不对的地方欢迎指出:

    1. 手机通讯录用户推荐:就是之前说过的手机通讯录获取;
    2. 同平台好友关系推荐:感谢 @KuroNekoFan 提供的思路,以微信举例:
    + 抖音通过微信授权登录拿到 a 的 openID ;
    + a 将抖音链接公开分享到票圈后;
    + 微信给抖音链接拼上了一个 code ;
    + 抖音通过这个 code 得到 b 的 openID,从而获得 a 和 b 之间的好友关系

    可参考的相关文档貌似阔以看看:
    + [UnionID]( https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html)
    + [code2Session]( https://developers.weixin.qq.com/miniprogram/dev/api-backend/code2Session.html)

    3. 可能解释绝大部份好友推荐情况的:感谢 @marsgt 提到的贝叶斯理论,我查了一下,大胆猜想大概就是:
    + 利用这个理论将各个途径得到的信息(比如获取微信 openID、手机通讯录等都算)一一列为肯定事件;
    + 再通过大数据计算各种事件交集之后的 P ( a 与 b 有好友关系);
    + 通过数据观察这个概率( P )+多次实验,得出 P ( a 与 b 有好友关系)约等于 1 的事件交集有哪些;
    + 符合这些情况的用户关系就直接推荐出去,推荐结果就一般八九不离十了……

    认真讨论如何实现的各位真的最帅气美丽!

    当然我个人对第三种贝叶斯情况最感兴趣,因为它最符合好友推荐链这个事情里“头条算法超级 NB ”“不是可以简单复现的高大上”“我明明什么信息都没有给鸭”“我这种小喽啰绝对搞不懂”的幻想哈哈哈哈哈,如果有人能进一步聊聊就好啦咔咔咔
    第 2 条附言  ·  2019-03-22 19:01:57 +08:00

    有看到问站腾讯还是站头条的,附一份开发者服务协议可作参考:

    微信开放平台开发者服务协议

    具体可看2.7关于用户数据和个人数据的规则

    "2.7.2未经腾讯同意,不得通过本服务收集、存储、抓取、获得或要求用户提供包括但不限于微信或其服务平台的信息内容、用户数据等腾讯认为属于敏感信息范畴的数据(包括但不限于微信帐号、微信密码、QQ号码、QQ密码、用户关系链、好友列表数据、银行账号和密码等),也不得将所合法获得的前述数据自行或提供给其用户、客户用于创建、补充或维护自身关系链。

    2.7.3未经腾讯允许,不得利用本服务所获得的数据(包括但不限于微信用户关系链等)实施或变相实施任何形式的推广、营销、广告行为。

    2.7.4如果腾讯认为收集、使用用户数据的方式,可能损害用户体验,腾讯有权要求你删除相关数据并不得再以该方式收集、使用用户数据。如果腾讯公司要求删除任何个人数据,应当做到:将该数据匿名化,使其不再成为个人数据(使这些数据不再符合隐私法对个人数据的定义);或者永久性地删除该数据或者使该数据永久不可读取。应当根据我们的要求向我们提供已将该个人数据删除或已进行匿名化处理的书面确认书。

    2.7.5腾讯有权限制或阻止你获取用户数据及开放平台数据。

    2.7.6微信开放平台运营数据、用户数据等数据的全部权利,均归属腾讯,且是腾讯的商业秘密,依法属于用户享有的相关权利除外。未经腾讯事先书面同意,不得为本协议约定之外的目的使用前述数据,亦不得以任何形式将前述数据提供给他人。"

    45 条回复    2019-03-22 15:06:21 +08:00
    shengcz
        1
    shengcz  
       2019-03-21 13:52:52 +08:00
    感觉要火,头条系和腾讯系 你站哪边?
    LicV587
        2
    LicV587  
       2019-03-21 13:57:38 +08:00   ❤️ 1
    无论算法多牛逼,实质还是在偷微信关系链。头条系的逻辑一直都是我弱我有理
    CEBBCAT
        3
    CEBBCAT  
       2019-03-21 14:16:54 +08:00 via Android   ❤️ 4
    原文说的挺符合逻辑,但可行性不知道。楼主的情况信息太少,无法判定。

    楼上说是字节跳动我弱我有理,我倒不这么想,使用合法获得的资料使用自己的智慧(算法)得出新的信息不就是数据挖掘的真谛吗?

    反观是微信,滥用垄断地位,做了多恶我不说大家也觉得恶心吧?(为防有人不明不白,我举个例子:封杀子弹短信)
    dimlau
        4
    dimlau  
       2019-03-21 14:37:40 +08:00
    @CEBBCAT #3 你举的例子可能大家也不明白啊,毕竟子弹短信 /聊天宝,压根就没怎么成过规模……
    CEBBCAT
        5
    CEBBCAT  
       2019-03-21 14:50:37 +08:00 via Android   ❤️ 1
    @dimlau 哈哈哈😄,那我有两个解决方案:❶不在规模在性质❷网友上网搜吧
    Lin0936
        6
    Lin0936  
       2019-03-21 14:59:10 +08:00   ❤️ 2
    我想了半个小时 orqq 是什么。
    这俩家都不站,这两家的产品对我来说都属于“能不用尽量不用”的东西。
    southsala
        7
    southsala  
       2019-03-21 15:00:59 +08:00   ❤️ 1
    可确认的纬度越多,越能确定好友关系,好比像数独游戏
    huangdayu
        8
    huangdayu  
       2019-03-21 15:03:21 +08:00
    头条系的都不敢用了
    chengzi168
        9
    chengzi168  
       2019-03-21 15:09:38 +08:00 via iPhone   ❤️ 1
    @CEBBCAT 你的例子没法证明腾讯滥用垄断地位啊,你开了一酒店,做推广座做运营人气旺了,有一天有人进来在你酒店里见人就宣传他家酒店更好,去了唠嗑还送钱。你是酒店老板你怎么处理?
    ViaSil
        10
    ViaSil  
    OP
       2019-03-21 15:11:07 +08:00
    @shengcz 哈哈哈不敢站不敢站……

    @LicV587 总是觉着还是要看头条具体是怎么干的,才能定义是否在偷……

    @CEBBCAT 淘宝分享乱码应该更好作论据

    @dimlau 哈哈确实。。而且还有可能是因为讨厌满票圈二维码看起来很乱才关掉的……

    @Lin0936 对不住对不住,or 后面应该空个格……
    marsgt
        11
    marsgt  
       2019-03-21 15:12:09 +08:00   ❤️ 1
    只能给个方向,贝叶斯方法,用这个来挖关系链。

    不过它俩打架,微信不一定算强势方。就像《脱欧:无理之战》里,老卡也就拿这些个社交平台当个池子,然后一把把摸鱼,脱欧这事也就是这么成的。加上后边的某普上位和法国黄马甲,这才是准玩家。
    ViaSil
        12
    ViaSil  
    OP
       2019-03-21 15:25:43 +08:00
    @southsala 能确认的纬度有

    1. 微信 /qq 登录授权:至少可获取头像、昵称;
    2. 微信 /qq 用户在各自平台分享过抖音链接;
    3. 微信 /qq 用户点击过好友的抖音链接;
    4. 用户的手机通讯录获取;

    实话讲这是我好像能主动交出去的全部了,还有别的我没有意识到自己交出去的东西么……
    ViaSil
        13
    ViaSil  
    OP
       2019-03-21 15:49:24 +08:00
    @marsgt 哇,搜了一下贝叶斯,怎么说呢……可以这么理解么:

    1. 头条定义了 N 个事件(包括授权登录啊、手机通讯录啊 blabla );
    2. 通过数据计算每个事件交集的概率;
    3. 然后再通过各种组合这 N 个事件交集,用那个贝叶斯公式得出俩用户之间有好友关系的概率;
    4. 当这个概率达到一个值(也是之前通过数据观察得出的),那么就可以推荐出去了……

    sad,这是我看贝叶斯之后自行理解的极限了。。。

    感谢提供方向!!!
    binux
        14
    binux  
       2019-03-21 15:53:59 +08:00 via Android
    @chengzi168 但是你酒店的客人在酒店里讨论别的会所都不允许
    KuroNekoFan
        15
    KuroNekoFan  
       2019-03-21 15:55:30 +08:00   ❤️ 1
    web 开发的基础概念串一串,简单提供一个可能的思路:
    1.a 用户是微信用户,这是客观事实
    2.假设 a 用户发的内容出现在了 b 用户的信息流里,那么可以判断,a 与 b 是有关联的
    3.那么接下来需要标记给用户一个 id,而这个东西在微信里是现成的,每个公众号对于一个用户都有唯一的 openid,并且,获取这个 openid 对于用户是静默的(其实是否静默也无所谓,获取更多信息也就是一个弹窗的事)
    4.那么,只需要分享出去的链接是?fromUser=openIdA,然后经过静默授权与各种重定向,最终头条的服务器可以得到:?fromUser=openIdA&code=xxxx
    5.通过这个 xxx,头条可以查询到用户 b 的 openid
    6.那么用户 a,b 的关系就被确定了
    chengzi168
        16
    chengzi168  
       2019-03-21 16:03:58 +08:00
    @binux 刚才还真试了一下,微信给别人发“聊天宝”并没有屏蔽。这里符合你说的讨论别的会所吧?
    CEBBCAT
        17
    CEBBCAT  
       2019-03-21 16:21:52 +08:00 via Android
    @chengzi168 ……无法叫醒装睡的人 @binux

    别打那么多比喻了,子弹短信网站打不开是石锤(要不别说这个了,这帖的主题不在于此)
    learnshare
        18
    learnshare  
       2019-03-21 16:22:46 +08:00
    数据多了,关系网能理出来的
    tjsdtc
        19
    tjsdtc  
       2019-03-21 16:37:46 +08:00
    说起来我记得很久之前新注册的脸书账号进去就会推荐好多可能认识的人,而且大部分都是确实认识的,不知道怎么办到的
    chengzi168
        20
    chengzi168  
       2019-03-21 16:38:06 +08:00   ❤️ 1
    @CEBBCAT 这个站里大多数人都是程序猿,程序猿的特点就是理性和懂规则,不然也没法把想法编成代码让志东 0 和 1 的机器去执行。你说的垄断,至少给一个定义,什么叫垄断,你说腾讯垄断就垄断,你说实锤就实锤?举例子打比方只是让大家更好的理解这个世界的运行规则。腾讯自己做的产品聚集起来的流量,凭什么让后来的竞争者利用自己的管道做推广?不让就要你一句垄断一棒子打死是么?腾讯有很多其他的槽点可以吐槽也可用其他的例子证明它垄断,但你这个封杀子弹短信聊天宝的例子真证明不了。
    LicV587
        21
    LicV587  
       2019-03-21 17:02:59 +08:00
    @CEBBCAT 真的是合法的获得资料吗?你真应该去看看微信开放平台与公众平台的注册协议,对于责任与义务有很好的说明,既然头条注册了就代表他同意了这些协议,构成了事实的合同关系,然后又出现违反协议的各种骚操作,这种情况下取得数据还是真的是合法数据吗?
    LicV587
        22
    LicV587  
       2019-03-21 17:07:02 +08:00
    通过微信的用户数据分析微信的关系链这种操作头条并不是第一个,其他公司,比如阿里,马云疯狂的想进军社交,阿里会想不到这个方法?那这些公司又是基于什么原因放弃了这个方法,而头条又为什么会义无反顾的采用呢?用阿里的话来说就是,这个公司价值观有问题。
    eastlhu
        23
    eastlhu  
       2019-03-21 17:07:16 +08:00 via iPhone
    之前看到过你这个问题的讨论,通过一个什么链接之类的,忘记了
    checkaround
        24
    checkaround  
       2019-03-21 17:10:35 +08:00
    不懂为什么拿 Google 和微信比,Facebook 才更合适,谷歌爸爸就没有成功的社交产品( Google+这个月就要关了),也不是靠这个吃饭的。
    你想让微信把自己的核心数据分享给别人,怕是痴人做梦~
    ViaSil
        25
    ViaSil  
    OP
       2019-03-21 17:29:12 +08:00
    @tjsdtc fb 这个没错,有点惊人的程度……当时,不,现在我也很好奇是怎么来的……尤其是那个从来没聊过天也没有手机号的微信好友,是怎么出现在推荐列表的,我百思不得其解……

    @checkaround fb 确实更合适+1
    ViaSil
        26
    ViaSil  
    OP
       2019-03-21 17:31:26 +08:00
    @eastlhu 是像 15 楼朋友说的那个类似的么,他这个也是链接获取的方式…… sad,可惜我没有完全看懂,还在琢磨。。。
    chengfeng
        27
    chengfeng  
       2019-03-21 17:46:09 +08:00
    @checkaround facebook 的登录也可以获取到 email 啊,你让微信提供微信 id 试试
    loryyang
        28
    loryyang  
       2019-03-21 17:51:56 +08:00
    通过数据推算关系,这个可行而且应该好多人在做了。不过肯定有极限的,就是不知道这个极限到底在哪里,对头条的价值有多大
    cuebyte
        29
    cuebyte  
       2019-03-21 18:03:04 +08:00
    想到短鏈接,細思極恐
    eastlhu
        30
    eastlhu  
       2019-03-21 18:03:49 +08:00 via iPhone
    @ViaSil #26 对,引导分享,通过那个 openid 建立关系
    ViaSil
        31
    ViaSil  
    OP
       2019-03-21 18:27:29 +08:00
    @eastlhu 不行,我自己还是看不明白这个 code=xxxx 是怎么来的,还是得问问 hhh
    ViaSil
        32
    ViaSil  
    OP
       2019-03-21 18:35:22 +08:00
    @KuroNekoFan 谢谢您提供的思路( ´▽` )ノ

    不过我还是有些不太明白,当头条的服务器得到?fromUser=openIdA&code=xxxx 的时候,这个 code=xxxx 是谁定义的呢,它代表的意义是获取 a 和 b 的关系么,这个获取过程中需要 b 主动去进行什么操作么,还是说可以通过那个静默授权直接跳过 b 拿到关系?
    junjieyuanxiling
        33
    junjieyuanxiling  
       2019-03-21 19:14:13 +08:00
    Google 的社交......
    kaedea
        34
    kaedea  
       2019-03-21 19:20:52 +08:00 via Android
    微信登录 - 绑定手机 - 获取手机通讯录 - 通过手机号码匹配好友
    avril23
        35
    avril23  
       2019-03-21 19:22:40 +08:00
    通过分享连接建立的关系网。
    yingfengi
        36
    yingfengi  
       2019-03-21 19:26:36 +08:00 via Android
    读取了别人的通讯录,别人的通讯录中有你
    zzl22100048
        37
    zzl22100048  
       2019-03-21 21:00:21 +08:00
    user identity linkage
    zzl22100048
        38
    zzl22100048  
       2019-03-21 21:01:00 +08:00
    @ViaSil 这个应还是 oauth2 授权码模式吧
    idcspy
        39
    idcspy  
       2019-03-21 21:02:08 +08:00
    也不是没可能,以前的 qq 群关系可以作为基础,再查他们的微信,手机,q 号,腾讯微博,慢慢就补齐了。
    lizhuoli
        40
    lizhuoli  
       2019-03-21 21:51:46 +08:00 via iPhone
    手机通讯录,或者分享链接推荐,都可以吧。
    KuroNekoFan
        41
    KuroNekoFan  
       2019-03-22 07:58:36 +08:00 via iPhone
    @ViaSil code 是用来查询 b 用户的 openid 的凭证,b 点分享的时候不是直接到头条后端,而是先到微信 server,微信给拼上 code,再 302 到头条,这些都是具体细节了
    qqor
        42
    qqor  
       2019-03-22 11:08:15 +08:00 via Android
    社交?中国社交不都靠撕逼吗?
    sunmonster
        43
    sunmonster  
       2019-03-22 12:13:31 +08:00
    @CEBBCAT 剑桥分析也是通过合法途径获取 Facebook 信息的
    ViaSil
        44
    ViaSil  
    OP
       2019-03-22 14:14:46 +08:00
    @KuroNekoFan 嗷这样,所以那就还是微信给的 code 吧……好奇怪,为什么微信要给一个能确定 ab 关系的 code。。
    ViaSil
        45
    ViaSil  
    OP
       2019-03-22 15:06:21 +08:00
    @KuroNekoFan 哈哈哈 sorry 我看了下相关的开发文档,明白了,谢谢解释
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2941 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:08 · PVG 23:08 · LAX 08:08 · JFK 11:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.