返回信息流行业背景:我们是一家做手机阅读的公司,在线热销图书十万本,每日活跃用户千万。
应用场景:对现有图书根据图书内容打相关的标签
现状:现有图书的标签均由人工手动添加,具有工作量大,标签不准确的缺点。
解决方案:
对现有图书进行隐语义挖掘,找出所有图书的隐性主题。根据图书集的隐性主题来构造
图书的标签。
具体算法决定使用LDA(隐形狄利克雷分布)算法,该算法在文本集的隐性主题模型基础上,采用Gibbs Sampling随机模拟方法迭代出文本集主题模型的平稳分布,得到平稳后采样出以下两个分布:
1、文档关于主题的分布
2、主题关于文档集中特征词的分布
之后进行以下工作
1、通过主题关于文档集中特征词的分布确定主题的内容后,人工赋予相应的标签
2、通过文档关于主题的分布,确定文档的标签
目前问题:
书籍单本文本较大,特征词具有词量多,词频高的特点。单机运行LDA算法时间过长,难以满足需求。造成该问题的原因是,Gibbs Sampling 只能在单机上运行,在循环的过程中一次分布的状态转移结果紧密依赖转移前分布的状态,并且每次只改变一个词位上的主题。这两个原因是算法的瓶颈。
计划解决方向:希望能够对lda算法中的Gibbs Sampling过程进行并行化实现。
求高人指点
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #12616同步于 2014/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
LDA算法实战问题求解
shuoshane
2014/3/14镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
LDA是灌水用的,不是工业界用的。
MCMC很难并行化,只有近似算法可以。
相关并行方法(用CUDA或MPI)倒是有,不过很好奇“在线热销图书十万本,每日活跃用户千万”的公司,会建个小号到论坛上问解决方案?
【 在 shuoshane 的大作中提到: 】
: 行业背景:我们是一家做手机阅读的公司,在线热销图书十万本,每日活跃用户千万。
: 应用场景:对现有图书根据图书内容打相关的标签
: 现状:现有图书的标签均由人工手动添加,具有工作量大,标签不准确的缺点。
: ...................
http://www.infoq.com/cn/vendorcontent/show.action?vcr=2706 今天有讲座讲这方面内容的,可以找ppt来看一下
今天问了老师,gibbs sampling应该不能完全并行化,不过可以分block,将文本分块在不同机器上跑,每个机器都假设其他机器中的词频概率没有变化(实际上是有变化的,但该机器认为不变),每隔几次之后就将结果结合后将所有的机器上的模型统一更新,然后继续跑,直到收敛。
链接死掉了。。。
【 在 arthur503 的大作中提到: 】
: http://www.infoq.com/cn/vendorcontent/show.action?vcr=2706 今天有讲座讲这方面内容的,可以找ppt来看一下
分布式的LDA早就出来了:https://www.ics.uci.edu/~welling/publications/papers/ParLDA.pdf
另外可以看看:
http://radimrehurek.com/gensim/dist_lda.html
https://code.google.com/p/plda/