团队介绍:TensorSlow开发组
-
致Great:中科院计算所,擅长深度学习
-
lrhao:腾讯数据分析师,有着丰富比赛经验,多项比赛大满贯
-
SJF:大一新生,充满无限创意与活力
-
pumpkin:同济大学,腾讯算法工程师,深度洞察数据
1、赛事背景
2020年“创青春·交子杯”新网银行金融科技挑战赛-AI算法赛道,旨在鼓励选手运用前沿的人工智能技术解决金融科技等领域中的实际问题,激发选手创新能力,增强其动手能力。比赛挑战题目为“看见你的呼吸”,该项技术可应用于金融在线业务的生物识别、智能家居感应、智慧健康监控管理、健身训练助手等多个领域,期待挑战者利用机器学习和人工智能的最新成果,根据手机传感器的时间序列数据,设计出区分能力强、稳定性高的行为识别模型
2、题目描述
本次行为预测任务,参赛者需要利用从手机传感器采集的时间序列数据,建立模型识别对应时间段手机使用者的行为。该算法可应用于生活场景中走路、玩游戏等日常行为的识别,也可以应用于金融领域的客户异常行为实时识别,尤其是在在线信贷产品的申请、提现等关键服务环节。此类技术能进一步提升在电信诈骗、中介骗贷等金融场景中的欺诈风险识别和防范能力。
3、数据说明
数据总体概述:新网银行提供的手机行为数据集由多个采集对象使用安卓手机采集而成。样本采集对象包含多名男性和女性,年龄跨度在20-55岁,采集时要求采集对象在指定时间内按照其使用习惯完成指定动作。
-
采集场景分为3类:行走、站立、坐卧;
-
3个场景中各采集了:玩游戏、刷抖音或快手等短视频、看影视剧或综艺节目等长视频、网页浏览、编辑文字、其他动作(如拍照、语音通话、视频通话、发语音、图片PS)6类动作;
-
此外,还单独设计了“递手机”的行为,此行为不区分场景。我们将“行为”定义为动作+场景的组合,因此共19种不同行为;
-
训练集中已将行为预处理为0-18的编号(behavior_id)。
-
数据集中每个行为片段(fragment_id)对应为5s的加速计读数:包含重力加速度(acc_xg, acc_yg, acc_zg)和不含重力加速度(acc_x, acc_y, acc_z);数据集每行对应fragment_id下某个时间点的加速计数据。
-
数据分为训练集和测试集,分别用于训练模型和测试模型效果。
字段说明
序列 | 字段名称 | 格式 | 解释说明 |
---|---|---|---|
字段1 | fragment_id | int | 行为片段id |
字段2 | time_point | int 采 | 集时间点(ms) |
字段3 | acc_x | float | 不含重力加速度的x轴分量(m/s^2) |
字段4 | acc_y | float | 不含重力加速度的y轴分量(m/s^2) |
字段5 | acc_z | float | 不含重力加速度的z轴分量(m/s^2) |
字段6 | acc_xg | float | 包含重力加速度的x轴分量(m/s^2) |
字段7 | acc_yg | float | 包含重力加速度的y轴分量(m/s^2) |
字段8 | acc_zg | float | 包含重力加速度的z轴分量(m/s^2) |
字段9 | behavior_id | int | 编号的行为id |
用户行为片段时长统计:
4、解决方案
4.1 特征工程
每个fragment_id对应多条序列数据,然后可以对fragment_id进行聚合构建统计量特征、坐标轴夹角、空间向量平面等特征。
4.2 数据增强
在比赛实验中,我们尝试了以下四种不同方式的数据增强,
-
构建双向序列输入
构建方向输入的想法由“视频倒放也能表示一副画面”启发,但是反向输入有两种使用方式,第一种是作为输入,通过深度网络得到片段表示;另外一个是直接作为数据增强,当做训练数据,反向序列的标签和原始正向序列标签一致。实验发现,第二种方式线下分数较高,相比第一种但是线上提升有限。
-
三次样条插值
-
噪声增强
-
Mixup
其中“构建双向输入”对我们模型效果有不小幅度的提升,“噪声增强”抑制了模型过拟合,具体使用可以详见代码
4.3 核心模型1:基于多输入的CNN-MLP模型
在比赛进行到一定阶段,由初期的l基于特征工程的gb模型开始转向CNN等深度学习模型,在实验模型中我们尝试将前期工程的特征工程工作通过全连接学习得到高阶特征向量表示,之后与正向、反向输入的深度二维卷积网络的学习表示拼接,最后通过Dense进行分类概率预测。其中只基于原始输入的Deep Conv2d可以取得一个不错的基线成绩,加上Feature的深度特征表示以及反向输入对模型提升较大。
4.4 核心模型2:基于多尺度双向序列的CNN-DNN模型
在复赛阶段,大家会发现复赛数据的行为序列片段长度明显短于初赛的片段长度,导致Conv2D模型效果下降,随后我们调整了部分初赛模型的模块
-
对于输入部分,由于存在各种尺度的行为序列片段,导致不能使用一个单一的填充长度,并且对于过长或者过短片段 ,截取或者填充来带来很大噪声,所以我们构建了多尺度的输入,以丰富模型学习能力
-
对于数据填充部分,我们尝试了多种采样方式,最后使用了效果最佳的周期采样的方式
-
由于存在过短数据,导致Conv2D学习能力下降,随之将Conv2D替换成了Conv1D,并且线上效果Conv1D明显由于Conv2D
4.5 核心模型3:基于多尺度的LSTM-FCN模型
来源:LSTM Fully Convolutional Networks for Time Series Classification
在比赛实验方案中,我们尝试了LSTM-FCN模型,并且采用多尺度输入,在复赛中也取得了不错的得分,对后续我们模型融合提升帮助不小。
5、比赛总结
-
结合手动设计特征帮助自动提取特征实现更丰富的特征信息提取
-
双向序列的信息输入增强了模型学习能力
-
针对序列不平衡的对尺度输入变换
-
不足之处:没有尝试stakcing融合;没有继续优化ML模型
最后欢迎大家关注我们的公众号:ChallengeHub,加入ChallengeHub粉丝群,共同探讨,共同学习,共同进步!!!