根据用户的一些特征数据,如果能推测出用户的性别借此提高产品的服务质量、广告的精准性等都是极好的。

机器学习方法有很多,而且一般都可以达到不错的效果,比如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猜测性别初探的更多相关文章

  1. 深度学习中Embedding的理解

    这学期为数不多的精读论文中基本上都涉及到了Embedding这个概念,下面结合自己的理解和查阅的资料对这个概念进行一下梳理. ===================================== ...

  2. 广告行业中那些趣事系列9:一网打尽Youtube深度学习推荐系统

    最新最全的文章请关注我的微信公众号:数据拾光者. 摘要:本篇主要分析Youtube深度学习推荐系统,借鉴模型框架以及工程中优秀的解决方案从而应用于实际项目.首先讲了下用户.广告主和抖音这一类视频平台三 ...

  3. AI安全初探——利用深度学习检测DNS隐蔽通道

    AI安全初探——利用深度学习检测DNS隐蔽通道 目录 AI安全初探——利用深度学习检测DNS隐蔽通道 1.DNS 隐蔽通道简介 2. 算法前的准备工作——数据采集 3. 利用深度学习进行DNS隐蔽通道 ...

  4. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)

    摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...

  5. 深度学习课程笔记(十一)初探 Capsule Network

    深度学习课程笔记(十一)初探 Capsule Network  2018-02-01  15:58:52 一.先列出几个不错的 reference: 1. https://medium.com/ai% ...

  6. 吴恩达《深度学习》-课后测验-第五门课 序列模型(Sequence Models)-Week 2: Natural Language Processing and Word Embeddings (第二周测验:自然语言处理与词嵌入)

    Week 2 Quiz: Natural Language Processing and Word Embeddings (第二周测验:自然语言处理与词嵌入) 1.Suppose you learn ...

  7. DeepMind背后的人工智能:深度学习原理初探

    去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...

  8. 深度学习初探——符号式编程、框架、TensorFlow

    一.命令式编程(imperative)和符号式编程(symblic) 命令式: import numpy as np a = np.ones(10) b = np.ones(10) * 2 c = b ...

  9. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

随机推荐

  1. Java连接Mysql数据库警告: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established

    详细错误: Establishing SSL connection without server's identity verification is not recommended. Accordi ...

  2. 删除.svn 脱离svn版本控制器

    1.for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn" 复制到记事本,将记事本保存为 ...

  3. Appium定位方式总结

    通过appium-desktop定位元素 ClassName Android Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取 ...

  4. php -- 目录、路径、磁盘

    ----- 028-dir.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv="co ...

  5. 新电脑一般javaweb配置

    下个jdk (官网)1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Jav ...

  6. Linux_CentOS-服务器搭建 <一>

    本人CentOS版本6.3 必备的两个小软件: 安装PUTTY远程控制linux的非常小但非常好用的小工具. 安装WINSCP,使用ssh实现我windows上和linux服务器上文件的互传. 呵呵, ...

  7. Kafka实战-Storm Cluster

    1.概述 在<Kafka实战-实时日志统计流程>一文中,谈到了Storm的相关问题,在完成实时日志统计时,我们需要用到Storm去消费Kafka Cluster中的数据,所以,这里我单独给 ...

  8. Hibernate学习(一)———— 第一个hibernate工程

    一.什么是Hibernate? 轻量级JavaEE应用的持久层框架,是一个完全的ORM框架.(说完这句话,肯定有很多人懵圈了,下面我来一个个解释) 持久化:将我们想要保存的数据保存到硬盘上,也就是我们 ...

  9. netty源码解解析(4.0)-11 Channel NIO实现-概览

      结构设计 Channel的NIO实现位于io.netty.channel.nio包和io.netty.channel.socket.nio包中,其中io.netty.channel.nio是抽象实 ...

  10. [Luogu1365] WJMZBMR打osu! / Easy

    Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有 \(n\) 次点击要做,成功了就是o,失败了就是x,分数是按com ...