深度学习word embedding猜测性别初探
根据用户的一些特征数据,如果能推测出用户的性别借此提高产品的服务质量、广告的精准性等都是极好的。
机器学习方法有很多,而且一般都可以达到不错的效果,比如svm或神经网络等。
本文使用的代码参考——《TensorFlow练习18: 根据姓名判断性别》
但原文代码已经无法直接跑起来,对于最新的TensorFlow需要酌情调整部分参数和函数名等,根据报错调整即可比较容易,文末我也可以考虑放出自己的代码,看心情吧 O(∩_∩)O~
下面我们开始一步步剖析原文中用到的word embedding方法:
虽然word embedding通常是用于自然语言处理的,但其实用于分析用户性别也不错,通过训练word embedding可将一句话分为积极、消极或高兴、生气等态度,所以把用户特征当做一句话,分析出男女(相当于这句话的态度)自然是可行的。
word embedding中用到了卷积神经网络,关于什么是卷积神经网络,可参考这篇知乎回答——《CNN(卷积神经网络)是什么?有入门简介或文章吗?》,讲解的深入浅出,非常适合入门理解。
而对于《TensorFlow练习18》中的代码只有一类特征就是姓名,先将名字中每个字向量化(前57行代码)并用于embedding计算和卷积计算等,实际情况下可能不会知道姓名而且也会做数据脱敏,当然这都是后话,通常的特征数据类型有设备类型、安装的软件等,这些特征也要先经过向量化处理,比如设备A,软件x、软件y、软件z,把其中每项当成原文中一个字来做向量化即可,转换之后就变成了4个数值(下文简称向量值),向量值才是计算机可以理解的信息。
接下来就到了最关键的embedding层了,至于这个embedding到底是怎么回事,可以参考这篇文章《TensorFlow学习笔记3:词向量》,核心就是上述向量值太简单了,没有相关性,无法直接用于计算卷积神经网络,所以在训练模型过程中用embedding算法得出每个向量值在多个维度的语义和相关性数据。原文中embedding_size=128,所以就会为每个向量值计算128维的数据,当然对于实际的应用场景可能维度太多反倒会适得其反,可以调整embedding_size多训练几个模型来确定最适合的值,比如我最终确定embedding_size=16准确率最高。
在embedding层之后就是卷积层和池化层了,还有dropout层,这些在《CNN(卷积神经网络)是什么?有入门简介或文章吗?》也有详细介绍,就不赘述了。原文中filter_sizes = [3,4,5]一共三项,所以一共三层卷积,而每层卷积的感受野分别为3、4、5,至于num_filters=128即每层卷积有128个卷积核(可以认为是128种滤镜)。另外其中的filter_sizes也是可以根据应用场景适当调整的,num_filters也可以调下试试,不过我感觉调整num_filters对于我的场景帮助不大。
未完待续
深度学习word embedding猜测性别初探的更多相关文章
- 深度学习中Embedding的理解
这学期为数不多的精读论文中基本上都涉及到了Embedding这个概念,下面结合自己的理解和查阅的资料对这个概念进行一下梳理. ===================================== ...
- 广告行业中那些趣事系列9:一网打尽Youtube深度学习推荐系统
最新最全的文章请关注我的微信公众号:数据拾光者. 摘要:本篇主要分析Youtube深度学习推荐系统,借鉴模型框架以及工程中优秀的解决方案从而应用于实际项目.首先讲了下用户.广告主和抖音这一类视频平台三 ...
- AI安全初探——利用深度学习检测DNS隐蔽通道
AI安全初探——利用深度学习检测DNS隐蔽通道 目录 AI安全初探——利用深度学习检测DNS隐蔽通道 1.DNS 隐蔽通道简介 2. 算法前的准备工作——数据采集 3. 利用深度学习进行DNS隐蔽通道 ...
- 基于深度学习的人脸性别识别系统(含UI界面,Python代码)
摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...
- 深度学习课程笔记(十一)初探 Capsule Network
深度学习课程笔记(十一)初探 Capsule Network 2018-02-01 15:58:52 一.先列出几个不错的 reference: 1. https://medium.com/ai% ...
- 吴恩达《深度学习》-课后测验-第五门课 序列模型(Sequence Models)-Week 2: Natural Language Processing and Word Embeddings (第二周测验:自然语言处理与词嵌入)
Week 2 Quiz: Natural Language Processing and Word Embeddings (第二周测验:自然语言处理与词嵌入) 1.Suppose you learn ...
- DeepMind背后的人工智能:深度学习原理初探
去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...
- 深度学习初探——符号式编程、框架、TensorFlow
一.命令式编程(imperative)和符号式编程(symblic) 命令式: import numpy as np a = np.ones(10) b = np.ones(10) * 2 c = b ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
随机推荐
- 解决vue路由history模式刷新后404的问题
server { listen ;#默认端口是80,如果端口没被占用可以不用修改 server_name localhost; root E:/vue/my_project/dist;#vue项目的打 ...
- SpringBoot各类扩展点详解
一.前言 上篇文章我们深入分析了SpringBoot的一站式启动流程.然后我们知道SpringBoot的主要功能都是依靠它内部很多的扩展点来完成的,那毋容置疑,这些扩展点是我们应该深入了解的,那么本次 ...
- 目标检测模型的性能评估--MAP(Mean Average Precision)
目标检测模型中性能评估的几个重要参数有精确度,精确度和召回率.本文中我们将讨论一个常用的度量指标:均值平均精度,即MAP. 在二元分类中,精确度和召回率是一个简单直观的统计量,但是在目标检测中有所不同 ...
- zabbix yum安装
1. 安装zabbix yum源 rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6. ...
- 通过 Ansible 创建 Jenkins Server
创建 CI 流程的第一件事应该是安装 CI 工具,本文以最常见的 Jenkins 为例,介绍如何使用 Ansible 自动安装 Jenkins Server.说明:本文的演示环境为 ubuntu 16 ...
- 三、TortoiseGit之配置密钥
TortoiseGit使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥. 也就是说使用 ssh-keygen -t rsa -C "username@email.co ...
- Canvas画空心正五角星-扩展DEMO为五星红旗
马上就要国庆了,在这个举国欢庆的日子里面,让我来画一个五角星表表我的爱国之情,啊?那你不是要画一个五星红旗?是的,你猜对了,其实我的最初想法只是画一个空心的正五角星,为了满足你,我拼一拼.在这个过程中 ...
- 设计模式-----Builder模式
前言 近日,看到Myabtis中组件中SqlSessionFactory由SqlSessionFactoryBuilder().build()生成时,且采用Builder模式,遂记录学习之. SqlS ...
- vb.net Function使用
Public Function colour(ByVal Code As Int16) As Color'顏色 Select Case Code Case 1 colour = Color.White ...
- java中import static和import的区别【转】
转自:http://blog.csdn.net/ygc87/article/details/7371254