大数据是什么样的业务流程图基本元素模型

大数据建模五步法
前一阵子,某网络公司发起了一个什么建模大赛,有个学员问我,数据建模怎么搞?
为了满足他的好学精神,我决定写这一篇文章,来描述一下数据分析必须要掌握的技能:数据建模。
本文将尝试来梳理一下数据建模的步骤,以及每一步需要做的工作。
第一步:选择模型或自定义模式
这是建模的第一步,我们需要基于业务问题,来决定可以选择哪些可用的模型。
比如,如果要预测产品销量,则可以选择数值预测模型(比如回归模型,时序预测……);如果要预测员工是否离职,则可以选择分类模型(比如决策树、神经网络……)。
如果没有现成的模型可用,那么恭喜你,你可以自定义模型了。不过,一般情况下,自己定义模型不是那么容易的事情,没有深厚的数学基础和研究精神,自己思考出一个解决特定问题的数学模型基本上是幻想。所以,自定义模型的事情还是留给学校的教授们去研究和开发吧。当前绝大多数人所谓的建模,都只是选择一个已有的数学模型来工作而已。
一般情况,模型都有一个固定的模样和形式。但是,有些模型包含的范围较广,比如回归模型,其实不是某一个特定的模型,而是一类模型。我们知道,所谓的回归模型,其实就是自变量和因变量的一个函数关系式而已,如下表所示。因此,回归模型的选择,也就有了无限的可能性,回归模型的样子(或叫方程)可以是你能够想到的任何形式的回归方程。所以,从某种意义上看,你自己想出一个很少人见过的回归方程,也可以勉强算是自定义模型了哈!
那么,这么多可选的模型,到底选择哪个模型才好呢?
我的答复是:天知道!
天知道应该选择哪个模型会好一些!你问我,我问谁啊?如果在这个时候有人告诉你,你的业务应该选择哪个回归方程会更好一些,那么,我敢肯定,你遇上的肯定是“砖家”而不是“专家”。模型的好坏是不能够单独来评论的(你往下看就知道了)!就如小孩子讨论的你爸爸好还是我爸爸好一样,你说谁好?
那么,是不是我们在选择模型时就得靠运气了?其实真有那么一点靠运气的成份,不过好在后续数学家们给我们提供了评估模型好坏的依据。
现在,我们只能靠运气来选择某一个模型了L。
y=β0+β1x
y=β0+β1x1+…+ βkxk
y=β0+β1x+β2x2
y=eβ0+β1x
y=β0+β1ln(x)
y=β0+β1x+β2x2+β3x3
y=eβ0+β1/x
y=β0eβ1x
y=β0+β1/x
第二步:训练模型
当模型选择好了以后,就到了训练模型这一步。
我们知道,之所以叫模型,这个模型大致的形状或模式是固定的,但模型中还会有一些不确定的东东在里面,这样模型才会有通用性,如果模型中所有的东西都固定死了,模型的通用性就没有了。模型中可以适当变化的部分,一般叫做参数,就比如前面回归模型中的α、β等参数。
所谓训练模型,其实就是要基于真实的业务数据来确定最合适的模型参数而已。模型训练好了,也就是意味着找到了最合适的参数。一旦找到最优参数,模型就基本可用了。
当然,要找到最优的模型参数一般是比较困难的,怎样找?如何找?这就涉及到算法了。哦,一想到算法,我的头就开始痛了,都怪当年数学没有学好呀!
当然,最笨的办法,我们可以不断的尝试参数,来找到一个最好的参数值。一个一个试?这不是要试到生命结束?开玩笑啦,不可能去一个一个试的啦。反正有工具会帮你找到最优参数的,什么最优化算法中的什么梯度上升呀梯度下降呀,你就不用操心了呀,这些留给分析工具来实现就可以了!
当然,一个好的算法要运行速度快且复杂度低,这样才能够实现快速的收敛,而且能够找到全局最优的参数,否则训练所花的时间过长效率低,还只找到局部最优参数,就让人难以忍受了。
第三步:评估模型
模型训练好以后,接下来就是评估模型。
所谓评估模型,就是决定一下模型的质量,判断模型是否有用。
前面说过,模型的好坏是不能够单独评估的,一个模型的好坏是需要放在特定的业务场景下来评估的,也就是基于特定的数据集下才能知道哪个模型好与坏。
既然要评估一个模型的好坏,就应该有一些评价指标。比如,数值预测模型中,评价模型质量的常用指标有:平均误差率、判定系数R2,等等;评估分类预测模型质量的常用指标(如下图所示)有:正确率、查全率、查准率、ROC曲线和AUC值等等。
对于分类预测模型,一般要求正确率和查全率等越大越好,最好都接近100%,表示模型质量好,无误判。
在真实的业务场景中,评估指标是基于测试集的,而不是训练集。所以,在建模时,一般要将原始数据集分成两部分,一部分用于训练模型,叫训练集;另一部分用于评估模型,叫测试集或验证集。
有的人可能会想,为什么评估模型要用两个不同的数据集,直接用一个训练集不就可以了?理论上是不行的,因为模型是基于训练集构建起来的,所以在理论上模型在训练集上肯定有较好的效果。但是,后来数学家们发现,在训练集上有较好预测效果的模型,在真实的业务应用场景下其预测效果不一定好(这种现象称之为过拟合)。所以,将训练集和测试集分开来,一个用于训练模型,一个用于评估模型,这样可以提前发现模型是不是存在过拟合。
如果发现在训练集和测试集上的预测效果差不多,就表示模型质量尚好,应该可以直接使用了。如果发现训练集和测试集上的预测效果相差太远,就说明模型还有优化的余地。
当然,如果只想验证一次就想准确评估出模型的好坏,好像是不合适的。所以,建议采用交叉验证的方式来进行多次评估,以找到准确的模型误差。
其实,模型的评估是分开在两个业务场景中的:
一是基于过去发生的业务数据进行验证,即测试集。本来,模型的构建就是基于过去的数据集的构建的。
二是基于真实的业务场景数据进行验证。即,在应用模型步骤中检验模型的真实应用结果。
第四步:应用模型
如果评估模型质量在可接受的范围内,而且没有出现过拟合,于是就可以开始应用模型了。
这一步,就需要将可用的模型开发出来,并部署在数据分析系统中,然后可以形成数据分析的模板和可视化的分析结果,以便实现自动化的数据分析报告。
应用模型,就是将模型应用于真实的业务场景。构建模型的目的,就是要用于解决工作中的业务问题的,比如预测客户行为,比如划分客户群,等等。
当然,应用模型过程中,还需要收集业务预测结果与真实的业务结果,以检验模型在真实的业务场景中的效果,同时用于后续模型的优化。
第五步:优化模型
优化模型,一般发生在两种情况下:
一是在评估模型中,如果发现模型欠拟合,或者过拟合,说明这个模型待优化。
二是在真实应用场景中,定期进行优化,或者当发现模型在真实的业务场景中效果不好时,也要启动优化。
如果在评估模型时,发现模型欠拟合(即效果不佳)或者过拟合,则模型不可用,需要优化模型。所谓的模型优化,可以有以下几种情况:
1)重新选择一个新的模型;
2)模型中增加新的考虑因素;
3)尝试调整模型中的阈值到最优;
4)尝试对原始数据进行更多的预处理,比如派生新变量。
不同的模型,其模型优化的具体做法也不一样。比如回归模型的优化,你可能要考虑异常数据对模型的影响,也要进行非线性和共线性的检验;再比如说分类模型的优化,主要是一些阈值的调整,以实现精准性与通用性的均衡。
当然,也可以采用元算法来优化模型,就是通过训练多个弱模型,来构建一个强模型(即三个臭皮匠,顶上一个诸葛亮)来实现模型的最佳效果。
实际上,模型优化不仅仅包含了对模型本身的优化,还包含了对原始数据的处理优化,如果数据能够得到有效的预处理,可以在某种程度上降低对模型的要求。所以,当你发现你尝试的所有模型效果都不太好的时候,别忘记了,这有可能是你的数据集没有得到有效的预处理,没有找到合适的关键因素(自变量)。
不可能有一个模型适用于所有业务场景,也不太可能有一个固有的模型就适用于你的业务场景。好模型都是优化出来的!
正如数据挖掘标准流程一样,构建模型的这五个步骤,并不是单向的,而是一个循环的过程。当发现模型不佳时,就需要优化,就有可能回到最开始的地方重新开始思考。即使模型可用了,也需要定期对模型进行维护和优化,以便让模型能够继续适用新的业务场景。
大数据主讲老师
大数据培训系列之一
《数据建模》
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点您所在的位置: &
大数据技术贴:构建一个有指导的数据挖掘模型(1)
大数据技术贴:构建一个有指导的数据挖掘模型(1)
LinkinPark
什么是有指导的数据挖掘方法模型,以及数据挖掘如何构建模型。在构建一个有指导的数据挖掘模型,首先要理解和定义一些模型试图估计的目标变量。一个典型的案例,二元响应模型,如为直接邮寄和电子邮件营销活动选择客户的模型……
498)this.width=498;' onmousewheel = 'javascript:return big(this)' class="size-full wp-image-13724 aligncenter" alt="大数据" src="http://s8.51cto.com/wyfs02/M02/4B/D7/wKioL1Q0sBvT8RYDAACAiBXv8-k593.jpg" width="494" height="348" data-bd-imgshare-binded="1" data-tag="bdshare" />
数据挖掘的目的,就是从数据中找到更多的优质用户。接着。什么是有指导的数据挖掘方法模型,以及数据挖掘如何构建模型。在构建一个有指导的数据挖掘模型,首先要理解和定义一些模型试图估计的目标变量。一个典型的案例,二元响应模型,如为直接邮寄和电子邮件营销活动选择客户的模型。模型的构建选择历史客户数据,这些客户响应了以前类似的活动。有指导数据挖掘的目的就是找到更多类似的客户,以提高未来活动的响应。
这构造有指导的数据挖掘模型的过程中,首先要定义模型的结构和目标。二、增加响应建模。三、考虑模型的稳定性。四、通过预测模型、剖析模型来讨论模型的稳定性。下面我们将从具体的步骤谈起,如何构造一个有指导的数据挖掘模型。
有指导数据挖掘方法:
把业务问题转换为数据挖掘问题
选择合适的数据
创建一个模型集
修复问题数据
转换数据以揭示信息
498)this.width=498;' onmousewheel = 'javascript:return big(this)' class="size-medium wp-image-13707 aligncenter" alt="有指导数据挖掘过程" src="http://s9.51cto.com/wyfs02/M02/4B/D5/wKiom1Q0r-Tz5Gs-AABkMOXYLAQ884.jpg" width="589" height="429" data-bd-imgshare-binded="1" data-tag="bdshare" />
(有指导数据挖掘方法模型)
1、把业务问题转换为数据挖掘问题
《爱丽丝梦游仙境》中,爱丽丝说&我不关心去哪儿&。猫说:&那么,你走哪条路都没什么问题&。爱丽丝又补充到:只要我能到达某个地方。猫:&哦,你一定能做到这一点,只要你能走足够长的时间。&
猫可能有另外一个意思,如果没有确定的目的地,就不能确定你是否已经走了足够长的时间。
有指导数据挖掘项目的目标就是找到定义明确的业务问题的解决方案。一个特定项目的数据挖掘目标不应该是广泛的、通用的条例。应该把那些广泛的目标,具体化,细化,深入观察客户行为可能变成具体的目标:
确定谁是不大可能续订的客户
为以家庭为基础的企业客户设定一个拨打计划,该计划将减少客户的退出率
确定那些网络交易可能是欺诈
如果葡萄酒和啤酒已停止销售,列出处于销售风险的产品
根据当前市场营销策略,预测未来三年的客户数量
有指导数据挖掘往往作为一个技术问题,即找到一个模型以解释一组输入变量与目标变量的关系。这往往是数据挖掘的中心,但如果目标变量没有正确的定义以及没有确定适当的输入变量。反过来,这些任务又取决于对要解决的业务问题的理解程度。没有正确的理解业务问题就没办法把数据转化为挖掘任务。在技术开始之前,必须认识两个问题:如何使用结果?以何种方式交付结果?
上述两个问题,都是建立在客户的真正需求是什么?而不是作为数据挖掘工程师认为的什么是有用的数据,什么对客户最好的数据。这些结果看似有利于客户提高销售额,但是我们交付的结果是什么,我们有理解客户的需求吗?所有前提,不要着急急着动手,先理解真正需求,不可盲目主断。
1.1如何使用结果?
例如:许多数据挖掘工作旨在提高客户保留
主动向高风险或高价值的客户提供一个优惠,挽留他们
改变获取渠道的组合,以利于那些能带来最忠实客户的渠道
预测未来几个月的客户数量
改变会影响客户的满意度的产品的缺陷
这些目标都会对数据挖掘过程产生影。响。通过电话或直接邮寄的营销活动接触现有客户,意味着除了确定客户风险之外,你要了解为什么他们处于风险中,从而可以构造一个有吸引力的优惠。电话,不能过早或过迟。预测意味着除了确定那些客户可能离开,确定有多少新客户加入,以及他们会停留多久。而新客户的加入,不只是意味着预测模型要解决的问题,还是被纳入到业务目标和预算之中。
1.2如何交付结果?
有指导的数据挖掘项目可能会产生几个不同类型的交付形式。交付形式往往是一个报表或充满图标和图形的简报。交付形式会影响数据挖掘的结果。当我们的目的是提醒销售惊雷时,产生一个营销测试的客户列表是不够的。所谓的如何交付结果,就是在挖掘结果产生之后,我们要如何给用户提供这个结果,目的是好的,但实际的过程中会遇到,会遇到我们没有办法去交付这个结果。因为,你交付的结果,可能会导致一些本不该流失的客户,却流失了。这也是在具体工作之前,我们要考虑的问题。
数据挖掘人员的作用是确保业务问题的最后表述可以被转换成一个技术问题。前提是正确的业务问题。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' class="size-full wp-image-13725 aligncenter" alt="数据挖掘" src="http://s2.51cto.com/wyfs02/M02/4B/D7/wKioL1Q0sBzRw0rTAADZ5nQd45M384.jpg" width="600" height="408" data-bd-imgshare-binded="1" data-tag="bdshare" />
内容导航&第 1 页: &第 2 页:
关于&&的更多文章
Spark是一个高效的分布式计算系统,发源于美国加州大学伯克利分
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 83人学习过讲师: 111人学习过讲师: 34人学习过
借助Google的三大论文,Hadoop打开了低成本海量数据处
春运大军前天正式启动了。昨天的新闻有几条不怎么好的
每年的一月份大约都是在看似忙忙碌碌中度过的。最近一
本书是AJAX之父的经典之作。本书用简洁的语言系统化地诠释了设计、技术和商业融合是最重要的发展趋势。全书共8章,包括关于用户
51CTO旗下网站广点通背后的大数据技术秘密——大规模主题模型建模及其在腾讯业务中的应用(附PPT)
12月14日,腾讯广点通高级研究员靳志辉在2014中国大数据技术大会上发表演讲,题为《Peacock: 大规模主题模型及其在腾讯业务中的应用》。腾讯广点通高级研究员靳志辉(Rickjin)所在的广点通部门,承接的流量一天接近150亿,他希望用技术帮助腾讯更好地处理这些流量,具体而言就是通过大规模主题模型学习系统 Peacock找出用户在网络数据深层的密码。“我们觉得互联网需要挖掘长尾的语义,主题模型能够突破传统处理的一些限制挖掘数据里面深层的隐含的语义。以下为作者演讲实录。
相关阅读:
21页PPT重磅发布:Mariana——腾讯深度学习平台的进展与应用
33页PPT|腾讯社交网络的大数据建模框架探索报告
重磅推荐:129页PPT讲述移动时代创业黄金法则 via:腾讯企鹅智酷
重磅!50页PPT揭秘腾讯大数据平台与推荐应用架构
36页PPT│大数据分析关键技术在腾讯的应用服务创新
大家好,我来自腾讯的效果广告平台部,参与开发的广告平台是广点通,广点通目前是腾讯最大的效果广告平台,每天承接的流量接近150亿PV,未来其实应该会达到200亿PV的流量,这是非常海量的流量。作为技术人员,我们在腾讯的梦想就是希望腾讯变成更加技术型的公司。我们团队在广告部门所负责的主要工作是各种机器学习工具的开发,以及利用机器学习工具处理腾讯的用户数据挖掘。之前互联网广告业务有两大机器学习系统,第一大系统 Logistic Regression,广泛用于广告点击率预估;第二大系统就是隐含主题建模(Latent Topic Model)。这两大系统早期都是由谷歌推动的,然后传播到国内的各个互联网公司。当然,现在由于深度学习的兴起,最近广告业务中又增加了一套基于 DNN 的系统。
在隐含主题模型方向上,我们从 2010 年开始就不断的做一些探索,我今天要讲的Peacock 系统就是我们团队在主题模型建模上的工作。今天的报告主要分成如下几个部分:我先Demo一下我们Peacock系统是如何工作的,随后简单介绍一下主题模型的背景,接着介绍Peacock是怎么来实现大规模并行计算的,最后我们讲一下主题模型在腾讯业务中的应用。
先来讲几个例子。用户在网络上的行为会留下很多的数据,其中最典型是一些文本数据,你搜索的一些文章,你发的微博,我们通过自然语言处理技术理解这些词。第一个例子是用户搜索了“红酒木瓜汤”,这样的Query给它展示什么广告? 单纯的从关健词来说,多是酒或者水果。第二个词是“苹果”,苹果实际上是多义词,可以是水果也可以是手机。第三个词“莫代尔”,在座的估计很多人不知道这个词是什么意思。
如果我们把这些词输入Peacock系统,我们看看系统会产生什么样的输出。我们可以看到Peacock 系统打印出很多行,每一行其实代表一个主题(topic),“红酒木瓜汤”系统给出的第一个主题的语义解释是 “减肥、丰胸、美容” ,从广告系统的角度,如果能够展现跟女性减肥、丰胸更相关广告,这个点击率可能高。我们发现整个Peacock的系统处理文本语义的时候,不同的主题有不同的权重,展现的时候按照主题权重排序,而每个主题用一包词描述。
我们看下一个例子,我们如果把”苹果”输入Peacock,我们打印出来几行,第一行 ” 苹果、收集、iphone、电脑…” 基本上讲苹果手机,第二行”范冰冰、苹果、电影、佟大为…”,这一行就是讲范冰冰和佟大为拍的《苹果》电影。第三行还是讲手机,第四行” 千克、大米、苹果…”,这个是讲水果。 所以系统对”苹果” 给出了多义词的解释。我们改一下输入,比如说输入”苹果大尺度”,我们会发现这时候排在第一位不再是苹果手机,排在第一位是范冰冰《苹果》电影。从语义排序来说,传统的排序处理方式很难发现这个语义是跟电影相关的。如果把输入修改为”苹果价格”,我们发现,这个系统排在第一位就是苹果手机。
最后一个例子”莫代尔”,Peacock 输出的第一个语义是什么?”内衣、饱暖、性感…”, 之前我并懂这个词,这个词我们在网络上搜一下才发现,莫代尔是一种内衣的材料,一般男性都不太清楚,女性可能知道。所以对于一些长尾语义,系统也能挖掘出来。
总体上这是我们系统做的事,我们把系统命名为Peacock,孔雀,原因我们是觉得互联网需要挖掘长尾的语义,主题模型能够突破传统处理的一些限制,挖掘数据里面深层的隐含语义。这个系统是由王益博士主导设计的,我们团队从2010年开始陆续折腾了四年,在这个方向有很大投入。
接下来我们讲一下主题模型一些背景。在座的来自各行各业,有可能有人不太清楚什么是隐含主题模型,我用几张幻灯片介绍一下主题模型背后的含义。传统的文本建模,譬如语言模型建模,基本假设是一个词按照概率跳跃到下一个词再跳跃到下一个词,这种 NGram模型解决语音识别、机器翻译的时候非常有效。另外一种文本建模的方式就是隐含主题模型,这个假设是怎么样的?是说人写文章的时候其实先设定主题,然后由主题生成词的,而不是第一个词生成下一个词。举一个例子,假设一个记者想写一篇文章报道我们技术大会,文章可能有不同的几个主题,我们把不同的主题理解为用词的不同,讲到计算机这个主题,可能会用到”内存、硬盘、CPU、编程语言、C++ …”等这些词,讲到晚宴这个主题的时候,可能会用到 “晚宴、酒…” 这些词。 在建模的时候,主体模型认为,不同的主题是用词的概率分布来描述的。
基于上面的假设,我们实际上是使用一个三层结构(幻灯片上的)在写文章的:黑节点代表文档,中间的不同颜色节点是不同的主题, 蓝色节点代表词。每个词在文档中的生成过程是:文档先选定一个主题,然后由主题选定一个词,这就是最传统的主题模型。这里面问题是这样的:我们做了这个模型假设以后,其实我们观察到是文档和词,左边和右边的节点是我们观察到的,中间这一层节点是隐含层我们观察不到。文档和主题之间的边上有概率分布,主题和词之间的边上也有概率分布,每一条边粗细的区分意思是说概率不一样。
这个模型中我们假设每一条边表示一个概率值,对应一个模型参数。 这个是传统频率派的模型,叫 PLSA 模型,在贝叶斯统计理论框架下,任何一个参数都是随机变量,每一个概率边对应的模型参数都有一个先验分布,引入这个先验后PLSA模型就被改造成了LDA 模型。在主题模型中,整个文档生成过程就是走概率路径选词的过程。譬如,这个词可以从红色这条路径生成,也可以从绿色、蓝色这条路径走。如果说文档生成的时候,中间的隐含主题层能够被观察到,模型训练实际上就变得特别简单:参数预估的时候统计数数就行了,把数数出来频率计数放在每条边上,最后做一个 Normalization 就变成一个参数概率预估值。
问题是中间的隐含层是观察不到的,观察不到的时候应该怎么做?这个模型怎么训练?数学家给我们提供了一种漂亮的方式:分三步就可以把模型训练出来。
第一步,中间的隐含主题我们不知道,那首先每个词的主题随机给。譬如第一篇文章,我们让第一个词走红色这条路径生成出来,第二个词也走红色路径,第三个词走蓝色路径,每一个词走哪个路径先随机给。随机给完以后我们可以数数了。左边的边上数出文档到主题的计数,右边的边上数出主题到词的计数,有了这些计数就可以估计模型的两类参数:文档到主题的概率值和主题到词的概率值。于是每一条边上都有模型参数的概率估计值。
第二步,就是重新的采样每个词对应的主题,物理含义就是按照概率分布重新走路径。对每一个词我重新选一条路径,第一个词刚开始走红色这条路径,现在评估一下走红色这个路径好不好,这个词有三条路径走到这里,走红色、绿色、蓝色,我们把三条路径概率都算出来,原来走红色的路径我重新采样之后变成走蓝色的这条路径。整个模型训练里面就是对每一个词重新走一下路径,如果原来走红色现在走蓝色了,红色路径的频率计数减1,蓝色路径变成加1。第三步,重复上面的采样过程,这直到模型收敛。 只要不断简单迭代每一个词,确定一下应该走哪个路径,然后整个语料大约迭代200遍,这个模型就能收敛,非常简单。所以这个模型训练我们其实做什么事情?每一个词我们只要随机给完以后,我们对每一个词的主题做重新的采样,确定一下原来路径好不好,不好我就调整一下,唯一做的事情就是在所对应的路径的边的上做统计计数,这个就是LDA 主题模型的直观解释。
就是这么一个简单的模型要把它做大规模并不容易。去年之前没有人把这个模型中间层做大,做到100万的主题,我们实际的工业应用中遇到了很多问题,我们团队遇到很多的问题,有三个问题我们列在这里。
第一个问题就是如何提升采样的速度,也就是说你从一条路径换到另外一条路径的时候,换的速度太慢了,我们需要有一个更好的算法,把这条路径切换到另一条路径。传统的算法里面,我要算每一条路径的概率值,然后从中挑一个路径,如果有100万个主题就需要一百万次计算,这个太慢了,工程上受不了。
第二个如何支持大数据大模型,我们互联网都是以亿、百亿论,左边文档是亿级,右边词汇是百万级,中间我们希望是百万级,两年前学术界最多做到一万,当时我们团队开发Peacock 的时候,定位就是说我们做到一百万主题。
第三个问题就是说如何提升模型的质量,我们做工业的应用一定把这个模型质量提升,超参数 α和β在模型质量提升中有重要影响。
整个Peacock对这三个问题的解答。第一个对于速度,我们用了一个新的算法叫做SparseLDA,速度可以比标准算法快30倍;第二个怎么支持大数据大模块,我们说矩阵分块并行计算。我们支持中间的隐层达到100万个; 第三个问题是模型质量问题,每一个迭代中我们对α和β做一些优化,后期我们做细节讨论会对模型质量有很大提升。
第一个问题我展开讲一下,标准LDA采样,如果有100万个主题我要做100万次计算,但是一个文档通常是10 个词左右,你去随机化的时候每一个词打一个颜色也就是你这个文档有十几个颜色,这是sparse的结构,利用这个 sparse 的结构就可以大大提升计算速度,于是工程应用上就不是问题了。 当然现在 SparseLDA 已经不是最快的算法了,今年研究界又一次把采样算法提升了。
第二个问题是我们有十亿篇文档、百万的词汇,百万的主题,我们怎么做模型的并行和数据的并行。我们把整个的数据用一个矩阵来表示,我们希望去做数据并行和模型并行,数据并行上在机器学习界早就解决了问题,简单的做法是,整个数据并行的过程当中,数据分块以后每一个数据生成局部模型,然后归并为一个全局模型,最后把全局模型回传回来更新每一个局部模型。这里面有一个问题有可能我们模型太大了,无法存在单机的内存里。所以我们要考虑对模型也并行化。 我们做一个更好的设计就是把模型和数据同时做,切片成 3*3 九宫格的格式,然后我们按照网格对角线的方式进行并行,所以这时候我们发现至少三个worke可以并行工作不相互干扰,没有任何加锁的困扰。我们现在在这边实际上画了三个,在实际的过程当中把数据和模型都切成N份。这条对角线上的三个可以并行工作,同样第二条对角线和第三条对角线上的worker 也是可以并行工作的。所以这就大大提高了计算的并行性,提升了计算效率。
第三个问题我们讲模型质量的优化,标准LDA训练过程中,对于α和β的数参是人工指定的,譬如α= 0.01。 这个代表什么含义?我们做模型训练的时候实际上对每条边做频率计数,数完以后,如果说一条边没有计数那么这个概率就是零。不过在贝叶斯学派认为这个不应该是零,应该填一个很小的值做一个概率平滑,我们可以填一个0.01很小的数值,这样这个路径还是走得通的,这个走得通代表模型具有探索能力。α和β在模型中就是起了这样的作用。给一个α= 0.01使得模型有探索的能力,会探索这个路径好不好,下次更新模型,这个路径好就把老的丢掉了,未来可以重新不断的走这个更好的路径,好的路径概率质量越来越高,差的路径概率越来越低,于是模型质量有自我提升的能力。每个训练迭代中我们对α做一个优化做一个最大似然估计,然后可以观察到整个模型质量非常大的提升。
我最后一部分讲一下Peacock在腾讯业务中的应用,我们把隐含主题模型应用到了腾讯的多个业务中。 腾讯有大量的用户数据,我们在广点通做用户行为的挖掘,从两个角度看用户行为数据,第一个传统的NLP的角度,文本处理的角度;第二个从推荐系统的角度。从文本的角度,我们把Peacock输出放到每个文本里面,使得每个文本可以表示出更好的语义特征,用新的语义特征处理文本的相似度计算,效果会好得多。在腾讯里面我们有NLP的工具,我们开发分词,我们同时要做分类,topic可以认为是一种聚类,把 topic 加到模型中作为特征,提升整个语义处理的能力。在实际业务中的应用,我们曾经优化过广告相关性,把 topic 加到整个相关性计算中,搜索的相关性准确度提升很显著。
另外一点从推荐系统角度理解语义挖掘。腾讯业务中的一个更大的矩阵就是QQ到QQ群矩阵,预处理之后的规模大约是 7亿X2亿。我们用 Peacock 分解这个大矩阵。 可以发现分解出来的很多主题是有意义的。 在这里我们没有做任何文本的处理,我们按照用户加入QQ群的拓扑结构链接关系来做挖掘的。 我们看这3个挖掘到的主题的含义, 这是关于股票的,这是关于游戏的,这些是关于妈妈群的,语义都非常明确。
最后我们再谈一些QQ群的应用。我们把 Peacock分解出来的一些主题作为特征,加入分类器中进行训练,显著提升分类效果。 Peacock 在QQ群的应用中,最后讲一点是 QQ 群推荐。 最早QQ群推荐是基于朋友关系链的方式做的,即把你的朋友喜欢的 QQ 群推荐给你。现在我们用推荐系统的思路,基于Peacock做 QQ-QQ群矩阵分解,然后利用分解后的矩阵做推荐计算。 线上实验效果非常好,原来点击率本来不低可以到20%,我们优化以后提高了接近3 倍。
最后简单总结一下,LDA 是简单、优雅、实用的模型,我们实现Peacock 就是希望这个模型能够应对当今互联网的大数据,同时把它推向产品应用,谢谢!
(免责声明:本网站内容主要来自原创、合作媒体供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )
合作媒体:

我要回帖

更多关于 模型设计图片 的文章

 

随机推荐