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

机器学习方法有很多,而且一般都可以达到不错的效果,比如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 RMI HelloWorld

    Java RMI HelloWorld   RMI 远程方法调用. 顾名思义就是可以像调用本地程序方法一样调用远程(其他JVM)的程序方法.   分为3个部分: Stub:中介,代理. 封装了远程对象 ...

  2. 微服务架构集大成者—Spring Cloud (转载)

    软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福. 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 1 背景 2 ...

  3. Create and Embed an Application Manifest (UAC)

    http://msdn.microsoft.com/en-us/library/bb756929.aspx 可以在VS2008中设置当执行exe时弹出提升管理员权限对话框:xx Property-&g ...

  4. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十二):解决跨域问题

    什么是跨域? 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 如果一个请求地址里面的协议.域名和端口号都相同,就属于同源. ...

  5. linux nohup

    nohup RAILS_ENV=production bundle exec XXXX & nohup RAILS_ENV=production bundle exec XXXX >/d ...

  6. netty源码解解析(4.0)-9 ChannelPipleline的默认实现-链表管理

    io.netty.channel.DefaultChannelPipeline implements ChannelPipleline   DefaultChannelPiple给出了ChannelP ...

  7. 【转】repo介绍

    Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 Repo 命令行工具,对 Git 部分命令封装,将百多个 Git 库有效的进 ...

  8. JWT的相关讲解

    原文链接: http://www.cnblogs.com/chenwolong/p/Token.html

  9. c# 获取本机IP

    /// <summary> /// 获取本机IP /// </summary> /// <returns></returns> public stati ...

  10. Java并发编程:Java的四种线程池的使用,以及自定义线程工厂

    目录 引言 四种线程池 newCachedThreadPool:可缓存的线程池 newFixedThreadPool:定长线程池 newSingleThreadExecutor:单线程线程池 newS ...