如何基于手机号+设备号构建图神经网络?

解读

面试官把“手机号+设备号”抛出来,本质是考察三件事:

  1. 能否把中国合规红线(《个人信息保护法》《数据安全法》)第一时间摆到台面上;
  2. 能否把用户运营场景(拉新、反薅、促活、召回)翻译成图上的“节点、边、权重、标签”;
  3. 能否用最小可行的工程路径,让图神经网络(GNN)在“脱敏、抽样、实时、可解释”四条红线内跑通,而不是堆算力。

一句话:不是炫技GNN,而是让GNN在合规+业务+数据三重约束下产生运营价值。

知识点

  1. 节点设计

    • 手机号节点:经不可逆哈希+盐(国密SM3)生成64位hex,作为唯一ID;属性只保留脱敏后画像标签(年龄段、城市等级、运营商、R分层),原始明文绝不落盘。
    • 设备节点:Android取OAID、iOS取IDFA(若用户授权),无授权时用MD5(品牌+型号+系统版本+分辨率)生成弱ID;属性保留设备风险分root/越狱标识电量采样分布等。
  2. 边设计

    • 登录边:手机号↔设备,权重=30天登录天数/30,归一化到0–1;方向无向。
    • 共享边:两设备在同一WiFi SSID+BSSID下30分钟内先后登录,权重=共现次数对数衰减;用于识别设备农场
    • 资金边:手机号A给手机号B转账,权重=近90天累计金额log;用于识别羊毛党网络
    • 召回边:同一设备先后绑定老手机号与新手机号,权重=1,用于换号召回
  3. 图构建流程
    ① 数据层:Kafka实时流→Spark Streaming每5分钟生成增量边
    ② 采样层:对全量10亿节点做Weighted-DFS采样,保留高价值用户(近30天GMV>200元)及其二跳邻居,子图规模控制在500万节点、2000万边
    ③ 特征层:节点用XGBoost产出的运营概率(下单、留存、流失)作为初始向量,边权重直接作为邻接矩阵
    ④ 模型层:二部图采用RGCN(关系图卷积),输出128维embedding;下游接双塔结构,左塔embedding、右塔用户画像,CTR预估任务联合训练,AUC提升0.8个百分点即上线。

  4. 合规与隐私

    • 全程不落地明文手机号,哈希盐值每季度轮换;
    • 设备弱ID不关联任何IMEI,避免触碰工信部164号文;
    • 图模型输出embedding经DP-SGD(差分隐私)加噪,ε≤3,保证无法逆向还原个人
  5. 运营落地场景

    • 拉新反欺诈:GNN识别设备–手机号–WiFi三角环,密度>0.7资金边权重>5即触发“羊毛盾”,实时拦截注册;
    • 沉默召回:对embedding相似度>0.9的“老号新设备”组合,推限时回流券召回率提升18%
    • 高价值促活:把RGCN输出的高潜流失概率>0.6的用户推给社群运营,人工干预后7日留存+12%

答案

“我会先画一张二部异构图:左侧节点是脱敏手机号,右侧节点是脱敏设备号。边有三种:

  1. 登录边,权重=30天登录天数占比,反映忠诚度;
  2. 共享网络边,两设备在同一WiFi下短时共现,抓设备农场;
  3. 资金边,手机号之间转账,抓羊毛党网络。

全量数据10亿节点,先用Weighted-DFS采样保留高价值用户二跳子图,规模压到500万节点。节点特征用XGBoost运营概率,边权重直接进邻接矩阵。模型用RGCN产出128维embedding,下游接双塔CTR任务联合训练。

合规层面,手机号国密SM3+盐哈希,设备号用OAID/IDFA,无授权则用弱ID,embedding经DP-SGD加噪,ε≤3。上线后,羊毛党识别准确率+9%,沉默召回率+18%,高潜流失用户7日留存+12%。”

拓展思考

  1. 动态图:用户换机周期缩短到18个月,如何把时序邻接矩阵做成T-GNN,让模型捕捉“换机链”?
  2. 多平台ID:微信小程序、支付宝小程序、抖音小程序的openid如何映射到同一张图?需引入联邦哈希方案,避免明文碰撞。
  3. 实时性:召回场景要求200ms内返回embedding,是否把RGCN层前向计算拆成Neighbour Sampling + GPU 缓存,用双缓冲保证热用户毫秒级更新?
  4. 业务反哺:GNNembedding能否反向生成可解释规则?例如**“设备节点度>50且资金边权重>5”即输出“疑似设备农场”,让运营同学肉眼可读**,降低黑盒焦虑。