互联网金融反欺诈场景中,点(Vertex)和边(Edge)设计总结
在互联网金融的反欺诈场景中,图数据库(如 Nebula Graph)通过建模复杂关系网络来识别异常行为和潜在风险。以下是反欺诈场景中常用的 ** 点(Vertex)和边(Edge)** 设计,以及关键属性说明:
一、反欺诈场景中的核心点类型
1. 用户(User)
关键属性:
CREATE TAG user (
user_id string NOT NULL, -- 用户唯一标识
name string, -- 姓名
id_card string, -- 身份证号(脱敏存储)
phone string, -- 手机号
email string, -- 邮箱
register_ip string, -- 注册IP
register_time timestamp, -- 注册时间
last_login_time timestamp, -- 最后登录时间
is_verified bool, -- 是否实名认证
risk_score double, -- 风险评分(动态更新)
fraud_flag bool, -- 是否欺诈标记
fraud_reason string -- 欺诈原因说明
);
反欺诈价值:
- 通过关联分析多个用户的设备 / IP / 联系人重叠,识别团伙欺诈
- 风险评分实时聚合用户行为和关联风险
2. 设备(Device)
关键属性:
CREATE TAG device (
device_id string NOT NULL, -- 设备唯一标识(IMEI/IDFA)
device_type string, -- 设备类型(手机/平板/PC)
os string, -- 操作系统
device_fingerprint string, -- 设备指纹(硬件信息哈希)
ip_address string, -- 当前IP
ip_history list<string>, -- IP历史记录
is_rooted bool, -- 是否Root/越狱
install_apps list<string>, -- 安装应用列表
risk_level string, -- 设备风险等级
blacklist_count int -- 关联黑名单次数
);
反欺诈价值:
- 检测同一设备被多个用户使用(设备共享)
- 识别高风险设备(Root / 越狱设备、安装恶意应用)
3. 账户(Account)
关键属性:
CREATE TAG account (
account_id string NOT NULL, -- 账户ID
account_type string, -- 账户类型(储蓄卡/信用卡)
bank_name string, -- 开户行
card_prefix string, -- 卡号前6位(识别卡组织)
card_suffix string, -- 卡号后4位(脱敏展示)
open_time timestamp, -- 开户时间
transaction_count int, -- 交易次数
abnormal_trans_count int, -- 异常交易次数
is_frozen bool -- 是否冻结
);
反欺诈价值:
- 分析账户交易模式(频次、金额、时间分布)
- 检测跨账户资金流动异常(如集中转入分散转出)
4. IP 地址(IP)
关键属性:
CREATE TAG ip (
ip_address string NOT NULL, -- IP地址
isp string, -- 运营商
geolocation string, -- 地理位置
first_seen timestamp, -- 首次出现时间
last_seen timestamp, -- 最后出现时间
risk_score double, -- IP风险评分
associated_users int, -- 关联用户数
is_dynamic_ip bool -- 是否动态IP
);
反欺诈价值:
- 识别高风险 IP(代理 IP、暗网 IP)
- 检测同一 IP 短期内注册大量账户(批量注册)
5. 银行卡 BIN(BankCardBIN)
关键属性:
CREATE TAG bank_card_bin (
bin_code string NOT NULL, -- 银行卡BIN码(前6位)
bank_name string, -- 发卡行
card_type string, -- 卡类型(借记卡/信用卡)
card_level string, -- 卡等级(普卡/金卡/白金卡)
fraud_count int, -- 关联欺诈交易数
risk_level string -- 风险等级
);
反欺诈价值:
- 识别高风险发卡行或卡类型
- 分析特定 BIN 码的欺诈交易模式
二、反欺诈场景中的核心边类型
1. 注册 / 登录关系(REGISTERED/LOGGED_IN)
关键属性:
CREATE EDGE registered (
register_time timestamp, -- 注册时间
ip_address string, -- 注册IP
device_id string, -- 注册设备
user_agent string, -- 用户代理
is_suspicious bool -- 是否可疑注册
);
CREATE EDGE logged_in (
login_time timestamp, -- 登录时间
ip_address string, -- 登录IP
device_id string, -- 登录设备
login_success bool, -- 是否登录成功
auth_method string -- 认证方式
);
反欺诈价值:
- 检测异地登录、非常用设备登录
- 分析注册 IP / 设备与已知欺诈账户的关联
2. 设备使用关系(USED_BY)
关键属性:
CREATE EDGE used_by (
first_used_time timestamp, -- 首次使用时间
last_used_time timestamp, -- 最后使用时间
usage_count int, -- 使用次数
is_primary_device bool -- 是否主设备
);
反欺诈价值:
- 发现设备共享网络(多个用户使用同一设备)
- 识别 “养号” 行为(同一设备轮流登录多个账户)
3. 交易关系(TRANSACTION)
关键属性:
CREATE EDGE transaction (
transaction_id string NOT NULL, -- 交易ID
amount double, -- 交易金额
trans_time timestamp, -- 交易时间
trans_type string, -- 交易类型(充值/提现/转账)
merchant_id string, -- 商户ID
payment_method string, -- 支付方式
device_id string, -- 交易设备
ip_address string, -- 交易IP
is_authorized bool, -- 是否本人授权
is_fraudulent bool, -- 是否欺诈交易
fraud_detected_time timestamp -- 欺诈发现时间
);
反欺诈价值:
- 分析交易模式(如夜间大额转账、频繁小额测试)
- 构建资金流向图,识别洗钱网络
4. 关联关系(RELATED_TO)
关键属性:
CREATE EDGE related_to (
relation_type string, -- 关系类型(手机号关联/邮箱关联)
relation_strength double, -- 关系强度(0-1)
first_seen timestamp, -- 首次发现时间
last_seen timestamp -- 最后发现时间
);
反欺诈价值:
- 识别共享联系人(如多个账户使用同一紧急联系人)
- 发现隐藏的社交网络(如欺诈团伙成员关联)
5. 风险传播关系(RISK_PROPAGATION)
关键属性:
CREATE EDGE risk_propagation (
risk_score double, -- 传播的风险分数
propagation_time timestamp, -- 风险传播时间
risk_type string, -- 风险类型(欺诈/套现/洗钱)
confidence_level double -- 置信度
);
反欺诈价值:
- 实现风险的动态传播(如发现一个欺诈账户,自动提升其关联账户风险)
- 构建风险传播网络,评估潜在影响范围
三、反欺诈场景中的典型查询模式
1. 设备共享检测
-- 查询与已知欺诈用户使用同一设备的其他用户
GO FROM "fraud_user1" OVER used_by REVERSELY YIELD used_by._dst AS device_id |
GO FROM $-.device_id OVER used_by YIELD used_by._dst AS associated_user
WHERE $-.associated_user != "fraud_user1";
2. 风险传播分析
-- 查找距离已知欺诈账户2跳以内的所有账户及其风险评分
GO 2 STEPS FROM "fraud_user1" OVER risk_propagation
YIELD risk_propagation._dst AS at-risk_user,
SUM(risk_propagation.risk_score) AS total_risk;
3. 异常交易模式识别
-- 查询某用户在非工作时间的大额转账
LOOKUP ON transaction WHERE transaction.user_id == "user1"
AND transaction.trans_time % 86400 < 28800 -- 早8点前
AND transaction.trans_time % 86400 > 72000 -- 晚8点后
AND transaction.amount > 10000
YIELD transaction._dst AS recipient,
transaction.amount,
transaction.trans_time;
四、反欺诈图模型优化建议
1. 索引设计
-- 用户ID索引
CREATE TAG INDEX idx_user_id ON user(user_id);
-- 设备ID索引
CREATE TAG INDEX idx_device_id ON device(device_id);
-- 交易时间索引
CREATE EDGE INDEX idx_trans_time ON transaction(trans_time);
-- 风险评分索引
CREATE TAG INDEX idx_risk_score ON user(risk_score);
2. 实时计算与离线分析结合
- 实时计算:通过 Nebula Graph 实时查询关联关系,识别紧急风险
- 离线分析:定期用图算法(如 PageRank、社区发现)更新风险评分
3. 数据清洗与特征工程
- 对设备指纹进行标准化处理
- 计算交易时间的偏离度(如是否非工作时间)
- 提取 IP 地址的地理位置、ASN 等特征
五、注意事项
- 数据时效性:反欺诈数据需要高频更新(如实时或准实时)
- 隐私保护:敏感数据需脱敏存储(如身份证号、银行卡号)
- 模型迭代:欺诈手段不断变化,需定期更新风险规则和图模型
- 性能优化:避免过深的图遍历(建议跳数≤3),通过预计算降低实时查询压力
通过合理设计点边模型和查询策略,Nebula Graph 可以有效支持互联网金融反欺诈场景,帮助企业及时发现潜在风险,保护资产安全。
郭慕荣博客园

浙公网安备 33010602011771号