转载请注明来源

哎是用户画像?

大概,用户画像是因用户社会属性、生活习惯和消费行为等消息如果肤浅出的一个标签化的用户模型。构建用户画像的为主工作便凡是被用户贴“标签”,而标签是经过对用户信息分析如果来之可观概括的特征标识。

举例来说来说,如果你时购买有木偶玩具,那么电商网站即可根据玩具购买之景况为而于上签“有子女”,甚至还可判有而孩子大概的齿,贴上“有
5-10
东之儿女”这样越具体的价签,而这些具有受您贴的标签统在同等次等,就成了你的用户画像,因此,也得以说用户画像就是判一个口是安的人口。

除外“标签化”,用户画像还拥有的特征是“低交叉率”,当半组写真除了权重较小之标签外其他标签几乎相同,那就算足以将两端合并,弱化低权重签的出入。

该文章翻译由:

用户画像的作用

罗振宇于《时间的情人》跨年发言上举了这么一个例子:当一个坏商家掌握了您的买入数码,他即可以根据你平凡购买商品的惯来控制是深受您发正品还是赝品以增长盈利。且不说是否存在这状态,但迅即吗说明了运用用户画像可以形成“精准销售”,当然矣,这是无限错误的用法。

彼意图大致不离以下几只面:

  1. 精准营销,分析产品潜在用户,针对特定群体利用短信邮件等办法展开营销;
  2. 用户统计,比如中国大学进图书人数 TOP10,全国划分城市奶爸指数;
  3. 数挖掘,构建智能推荐系统,利用关系规则计算,喜欢红酒的人数一般喜欢什么活动品牌,利用聚类算法分析,喜欢红酒的口年龄段分布状况;
  4. 进行职能评估,完善产品运营,提升服务品质,其实这吗就是相当给市场调研、用户调研,迅速下一定服务群体,提供高品位的服务;
  5. 针对劳动要制品进行私人定制,即个性化的劳务某类群体还各一样各项用户(个人觉得就是当下底发展趋势,未来底花主流)。比如,某号想推出一款面向
    5-10
    春娃儿之玩意儿,通过用户画像进行解析,发现形象=“喜羊羊”、价格区间=“中等”的溺爱比重最深,那么就算于新产品提供类似非常合理有效之决策依据。
  6. 工作经营分析与竞争分析,影响商家发展战略

CNNdroid: GPU-Accelerated Execution of Trained Deep Convolutional
Neural Networks on Android

构建流程

Paste_Image.png

原先论文地址

数据收集

数收集大致分成网络行为数据、服务内行为数量、用户内容偏好数据、用户交易数额就四像样。

  • 网行为数据:活跃人数、页面浏览量、访问时长、激活率、外部触点、社交数据等
  • 劳内行为多少:浏览路径、页面停留时间、访问深度、唯一页面浏览次数等于
  • 用户内容即好数据:浏览/收藏内容、评论内容、互动内容、生活形态偏好、品牌偏好等
  • 用户交易数额(交易类服务):贡献率、客单价、连带率、回头率、流失率等
    自然,收集至的数据未会见是 100%
    准确的,都备无明朗,这即得在后边的号中建模来再判断,比如某用户以性平等栏填写的男,但透过该作为偏好但看清其性也“女”的概率为
    80%。

还得一样领取的是,储存用户作为数据经常最为好还要储存下有拖欠作为之情景,以便更好地展开数量解析。

摘要

智能设备和而通过戴设备还拿受益于深度上算法(比如CNN)的准确性和而扩展性。然而,性能及能耗等切实的题目驱动以运动端设备上立看似密集计算的算法变得挺受限。我们开了CNNdroid这个GPU加速库,可以于Android设备及贯彻CNN网络的教练。通过实验,CNNdroid在动装备上贯彻了60倍速的晋级,以及130倍速的俭省。CNNdroid这个库房已经开源在Github上,可以由Github项目页面

作为建模

欠等是对准达成号收集至数码的拍卖,进行行为建模,以抽象出用户的签,这个阶段注重的许诺是大概率事件,通过数学算法模型尽可能地铲除用户的偶发行为。

这时也如因此到机械上,对用户之行事、偏好进行猜测,好比一个 y=kx+b
的算法,X 代表就掌握信,Y 是用户偏好,通过不断的确切 k 和 b 来规范 Y。

于此阶段,需要使用很多模子来让用户贴标签。

  • 用户汽车模型
    据悉用户指向“汽车”话题的体贴还是进货有关制品之情形来判断用户是否来车、是否准备进车
  • 用户忠诚度模型
    通过判断+聚类算法判断用户之忠诚度
  • 身高体型模型
    因用户购买服装鞋帽等用品判断
  • 文艺青年模型
    根据用户发言、评论等表现判断用户是否也文艺青年
  • 用户价值模型
    看清用户对于网站的价值,对于增进用户留存率非常实惠(电商网站一般采用
    RFM 实现)
    还有消费力量、违约概率、流失概率等等诸多型。

关键词

Deep Learning, Deep Convolutional Neural Network (CNN), Mobile GPU,
Performance Optimization, Low Energy Con- sumption, Open Source
Software, Android, RenderScript

用户画像基本成型

该级可以说凡是亚等级的一个深刻,要将用户之主导性能(年龄、性别、地域)、购买能力、行为特征、兴趣爱好、心理特征、社交网络大致地标签化。

怎么就是基本成型?因为用户画像永远为无力回天 100%
地描述一个总人口,只能完成不断地去逼近一个人口,因此,用户画像既应因变化之根基数据持续修正,又比方依据现已清楚多少来抽象出新的竹签而用户画像越来越立体。

关于“标签化”,一般采取多元标签、多层分类,比如第一级标签是骨干信息(姓名、性别),第二级是花费习惯、用户作为;第一级分类有人数属性,人口属性又有中心信息、地理位置等二级分类,地理位置又细分工作地点和家庭地址之老三级分类。

1.介绍

智能手机、可越过戴设备、微型机器人、物联网等逾多之位移平台还在深度上之天地找到了对应的用方向(如图1)。例如当走设备上,语音识别与图像识别等多App都受益于机器上之本土算法。如果允许将模型等数直接在客户端,就得避与服务器的上下行数据交互而造成的网络延迟等体验的问题。CNN卷积网络以前瞻的精确性和可扩展性上都拿走了老大先进的硕果,然而像此类密集计算型的网布局必须依硬件级加速才可能于动设备上获得大规模的应用。

祈求1:CNN在运动装备及之施用

许多基于深度上的硬件加速平台还出照应的化解方案了,IBM也正值开同种植用于神经网络的CMOS的芯片,用于在倒装备以及物联网设备上。与此同时,类似之化解方案还是高居前期的研发阶段,也并无商用到存活的走装备及。

同基于硬件的加速平台不同的是,GPU都大规模的商用到现之走装备及了,同时以软件层面的编码支持啊举行的死去活来全面了。利用GPU现成的并行计算能力去实现CNN神经网络在运动端设备上的乘除加速是意可行之。

存的GPU加速方案的吃水上CNN的开源库有不少栽,都是冲服务器和桌面平台的[表现附录的6,
7, 8, 9, 10, 11,
12].然而,由于平台架构的出入,简单的把这些开源库移植到运动端上,在好几Case下效果是软的(见2.2节)。目前于倒端上,据我们所了解,并没有对应的蕴藏GPU加速的吃水上计算框架的开源库,这些库
[见附录的13, 14, 15,
16]单能够利用移动装备的CPU多按计算能力,而这样局限性很特别。

本,我们提供一个支撑GPU加速的开源库,称为“CNNdroid”,可以当Android平台用来由此训练数据集的点子设计与优化CNN的网络。以下是CNNdroid的几乎个主要亮点。

  1. 支持几乎所有的CNN的Layer Type(Section 3.1)
  2. 兼容Caffe[6]、Torch[7]、Theano[8]这些开源框架在PC平台、服务器平台达成既训练好之型(Section
    3.2)
  3. 幸存的Android App可以快的投入这库房,无需额外的软件依赖(Section
    3.3)
  4. 开发者可以指定最特别之内存消耗(Section 3.4)
  5. CNN Layer的GPU和CPU加速均支持(Section 3.5)
  6. 机关的硬件标准检测(Section 3.6)
  7. 于倒设备上跨60倍增之习性提升与减少130倍的能耗(Section 4)

数量可视化分析

立马是拿用户画像真正使用起来的同等步,在这步骤中貌似是针对性群体之解析,比如可以根据用户价值来细分来中心用户、评估某平等群体之秘价值空间,以作出对的运营。
如图:

Paste_Image.png

背景知识及相关介绍

后记

此间才写了用户画像的构建流程以及局部规律,下浅发生工夫我会写篇有关那个数额平台的尽篇,并说一样下部分行为模型的算法原理,有趣味的冤家可以关注下。

参照阅读:
[1]永洪BI:手把手教您搞定用户画像
[2]易观智库:大数量下的用户分析(PPT)
[3]杨步涛:基于用户画像的不得了数据挖掘实践
[4]慕课网:电商大数目以之用户画像
[5]知乎:Alex Chu
关于用户画像的答问

2.1运动装备的GPU和桌面平台的GPU的界别

当代图形处理单元(GPU)不仅仅能够举行图形计算,也能被用来举行只是编程的通用计算。台式机的GPU长期以来都是可编程的,近期动设备上的GPU也放了通用计算的硬件级支持。但受限于GPU的尺寸及功耗,移动GPU和桌面GPU设备或者发生酷老的歧异。

当代动GPU的Shader Cores(SC)通常成为多少而编程并行计算单元。每个Shader
Core都是由于若干个ALU并行组成。比如,三星球的Exynos 5433芯片是由于ARM A53/A57
CPU和Mali T-760 GPU组成(见图2)。T-760
GPU中的各个一个SC都富有两个VLIW格式的128位ALU。每个128号ALU能够实践SIMD操作,即相互的少个64各项,四单32各或八只16个操作[17]。与桌面平台GPU相比,移动设备的并行ALU架构在互相线程的有效执行着重复多地依靠让软件和编译器,而不是动态硬件调度器。

图2: Exynos 5433 mobile processor with ARM A53 / A57 CPU and Mali T-760
GPU (SC: Shader Core, VLIW: Very Long Instruction Word, SIMD: Single
Instruction Multiple Data

再关键之是,在桌面GPU中普遍利用的线程块快速内存共享机制在走GPU中并无可用,同时多基于CUDA的桌面平台的Library在运动GPU上吧不可以用。

双重倒霉的是,在软件层面这半端的差别也是惊天动地的。比如Android提供的RenderScript[18]举凡一个用以并行计算的库,但是出现线程的编制并无可用。另外,并行线程和互线程使用的内存中之数有必须是一定底涉嫌。

2.2 CNNdroid 和桌面平台相关库的于

每当服务器和桌面端,已经闹不少备的依据GPU加速的并行计算框架而用以CNN网络,诸如Caffe[6],Torch
[7], Theano [8],Tensor- Flow [9], cuDNN [10], cuda-convnet
[11],,and Velesnet
[12],然而由于个别端的硬件和软件的区别,这种增速与并行计算的法并无能够直接的叫移植到运动设备上。比如说,Caffe[6]蒙之卷积操作为进行并易为矩阵乘法,这些操作对内存的要求比较高,这在倒装备及是勿现实的。再推一个例子,Theano
[8]受到的并行算法虽然同CNNdroid类似,但是于倒GPU中无采用SIMD单元(详见Section
3.5)。

重复倒霉的凡,桌面的计算库利用桌面GPU和CUDA框架提供的线程管理功能,如飞共享内存和线程同步,这些在动GPU和Android提供的RenderScript中皆未可用。

2.3 CNNdroid和移动平台相关库的比

于动装备及,就即所掌握之支撑CNN深度上的框架只有[13,14,15,16]。包括了Caffe
Mobile[13]和Torch
Mobile[14],均受限于多按的CPU计算能力,而只有CNNdroid支持CPU和GPU(详见Section
3.5)。

另外,CNNdroid还兼容Caffe[6]、Torch[7]、和Theano[8]训练出的CNN模型,方便快捷将模型部署到移动装备及(详见Section
3.2)。

开发条件达标,不需要安装Android NDK,只待安装Android SDK即可。

3.CNNdroid库

3.1 CNNLayer Types

CNNDroid库支持几乎大部分底CNN
Layers,比如说卷积层,max/mean池化层,全链接层,ReLu(Rectified Linear
Units)激活函数,LRN(Local Response
Normalization)层,Softmax等。相关的叙述和各个一样重叠的参数设置在开源库中的文档里发证[1]。由于库底开源特性,其它的重叠为可以天天在。

3.2 模型的准备

范转换脚本:图3显了哪以训练好的模子部署至移动端
CNNdroid库提供了同一密密麻麻的剧本,可以将不同框架训练的库转成CNNdroid格式的型,目前早就支撑Caffe[6],Torch[7],Theano[8],因此可采取上述框架训练模型然后转为CNNdroid库支持之格式,最终运行在Android移动设备及。当然你啊堪效仿这些本子写来任何平台的变脚本,CNNdroid使用MessagePack序列化和存储模型中不同层的参数。具体的底细可以参照开源库的求证文档[1]。

图3:CNNdroid的模型部署流程

NetFile:开发者需要预备一个号称也NetFile.txt的文本文件,类似于Caffe的.prototxt配置文件,NetFile.txt文件用于配置都训练好之模子的层次,比如说,CNN
Layer的各层的相继,卷积层中的Padding和Stride的价值。图4凡一个拖欠文件的样例,更详细的底细可以参照说明文档[1]。

NetFile中呢可配备如下参数,allocated_ram:用于指定本框架可以分配的太老内存上线(见Section
3.4),execution_mode:用于指定是应用互动模式还是串行模式(见Section
3.5),auto_tuning:用于指定auto-tuning是否默认开启(见Section 3.6)。

希冀4:NetFile示例,如何配置AlexNet[20]的老三叠网络布局,
以及allocated_ram, execution_mode,auto_tuning参数的布置

3.3模子的施行

如果用训练好之型和对应的NetFile文件上传到了动设备后(图3),这个模型可以吃所于的Android
App轻易之调用(图5),具体的发如下几只步骤:

先是步,在和谐的App中依赖CNNdroid库,CNNdroid库只依赖Android
SDK,而休欲安装Android NDK的,也就是说,不指其他的老三方库。

第二步,构造RenderScript和CNNdroid对象(图5所显示之Steps
2和3)。CNNdroid的构造函数需要提供NetFile文件作为输入,并会自动的创立相应的网络层次。

末段,compute函数负责运用训练好的模子,计算传入的么图像或者批量图像并返结果。

祈求5: 使用CNNdroid库的几只重要调用步骤,
详细的运用方式可瞻仰开源库中的证明文档 [1].

3.4 内存分配

咱用都训练好之CNN模型,上传到手机的SD卡上,这些模型中包含了矩阵式的各层参数。在履行各个一样层前,在compute函数里(图5,step5),相应层的矩阵参数为电动的自SD卡上加载内存里,这会招大气的内存开销。

为减小这种内存开销,CNNdroid采用的点子是:保持有底重叠长期驻扎留在内存中,而其余的层每次都见面让创造及销毁。该选择过程开发者无需关注,在CNNdroid构造函数中活动完成(图5,step3)。选择器从不过要命之交汇开始,让尽量多之重叠进入选择器,直到上NetFile中allocated_ram参数指定的内存上限。

注意:allocated_ram参数不宜设置的了特别,比如说,Android
5.0当系统层就会见限制每个App的内存上限为512MB。

3.5 加速的计

以CNNdroid中,不同的交汇有例外之加快法。比如数据交互的卷积层和需大量凝聚计算的全连接层,就得因此到RenderScript的框架来促成活动端的GPU加速。

立有限层的大多数乘除好象征也点积。具体地吧,在卷积层中kernels与input
frames进行卷积;而在全连接层中,计算好代表为矩阵和向量的乘法。在运动装备上以GPU的SIMD单元可以长足之展开点积的精打细算。因此,我们分手了汪洋底向量,并且动用基于RenderScript框架的预定义点积函数来成功运算。也就是说,我们以软件层面体现了这种计算的并行性,而休像是基于CUDA的桌面计算框架库那样将及时类问题提交GPU的硬件调度程序。

对立于卷积层和全连接层,其它层的密集型计算相对比少。因此,它们经过多线程并发在差不多核CPU上开展加速。比较新鲜之是,由于ReLU层通常出现在卷积层或全连接层之后,所以将其放到到前的层中,可以以以多单图像传输时增长CNNdroid的习性。

除上述并行计算的实现之外,CNNdroid还连所有层的单线程顺序执行的贯彻。可以由此配备NetFile中之execution_mode参数,指定执行将凡逐一模式或并行模式(图4)。

3.6 自动调整

为了能在动设备上达到极致好之性,CNNdroid框架的GPU并行加速算法支持于每个GPU线程上实行机关配额,比如说调配该GPU线程的工作量及SIMD
ALUs的工作量。配额的参数调整决定了互相的粒度。

倘若以NetFile(图4)中开辟了auto-tuning,那么auto-tuner就会见以Android
App首浅开行时实行。auto-tuner会记录该运动装备上大都独预定义的现象下CNN模型的运转时长,用于调整最佳的配额参数。因此,首不良开行App需要花比丰富之辰。为了公平性以及更清的表述我们的试验,在第4省被,我们将关掉auto-tuning。

4.尝试评估

咱俩当三星的Galaxy Note 4和HTC One
M9进行了试验。采用的模子是几只正经的CNN网络:LeNet network for MNIST
dataset [21],Alex Krizhevsky’s network for CIFAR-10 (Alex’s CIFAR-10)
[22], Alex Krizhevsky’s network for ImageNet 2012 dataset (AlexNet)
[20].

规则CNN的叠设置如图6所出示。当移植到CNNdroid格式时,我们还统计了文件大小和内存占用。具体的结果一旦图7所出示。

咱的尝试环境是用手机充满电,同时进入飞行模式还要用屏幕亮度调整为最低。以下的尝试中,并不曾每次都起SD卡加载配置以及模型,因为在首先糟运行时刻就是加载到外存中了。每次我们且见面将16张图作为输入传被CNNdroid
App,接下测量输出的准确性和运行耗时同耗电量。

祈求6: 三种植标准的CNN网络的层次

图7: 在CNNdroid格式下以三种植标准CNN网络的文件大小以及内存消耗

4.1准确度

为测量CNNdroid的准确度,我们又用了CNNdroid和Caffe作对比实验。结果显示两者的结果方差是10底-12次方,也便象征CNNdroid的准确度和Caffe几乎同样。

4.2性能

图8显示了仅仅用CPU的线性运行CNN的运作耗时以及下GPU加速的运转耗时和加速的倍速。报告显示的价值是十次周转结果的平均值。

图8:(a)是CNN运行的平分耗时和增速的速率,(b)是举CNN中不过耗时的卷积层的耗时和增速速率

4.3能耗

咱俩使用“Qualcomm Trepn Profiler”应用程序[25]测HTC One
M9手机基于AlexNet网络布局的各个一样帧图像的功耗和能耗。
GPU加速实施时,消耗约523 mW功率和0.4 J能量,而单单用CPU执行时吃2338
mW功率和51.6 J能量。 因此,GPU加速实施消耗的电池消耗减少51.6÷0.4 =
129X。值得注意的凡,我们的测中来大致20%底动荡。

5.结论

咱介绍了CNNdroid:一个以Android平台上因GPU加速CNN网络的开源库。经过试验评估证明该库可以荣升60倍速,以及130加倍的能够耗节省。相关的代码和说明文档都已开源并揭示以Github上[1]。

6. 连锁引用

[1] CNNdroid open source GPU-accelerated library.
https://github.com/ENCP/CNNdroid.

[2] Inchul Song, Hyun-Jun Kim, and Paul Barom Jeon. Deep learning for
real-time robust facial expression recognition on a smartphone. In IEEE
International Conference on Consumer Electronics, pages 564–567, Jan
2014.

[3] Yu-Hsin Chen, Tushar Krishna, Joel Emer, and Vivienne Sze. 14.5
eyeriss: an energy-e cient reconfigurable accelerator for deep
convolutional neural networks. In IEEE International Solid-State
Circuits Conference, pages 262–263, Jan 2016.

[4] Mohammad Motamedi, Philipp Gysel, Venkatesh Akella, and Soheil
Ghiasi. Design space exploration of fpga-based deep convolutional neural
networks. In Asia and South Pacific Design Automation Conference, pages
575–580, Jan 2016.

[5] Paul A Merolla, John V Arthur, Rodrigo Alvarez-Icaza, Andrew S
Cassidy, Jun Sawada, Filipp Akopyan, Bryan L Jackson, Nabil Imam, Chen
Guo, Yutaka Nakamura, Bernard Brezzo, Ivan Vo, Steven K Esser,
Rathinakumar Appuswamy, Brian Taba, Arnon Amir, Myron D Flickner,
William P Risk, Rajit Manohar, and Dharmendra S Modha. A million
spiking-neuron integrated circuit with a scalable communication network
and interface. Science, 345(6197):668–673, 2014.

[6] Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev,
Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell.
Caffe: Convolutional architecture for fast feature embedding. arXiv
preprint arXiv:1408.5093, 2014.

[7] Torch.
http://torch.ch/.
Accessed 2016-08-01.

[8] James Bergstra, Olivier Breuleux, Fr ́ed ́eric Bastien,
Pascal Lamblin, Razvan Pascanu, Guillaume Desjardins, Joseph Turian,
David Warde-Farley, and Yoshua Bengio. Theano: a CPU and GPU math
expression compiler. In Proceedings of the Python for Scientific
Computing Conference, 2010.

[9] TensorFlow.
https://www.tensorflow.org.
Accessed 2016-08-01.

[10] Nvidia cuDNN.
https://developer.nvidia.com/cudnn.
Accessed 2016-08-01.

[11] cuda-convent.
https://code.google.com/p/cuda-convnet/.
Accessed 2016-08-01.

*[12] Velesnet.
https://velesnet.ml/.
Accessed 2016-08-01. *

[13] Caffe Android Library.
https://github.com/sh1r0/caffe-android-lib.
Accessed 2016-08-01.

[14] Torch-7 for Android.
https://github.com/soumith/torch-android.
Accessed 2016-08-01.

*[15] A convolutional neural network for the Android
phone.
https://github.com/radiodee1/
awesome-cnn-android-python. Accessed 2016-08-01. *

[16] Facial attractiveness prediction on Android.
https://github.com/eldog/fmobile.
Accessed 2016-08-01.

*[17] ARM. Mali-T600 Series GPU OpenCL, Version 1.1.0,
Developer Guide. Accessed 2016-08-01. *

*[18] Android RenderScript Developers Guide.
http://developer.android.com/guide/topics/
renderscript/compute.html. Accessed 2016-08-01. *

*[19] Messagepack.
http://msgpack.org/index.html.
*

[20] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E.Hinton. Imagenet
classification with deep convolutional neural networks. In Advances in
Neural Information Processing Systems, 2012.

[21] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based
learning applied to document recognition. Proceedings of the IEEE,
86(11):2278–2324, Nov 1998.

[22] Alex Krizhevsky. Learning multiple layers of features from tiny
images. Technical report, University of Toronto, 2009.

[23] Trepn power profiler.
https://developer.qualcomm.com/software/trepn-power-profiler.