大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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:041355

评论

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

一文速览字节最新分布式操作系统KubeWharf

苏沐

运维 云原生 k8s 分布式操作系统 KubeWharf

现代皮质沙发材质编辑

3D建模设计

3D渲染 纹理处理 模型渲染 材质纹理 材质编辑

3D材质编辑:制作被火烧的木头

3D建模设计

3D渲染 材质贴图 纹理贴图 模型渲染 材质编辑

创新释放:Atlassian 人工智能引领现代工作

跟YY哥学Jira

人工智能 项目管理 Jira Confluence ChatGPT

公司敏感数据被上传Github,吓得我赶紧改提交记录

程序员小富

git

Mint Blockchain,一个聚焦在 NFT 领域的 L2 网络

NFT Research

NFT\ NFTScan Layer 2

提升淘宝商品详情搜索效率,看这篇API接口详解

联讯数据

Python 案例实训教学,课程展示及结课存档优化|ModelWhale 版本更新

ModelWhale

人工智能 大数据 canvas 教学实训 模型服务

火山引擎的AI语音技术

淼.

什么是API数据接口该怎么使用?

Noah

OPPO ColorOS全球创客大赛总决赛在即 加速潘塔纳尔生态成型

极客天地

使用粗糙贴图制作粗纹皮革手提包3D模型

3D建模设计

3D渲染 纹理贴图 模型渲染 材质纹理 材质编辑

矩阵起源与深圳大学达成专利开放认可合作,坚持科技是第一生产力

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

如何进行代码混淆?方法与常见工具介绍

深入探讨 Swagger Array:开发者的步步为赢指南

Liam

后端 开发工具 swagger API 文档 web 开发

苹果电脑虚拟定位:AnyGo中文破解 for mac 修改手机定位就是如此简单

Rose

mac软件下载 AnyGo for Mac AnyGo破解版 虚拟定位工具 AnyGo中文版下载

2023年,用友BIP持续发展,引领企业数智化

用友BIP

【EMNLP 2023】基于大语言模型的复杂任务认知推理算法CogTree

阿里云大数据AI技术

从0到100TB,MatrixOne助您轻松应对

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

DAPP智能合约质押挖矿系统开发丨详情开发

l8l259l3365

MCube动态化与原生工程结合最佳实践 | 京东云技术团队

京东科技开发者

前端 跨端 动态化 MCube

利用法线贴图渲染逼真的3D老虎模型

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理 材质编辑

高效挖掘数据价值,天翼云分析型数据库TeleDB For AnalyticDB申请出战!

极客天地

一个 41 岁老程序员的 2023 年总结 - 利用 AI 延长自己的编程寿命

汪子熙

人工智能 AI 总结思考 ChatGPT 2023年

React基础知识入门

小白Coding日志

前端 React

如何使用玻璃材质制作钻石3D模型

3D建模设计

3D渲染 纹理贴图 模型渲染 材质纹理 材质编辑

强大的系统活动监控器:iStat Menus 激活中文版最新

胖墩儿不胖y

系统监控工具 Mac电脑软件

MatrixOne完成与麒麟软件服务器操作系统的兼容互认

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

Vue3.0在软件开发中的能力展示

互联网工科生

Vue DOM vue3.0

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