50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

CNN&LSTM 如何实现专属定制

  • 2020-03-22
  • 本文字数:3543 字

    阅读完需:约 12 分钟

CNN&LSTM如何实现专属定制

研究背景

深度学习模型凭借其强大的表达能力和灵活的网络结构在诸多领域取得了重大突破,如何将深度学习应用到业务场景中,实现用户专属定制,达到精准营销的目的,量化团队进行了一系列学习和探索。


基于两方面业务动机尝试构建某一品类购买用户预测模型:一方面,了解该类用品购买人群特征,挖掘潜在用户可能购买的商品,定向营销,实现用户专属定制,提高用户点击率和购买量,同时挖掘用户潜在喜好商品,增强用户体验。另一方面,预测将购买该类用品人群,精准选取营销目标。


模型将通过 CNN (Convolutional Neural Networks) 提取特征,并利用 LSTM(Long Short-term Memory )构建模型,将 CNN 与 LSTM 相结合,从而达到预期目的。本文将主要对这两种深度学习模型展开详细介绍。

CNN(Convolutional Neural Networks)提取特征

卷积神经网络(ConvolutionalNeural Networks, CNN)的概念最早出自 19 世纪 60 年代科学家通过猫的视觉皮层细胞中每一个视觉神经元只会处理一小块区域的视觉图像,即感受野(Receptive Field),20 世纪 80 年代,日本科学家提出神经认知机(Neocognitron)的概念,算是卷积网络的原型。


下面我们通过一个图和简单的例子,来理解 CNN 的结构:


如图所示:假设输入尺寸为 1000 像素*1000 像素的图片,即 100 万个像素点,输入数据的维度为 100 万,如果连接一个相同大小(包含 100 万个隐含节点)的隐含层,那么连接将是 100 万*100 万=一万亿个连接,即仅一个 Fully Connected Layer 就有一万亿连接权重需要训练,为了降低计算复杂度,以及避免过多连接带来的过拟合,我们采用局部连接(Locally Connect)的方式,如图中上半部分所示,设局部感受野(ReceptiveField)大小为 10*10,每个隐含节点只与 10*10 个像素点,那么连接则为 10*10*100 万=1 亿个,缩小 10000 倍。



但是还不够,这时卷积层便开始发挥作用。局部连接每一个隐含节点都拥有 100 个参数,而通过卷积操作,每个隐含层的参数都完全一样,那么参数则从 1 亿降为 100,极大的缩小参数量,其中,每一个卷积核滤波得到的图像就是一类特征的映射,即如图中的一个 Feature Map。不用担心有多少隐含节点或图片太大,参数量只与卷积核大小有关,即权值共享。CNN 由于卷积的权值共享结构,大幅减少神经网络的参数量,防止过拟合的同时又降低了神经网络模型的复杂度。


如图中所示:一个卷积神经网络有若干卷积层、Pooling 层、全连接层组成,可由 L 个卷积层叠加,然后(可选)叠加一个 Pooling 层,重复这个结构 M 次,最后叠加 N 个全连接层,我们详细看一下 CNN 的每一层结构:


  • 卷积层(Convolutional layer),每层卷积层由若干卷积单元组成,每个卷积单元的参数通过反向传播(Backpropagation)算法优化得到。卷积运算的目的是提取输入的不同特征,多层的网络能从低级特征中迭代提取复杂的特征。

  • 线性整流层(Rectified Linear Units layer, ReLU layer),这一层神经的活性化函数(Activationfunction)使用线性整流(Rectified Linear Units, ReLU)。

  • 池化层(Pooling layer),通常在卷积层之后会得到维度很大的特征,池化层进行特征选择和信息过滤。

  • 全连接层(Fully-Connected layer), 降采样(Down-Sampling)把所有局部特征结合变成全局特征,用来计算最后每一类的得分。


总之,CNN 的要点就是局部连接(Local Connection)、权值共享(Weight Sharing)和池化层(Pooling)中的降采样(Down-Sampling)。

LSTM(Long Short-termMemory )简介

长短期记忆网络 (Long Short-term Memory, LSTM)由 Hochreiter&Schmidhuber (1997)提出,论文见《Long Short-term memory》,并被 AlexGraves 等进行了改良和推广。基于传统 RNN(RecurrentNeural Networks)网络改进的变种网络,能很好地解决梯度爆炸(exploding gradient)和梯度消失(vanishing gradient)问题,让循环网络具备更强更好的记忆性能。


➤ 整体结构(Structure)


如图所示:Z 为输入向量,为控制输入门、输出门和遗忘门的值,f 为激活函数。当我们输入 z 时,通过激活函数得到 g(z),与输入门信息相乘得到,即输入数据中我们想要保留的信息。对于以前的记忆信息我们想要遗忘多少,由遗忘门所决定,通过遗忘门后得到的信息我们由表示,因此,信息通过遗忘门和输入门后得到的更新信息即。最后,经过输出门,输出我们最终想要输出的信息



注:来源于李弘毅机器学习讲义


➤ 核心过程(Core Process)


LSTM 的核心思想是细胞状态,由 z 至 a 间有一条贯穿的箭头直线,代表了 LSTM 的状态 state,它会贯穿所有串联在一起的 LSTM 单元,从第一个 LSTM 单元一直流向最后一个 LSTM 单元,其中只有少量的线性干预和改变。上面了解了 LSTM 的整体结构后,我们分别来理解 LSTM 的核心过程:


  • 遗忘门(forget gate)


LSTM 的第一步就是决定什么信息应该被神经元遗忘。这是一个被称为“遗忘门层”的 Sigmod 层组成的。它输入,然后在,然后在的每个神经元状态输出 0~1 之间的数字。“1”表示让信息全部通过,“0”表示不允许信息传递。



其中表示上一个单元状态,表示上一个单元输出,表示单元输入,为激活函数。


  • 输入门(input gate)


下一步就是决定我们要在神经元细胞中保存什么信息,这包括两个部分。首先,一个被称为“遗忘门层”的 Sigmod 层决定我们要更新的数值。然后,一个 tanh 层生成一个新的候选数值,它会被增加到神经元状态中。



然后,我们给旧的状态乘以一个 ft,遗忘掉我们之前决定要遗忘的信息,然后我们增加。这是新的候选值,是由我们想多大程度上更新每个状态的值来度量的。



  • 输出门(outputgate)


最后,我们要决定要输出什么。这个输出是建立在神经元状态的基础上的,但是有一个滤波器。首先,我们使用 Sigmod 层决定哪一部分的神经元状态需要被输出;然后让神经元状态经过 tanh(让输出值变为-1~1 之间)层并且乘上 Sigmod 门限的输出,只输出想要输出的。



以上即 LSTM 的基本思想,接下来将具体介绍模型实现,以及如何将 CNN (Convolutional Neural Networks)与 LSTM (Long Short-term Memory)相结合运用到实际业务场景中。

模型实现

LSTM (LongShort-term Memory)适合于处理和预测时间序列(Time Series)中间隔和延迟相对较长的重要事件。使用 LSTM 实现购买用户预测模型。由于没有客户真实状态标签,我们利用客户的购买数据来推断她是该品类需求用户的可能性。通过与该品类强相关的三级商品分类信息,将用户第一次购买这些商品假设为特征日。


➤ 正负样本 (Sample)


随机选取一年时间的观察窗口:


  • 正样本(Positive samples):选取观察期内有过购买该产品的人群

  • 负样本(Negative samples):选取观察期内没有任何需求迹象的用户


训练集、验证集与测试集正负样本比例均设为 1:1


➤ 特征提取 (Feature)


模型利用 CNN 提取特征,CNN 不需要将特征提取和分类训练两个过程分开,在训练时就自动提取了最有效的特征,解决了 SIFT 之类的算法特征时的局限性。尝试单独使用 LSTM 网络和利用 CNN 提取特征,将 CNN 与 LSTM 相结合的算法,由于 CNN 权值共享的特性,能降低模型复杂度,降低计算量,并通过实验证明 LSTM+CNN 比单独使用 LSTM 学习速率更快。



➤ 数据扩充 (Data Augmentation)


位移(Shifting): 删除最近 n 次用户的购买行为



位移效果:选取 20K 用户集进行验证,模型表现为:



(同时利用 XGBoost 得到 F1 score: 0.87)


➤ 模型效果(Model effect)


测试集数据表现(与验证集结果相似): 准确率(Precision)和召回率(Recall)均在 0.8 以上,达到理想的模型效果,预测之后的半个月内约 24%的用户完成了大于 10 次超过 3 类的某类产品的购买。将该模型落地到业务场景后,对业务指标(如:PV、UV、转化率等)有了明显的提升。

总结

上述预测模型利用 CNN 提取特征并结合 LSTM 处理和预测时间序列中间隔和延迟相对较长的重要事件的模型等,已渗透应用在各个业务场景,单上述案例模型可实现的业务场景就有:达人标签定义,商品精准营销,推荐达人信用卡等。


深度学习(Deep Learning)是近年来机器学习和人工智能领域中关注度最高的技术,笔者所在量化团队在深度学习方面一直在不断尝试和努力探索,并不断深化对业务场景的理解,落地到各个业务场景中。


本次主要介绍了 CNN(Convolutional Neural Networks)和 LSTM(Long Short-term Memory)模型的结构和应用。未来量化团队还将不断探索和创新,将深度学习模型深入应用到更多业务场景中,实现更加精准的“专属定制”。


2020-03-22 21:041302

评论

发布
暂无评论
发现更多内容

部分双机热备软件详细介绍-行云管家

行云管家

高可用 双机热备 双机

GitHub标星已达26K+,鹅厂技术总监手写分布式架构体系笔记

小小怪下士

Java 程序员 分布式

第五届“强网”拟态防御国际精英挑战赛精彩落幕!——网络空间安全大赛再立新标杆

科技热闻

一文带你了解EiPaaS和EiPaaS的国际趋势

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

AI与低代码的结合及应用

力软低代码开发平台

“2022混合云TOP50”重磅发布 天翼云问鼎榜首

极客天地

如何通过 NFTScan 发掘 NFT 项目的内在价值

NFT Research

区块链 NFT

MegEngine Windows Python wheel 包减肥之路

MegEngineBot

深度学习 开源 MegEngine

阿里二面被问MySQL的事务隔离级别,结果回去等通知了

程序员小毕

MySQL 数据库 程序员 面试 后端

前端编程学习有没有必要参加?

小谷哥

行业认可|墨菲安全登信息通信软件供应链安全社区优秀榜单

墨菲安全

参加java培训对学习程序员有用吗?

小谷哥

西藏等保测评公司有哪些?共有几家?

行云管家

等保测评 等保测评公司 西藏

HIFIVE音加加提供曲库、评分、修音功能的K歌SDK-Android版本

数到3变暖男i

API 社交泛娱乐 娱乐社交 K歌 K歌SDK

如何在小程序中完成支付进件

Towify

微信小程序 编辑器 无代码

建筑、工程和施工产业中的3D可视化

3DCAT实时渲染

可视化 云渲染 实时云渲染 云渲染平台

如何用 7 分钟玩转函数计算?

阿里巴巴云原生

阿里云 Serverless 云原生

TDengine与中泰证券正式签约,打造金融量化交易场景解决方案

TDengine

数据库 tdengine 时序数据库

OSCS开源安全周报第22期:NuGet 仓库中被发现 13.5 万个包含钓鱼地址的组件包

墨菲安全

YonBuilder移动开发平台 AVM框架 封装省市区级联选择弹框

YonBuilder低代码开发平台

开发者 AVM

学习大数据培训和自学哪个比较好

小谷哥

调试3D渲染和3D可视化的五个好处

3DCAT实时渲染

可视化 3D渲染 云渲染 实时渲染

为什么数字化时代需要 BizDevOps?

阿里云云效

DevOps 数字化转型 数字化 BizDevOps

大数据开发技术培训班怎么选

小谷哥

前端程序员培训学习需要学多久?

小谷哥

皮皮App发起爱心捐赠,让城市里的荧荧之光,给乡村孩子带去一片暖冬

联营汇聚

游戏引擎中的实时渲染和在V-Ray中渲染有什么区别?

3DCAT实时渲染

渲染引擎 游戏引擎 渲染服务 游戏开发引擎

一文读懂于Zebec生态中的潜在收益方式

鳄鱼视界

【电路设计】避开元器件的这些“坑”,多年的心梗都治好了!

华秋PCB

工具 PCB PCB设计

Spring中11个最常用的扩展点,你知道几个?

JAVA旭阳

Java spring

WhaleDI数据治理利器之“低成本数据质量管理”

鲸品堂

12 月 PK 榜

CNN&LSTM如何实现专属定制_文化 & 方法_京东数字科技产业AI中心_InfoQ精选文章