阿里巴巴菜鸟级数据产品经理半年回顾总结篇
干货教程:如何绘制业务流程图(二)
干货教程:如何绘制业务流程图(一)
技术贴:如何在数据库中秘密地查询隐私数据
攻略教程:信息图(infographic)是怎么做出来的?
分析师一定要看!用数据讲故事的五个步骤
技术篇:怎样玩转千万级别的数据?
北漂书生:大数据时代SEO数据如何搜集和分析
干货,从十大问题重新认识并读懂互联网
相似图片搜索、算法、识别的原理解析(下)
相似图片搜索、算法、识别的原理解析(上)
制作信息图时请遵循这10条原则
提高表格可读性的一些技巧,适用于Excel、PPT等数据报表
实用教程:如何让Excel图表更具“商务气质”?
一张数据信息图是这样制作完成的
菜鸟读财报,如何从上市公司财报中挖情报?
北大数据分析老鸟写给学弟们一封信
如何一步一步制作出高品质数据信息图?
总结:海量数据分析处理的十个方法
【实战经验】数据分析师如何了解老板真正想法?
零售业数据分析那些事儿
数据分析时l常用电子表格公式【大全】
用数据来告诉你 上市公司财报的秘密
这12个数据能 帮你搞定淘宝店铺
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(四)
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(三)
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(二)
首席工程师揭秘:LinkedIn大数据后台是如何运作的?(一)
淘宝网店从激活到挽留,4步走玩转数据营销
文案怎样写才有意思、不空洞、打动人?
入门级扫盲贴:数据分析的步骤有哪些?
关系即数据,论社交媒体的关系转换
数据的力量,苹果教你用数据鄙视竞争对手
谁说文科生不能做数据分析?数据分析入行→技能提升→优势
产品运营数据分析——SPSS数据分组案例
如何追踪iPhone和iPad等移动设备的用户行为数据?
阿里巴巴中国站:用户满意度指标权重计算方法
广告中的AdNetwork、AdExchange、DSP、SSP、RTB和DMP是什么?
信息图制作教程:关于数值的表现
为什么大数据会如此轰动?(值得深度的文章)
多图技术贴:深入浅出解析大数据平台架构
面板数据分析中标准误的估计修正——根据Peterson (2009)的归纳
财务官、投资人、CIO看过来:给企业数据定价
推荐系统中常用算法 以及优点缺点对比
探索Weotta搜索引擎背后的大数据技术
如何识别虚假数据?
为什么我们像驯化小狗那样驯化算法
程序员必须知道的10大基础实用算法及其讲解
电子商务:最影响转化率的九大要素
如何迅速成为一名数据分析师?
想从事大数据、海量数据处理相关的工作,如何自学打基础?
如何用亚马逊弹性MapReduce分析大数据?
译文:机器学习算法基础知识
给hadoop新手的一封信:Hadoop入门自学及对就业的帮助
从入门到精通,我是这样学习算法的
小商家,从老客户身上获取的数据才更有意义
13页PPT讲述:大数据下网站数据分析应用
40页PPT详解:京东大数据基础构架与创新应用
67页PPT解密搜索引擎背后的大技术:知识图谱,大数据语义链接的基石
营销洞察力——10个营销度量指标
技术篇:前端数据之美如何展示?
董飞:美国大数据工程师面试攻略【PPT】
easel:如何制作好的信息图——来自专家的顶级技巧
大数据实操:以3D打印机为例,如何知道卖点有没有市场需求?
大数据建模 需要了解的九大形式
用户画像数据建模方法
从规划开始,公司or企业如何入手和实施大数据?
干货:商品信息数据分析和展现系统的设计与开发
高手教你用Excel制作百度迁徙数据地图
50篇干货:淘宝店/电子商务如何玩转数据分析?
精华索引:大数据实际应用案例50篇
验证最小化可行产品 (MVP) 的 15 种方法
干货:数据分析师的完整知识结构
大数据技术Hadoop面试题,看看你能答对多少?答案在后面
用SPSS做数据分析?先弄懂SPSS的基础知识吧
怎样做出优秀的扁平化设计风格PPT? 扁平化PPT设计手册#3
解答│做大数据过程中遇到的13个问题
40页PPT│社交网络发展的新动力:大数据与众包
以Amazon、豆瓣网为例,探索推荐引擎内部的秘密#1
怎样做出优秀的扁平化设计风格PPT?#2
怎样做出优秀的扁平化设计风格PPT?#1
36页PPT│大数据分析关键技术在腾讯的应用服务创新
如何丰满地做SWOT分析?
【35页PPT】TalkingData研发副总阎志涛:移动互联网大数据处理系统架构
27页PPT|以珍爱网为例,如何构建有业务价值的数据分析系统?
国外数据新闻资源分享
21页PPT重磅发布:Mariana——腾讯深度学习平台的进展与应用
从0到100——知乎架构变迁史
PPT解读:百度大数据质量保障方案探索
45页PPT|大数据环境下实现一个O2O通用推荐引擎的实践
从数据看豆瓣兴衰
深度学习系列:解密最接近人脑的智能学习机器——深度学习及并行化实现(四)
重磅推荐:129页PPT讲述移动时代创业黄金法则 via:腾讯企鹅智酷
重磅推荐:大数据工程师飞林沙的年终总结&算法数据的思考
OpenKN——网络大数据时代的知识计算引擎
大数据下城市计算的典型应用
技术贴:大数据告诉你,如何给微信公众号文章取标题?
你的QQ暴露了你的心——QQ大数据及其应用介绍PPT
如何从企业报表看企业的生存能力?
实用的大数据技巧合集
技术帝揭秘:充电宝是如何盗取你的个人隐私的?
重磅!50页PPT揭秘腾讯大数据平台与推荐应用架构
原创教程:饼图之复合饼图与双层饼图(1)
PPT:大数据时代的设计特点——不了解这个你做不了今天的设计
教程贴:如何用方程式写春联?
原创教程:如何用Excel制作简易动态对比图
深度译文:机器学习那些事
教程帖:数学之美——手把手教你用Excel画心(动态图)
董老师走进斯坦福,聊聊硅谷创业公司和大数据的事儿(附课件PPT下载)
【限时】年度钜献,108个大数据文档PDF开放下载
董飞专栏:大数据入门——大数据相关技术、Hadoop生态、LinkedIn内部实战
亿级用户下的新浪微博平台架构
一张图了解磁盘里的数据结构
浅析数据化设计思维在阿里系产品的应用
美团推荐算法实践
一个P2P创业公司有哪些部门,都是做什么的?
一个P2P平台的详细运营框架是怎样的?
机器学习中的算法——决策树模型组合之随机森林与GBDT
神经网络简史
58页PPT看懂互联网趋势,大数据/物联网/云计算/4G都有了
广点通背后的大数据技术秘密——大规模主题模型建模及其在腾讯业务中的应用(附PPT)
微信红包之CBA实践PPT——移动互联网海量访问系统设计
一文读懂机器学习,大数据/自然语言处理/算法全有了……
搜狐新闻客户端的背后大数据技术原理——推荐系统(PPT)
原创教程:用Excel做动态双层饼图
半小时读懂PMP私有广告交易市场
怎样分析样本调研数据(译)
PPT:支付宝背后的大数据技术——DataLab、Higo的实践及应用
大数据技术人员的工具包——开源大数据处理工具list(限时下载)
计算机视觉:随机森林算法在人体识别中的应用
24页PPT:机器学习——支持向量机SVM简介(附下载)
互联网高手教你如何搜集你想要的信息
深度:对地观测大数据处理、挑战与思考
原创教程:用Excel做饼图之复合饼图与双层饼图(2)
移动大数据时代: 无线网络的挑战与机遇(附pdf下载)
Excel使用技巧——25招必学秘技
【年度热门】加上这些 Excel 技能点,秒杀众人(多图)
原创教程:用Excel做纵向折线图
知识图谱——机器大脑中的知识库
何明科专栏:用数据化的方式解析投资条款
DT时代,如何用大数据分析创造商业价值(23页PPT)
MIT牛人梳理脉络详解宏伟现代数据体系
你的老婆是怎么算出来的?揭秘佳缘用户推荐系统
飞林沙:商品推荐算法&推荐解释
PPT:如何成为真正的数据架构师?(附下载)
开源大数据查询分析引擎现状
董飞专栏:打造数据产品必知秘籍
译文:如何做强大又漂亮的信息图
如何使用Amazon Machine Learning构建机器学习预测模型
如何运用数据协助货架管理(内附26张PPT)
SVM算法
主流大数据系统在后台的层次角色及数据流向
PPT:阿里全息大数据构建与应用
人脸识别技术大总结——Face Detection & Alignment
教程:用Excel制作成对条形图
易观智库:大数据下的用户分析及用户画像(18页PPT附下载)
技术向:如何设计企业级大数据分析平台?
电商数据分析基础指标体系
IBM SPSS Modeler 决策树之银行行销预测应用分析
拓扑数据分析与机器学习的相互促进
基于 R 语言和 SPSS 的决策树算法介绍及应用
用php做爬虫 百万级别知乎用户数据爬取与分析
另类新浪微博基本数据采集方法
以10万+阅读的文章为例 教你做微信公众号的运营数据分析
破解数据三大难题:变现?交易?隐私?
微店的大数据平台建设实践与探讨
阿里巴巴PPT:大数据基础建议及产品应用之道
基于社会媒体的预测技术
人工智能简史
技巧:演讲中怎样用数据说话
马云和小贝选谁做老公?写给非数据人的数据世界入门指南
掘金大数据产业链:上游资源+中游技术+下游应用
原创教程:手把手教你用Excel做多层折线图
销售分析:如何从数据指标发现背后的故事
如何一步步从数据产品菜鸟走到骨干数据产品
也来谈谈微博的用户画像
行走在网格之间:微博用户关系模型
如何拍出和明星一样美爆的自拍照?斯坦福大学用卷积神经网络建模告诉你
运营商如何玩转大数据? 浙江移动云计算和大数据实践(PPT附下载)
大数据分析的集中化之路 建设银行大数据应用实践PPT
腾讯防刷负责人:基于用户画像大数据的电商防刷架构
创业提案的逻辑
友盟分享 | 移动大数据平台架构思想以及实践经验
寻路推荐 豆瓣推荐系统实践之路
“小数据”的统计学
重磅!8大策略让你对抗机器学习数据集里的不均衡数据
小团队撬动大数据——当当推荐团队的机器学习实践
微博推荐架构的演进
科普文 手把手教你微信公众号数据分析
信息图制作的六个注意点
【权利的游戏】剧透新玩法:情理之中?意料之外
推荐系统(Recommender System)的技术基础
核心算法 谷歌如何从网络的大海里捞到针
Quora数据科学家和机器学习工程师是如何合作的
阿里巴巴PPT:大数据下的数据安全
数据建模那点事儿
全民拥抱Docker云–Lhotse系统经验分享
实时股票分析系统的架构与算法
架构师必看 京东咚咚架构演进
什么叫对数据敏感?怎样做数据分析?
推荐系统基础知识储备
刘德寰:数据科学的整合与细分 数据科学的七个危险趋势(视频)
实际工作中,如何做简单的数据分析?
分布式前置机器学习在威胁情报中的应用(附PPT下载)
数据科学 怎样进行大数据的入门级学习?
扛住100亿次请求 如何做一个“有把握”的春晚红包系统?(PPT下载)
从 LinkedIn 的数据处理机制学习数据架构
大数据会如何改变管理咨询公司(I)
优秀大数据GitHub项目一览
生硬的数字和数据新闻:这么近,那么远
经典大数据架构案例:酷狗音乐的大数据平台重构(长文)
揭秘中兴大数据在银行领域的系统部署
基于大数据的用户画像构建(理论篇)
【R】支持向量机模型实现
数据图处处有陷阱?五个例子教你辨真伪
如何用R绘制地图
你确定你真的懂用户画像?
数据模型需要多少训练数据?
【接地气】01 数据报表的颜色怎么配
游戏价值和数据分析新思路
【R】异常值检测
快的打车架构实践
豆瓣还是朋友圈:大数据、新方法和日常问
PPT数据图表,怎么做才好看?
大道至简的数据体系构建方法论
数据的误区及自身业务
新浪微博的用户画像是怎样构建的?
面试干货!21个必知数据科学面试题和答案part1(1-11)
易观智库:中国大数据产业生态图谱2016(附下载)
Airbnb的数据基础架构
50PB海量数据排序,谷歌是这么做的
大数据时代工程师如何应对–今日头条走进硅谷技术讲座
D3.js教学记(下)
D3.js教学记(上)
飞林沙:企业级服务公司如何赚钱?只有平台级产品才有大数据的理论
一个母婴电子商务网站的大数据平台及机器学习实践
7大板块 组成数据分析师的完整知识结构
干货:SaaS领域如何分析收入增长?
学术 | 词嵌入的类比特性有实用意义吗?
6个用好大数据的秘诀
一个数据库外行眼中的微信优化 (附专家补充)
大数据调研,如何实现快全准?
数据大师Olivier Grisel给志向高远的数据科学家的指引
数据堂肖永红:数据交易的是使用权或数据的增值,而不是数据本身(PPT附下载)
淘宝商品详情平台化思考与实践
刘译璟:百分点大数据理念和实践(图文+PPT下载)
如何快速搞定一份看起来还不错的演示文档?
【BABY夜谈大数据】决策树
数据驱动设计:数据处理流程、分析方法和实战案例
美图数据总监:Facebook的法宝,我们在产品中怎么用?
树的内核:量化树结构化数据之间的相似性
拿到用户数据之后,LinkedIn怎么赚钱?
GrowingIO张溪梦:增长黑客的核心 企业应该重视产品留存率(附PPT下载)
[译]Airbnb是如何使用数据理解用户旅行体验的?
微博推荐数据服务代理: hyper_proxy的设计和实现
星图数据谷熠:消费领域DaaS 大数据重构未来商业游戏规则(附PPT下载)
鲍忠铁:TalkingData大数据技术与应用实践(PPT下载)
【干货教材】数据分析VS业务分析需求
九枝兰专访:数字营销的核心—企业如何使用数据管理平台(DMP)进行精准营销
我们的应用系统是如何支撑千万级别用户的
R应用空间数据科学
Excel进行高级数据分析(上)
Excel进行高级数据分析(下)
国内各大互联网公司2.0版技术站点收集
网站数据分析思路导图
大数据分析报表设计开发要素
大数据需要的12个工具 推荐
YARN/MRv2 Resource Manager深入剖析—NM管理
YARN/MRv2 Resource Manager深入剖析—RMApp状态机分析
Hadoop 1.0与Hadoop 2.0资源管理方案对比
Hadoop 2.0中单点故障解决方案总结
Hadoop 2.0 (YARN)中的安全机制概述
Hadoop 新特性、改进、优化和Bug分析系列1:YARN-378
Hadoop 新特性、改进、优化和Bug分析系列2:YARN-45
Hadoop 新特性、改进、优化和Bug分析系列3:YARN-392
Hadoop版本选择探讨
探究提高Hadoop稳定性与性能的方法
《Effective C++》读书笔记(第一部分)
Hadoop分布式环境下的数据抽样
Hadoop计算能力调度器算法解析
如何编写Hadoop调度器
数据结构之红黑树
Hadoop pipes设计原理
《C++ Primer plus》学习笔记之”类”
《C++ Primer plus》学习笔记之”类继承”
《C++ Primer plus》学习笔记之”C++中的代码重用”
《C++ Primer plus》学习笔记之”异常”
《C++ Primer plus》学习笔记之”RTTI”
Hadoop pipes编程
Hadoop Streaming高级编程
《C++ Primer plus》学习笔记之”标准模板库”
《C++ Primer plus》学习笔记之”输入输出库”
Linux Shell 命令总结
算法之图搜索算法(一)
awk使用总结
素数判定算法
《C++ Primer plus》学习笔记之“函数探幽”
使用Thrift RPC编写程序
如何在Hadoop上编写MapReduce程序
怎样从10亿查询词找出出现频率最高的10个

广点通背后的大数据技术秘密——大规模主题模型建模及其在腾讯业务中的应用(附PPT)

于2017-04-01由小牛君创建

分享到:


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 就是希望这个模型能够应对当今互联网的大数据,同时把它推向产品应用,谢谢!

End.