风控算法(1)字节-色情导流用户识别

字节跳动安全AI挑战赛-大佬等等我

  • 比赛链接:https://security.bytedance.com/fe/ai-challenge#/challenge
    • 基于文本和多模态数据的风险识别
      • 电商黄牛地址识别
      • 色情导流用户识别
    • 小样本半监督风险识别
      • 人机识别
      • 少样本作弊样本检测任务

色情导流用户识别

色情导流赛道 2ndSolution https://github.com/rooki3ray/2021BytedanceSecurityAICompetition_track1

一、赛题描述

随着互联网的快速发展,网络黑产特别是色情导流也日益增多,给用户带来了极大的伤害。色情导流用户发布色情/低俗内容吸引用户,并且通过二维码、联系方式、短网址等完成导流。本赛题旨在通过提供用户相关数据,运用机器学习等方法对色情导流用户进行识别,提高模型检测的效果。

  • 输入:用户的特征,包括基础信息、投稿信息、行为信息
  • 输出:用户的标签(1表示色情导流用户,0表示正常用户)
  • 评价指标采用fβ(取β=0.3) \[ f_{\beta} = (1 + \beta^2)\frac{p*r}{\beta^2*p+r} \]

基础信息

image-20220629211352351

投稿信息

image-20220629211559660

行为信息

image-20220629211703172

二、数据构成

  • 用户基础信息
    • 性别、粉丝数、个签、关注人数……
  • 用户投稿信息
    • 视频标题、poi、省份、投稿时间
  • 用户行为信息
    • 播放次数、点赞数、分享数……

三、方案说明

  • 特征工程
    • log1p 数据平滑
    • 类别特征(LabelEncoder
    • 时间特征(min-max 归一化
    • 文本特征(长度、WordVec)
    • 交叉特征
  • 模型训练
    • 10折lgb交叉验证,均值作为预测结果
    • 伪标签
  • 最终分数线上第二(0.9906)。

四、代码结构

from config import Config

import argparse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.
├── 1_word2vec.py
├── 2_merge_data.py
├── 3_5_train_kfold.py
├── 4_pseudo_label.py
├── config.py
├── data
│ ├── pseudo.csv
│ ├── raw
│ │ ├── 测试数据
│ │ └── 训练数据
│ ├── sentence
│ │ └── signature
│ ├── test.csv
│ ├── train.csv
│ └── ...
├── evaluate_kfold.py
├── __pycache__
├── readme.md
├── requirements.txt
├── run.sh
├── saved
│ ├── 1112_1315_0.985_0.9934
│ │ └── ...
│ ├── 1112_1320_0.985_pseudo_0.9934
│ │ └── ...
│ ├── 1112_1321_pseudo_0.985_0.9942
│ │ ├── 1112_1321_0.985_results_kfold_0.9942.csv
│ │ ├── log.log
│ │ └── ...
└── utils.py

4.1 run.sh

1
2
3
4
5
6
set -x
python 1_word2vec.py
python 2_merge_data.py
python 3_5_train_kfold.py
python 4_pseudo_label.py
python 3_5_train_kfold.py --pseudo

4.2 1_word2vec.py

4.3 5_train_kfold.py