转载理由:去年面试的时候,被问到相关问题,之后查了一些资料,没有什么收获,今天不小心看到,挺受启发。

转自:http://www.wumii.com/topbar/mSzZftie

看到知乎有这样的问题,如何做词聚类,恰好我以前做过,但是想想内容太多,还是单独写一篇说一下。

首先,如果单纯拿出一堆词就让我分类,这个我真做不到,我不知道有没有人能做到,反正我做不到。做关键词分类,对我而言,一定有一些基础信息,基础数据作为背景。

案例1:百度商业词聚类模型

现在看新闻,大家经常讨论一个话题,百度医疗行业的收入贡献比是多少,其实,我爆个大料给大家,在2005年甚至2006年之前,百度自己都不掌握这类数据。

当时百度有一个简单的客户分类,是客服提交的,然后我们看了一下消费的行业分布,结果显示超过50%属于其他分类,这个结果基本上就没法看了。

然后我就琢磨,用商业词能不能直接聚类为行业,当时我在产品部门,合作反欺诈点击的工程师是张怀亭(此人似乎现在还在百度),这是个算法高手,他当年的毕业论文就是关联规则和聚类算法,我就去请教他,他说了一堆,我大部分没听懂,但大概要点知道了一些,然后找他要了论文看了看,也没太看明白,凭借自己粗浅的理解我就动手了,然后这个还真做成了。

出发点是 假设客户本身具有行业属性(如果这个假设不存在,那就没辙了),我认为每个客户提交的关键词,彼此是有关联的。某两个关键词如果同时被不同的客户提交,其关联性就会随之增加,这个是最基本的一个定义,叫做共同推举数。也是最容易算的一个值。

但是仅仅依赖于共同推举数有一个问题,就是会导致很多词都和热门词关联,这是不合理的,我记得当时好像是某网上书城的推荐购买那一栏,明显都是热门书籍,似乎也是基于共同推举数做的关联。

问题1:A和B有50个共同推举,A和C有30个共同推举,但是B这个词是热门词,共有2000个客户提交;而C是冷门词,只有50个客户提交,请问A和B的关联度高还是A和C的关联度高?

问题2:客户1 提交了10000个词(类似阿里,中青旅真的是这么提交的);客户2提交了20个词,客户1所提交的10000个词的彼此关联度和客户2之间提交的是否一致?

考虑这两个问题,做权值调整,(其实我记得还有一个权值,很久的事情了,搞不清了)然后计算词与词的关联值。

那么,权值怎么定? 呵呵,实话说,拍脑袋,不过拍完了要校验。

实现程序只用了不到一个下午,然后跑一遍程序大约1个小时到2个小时(那时候百度的商业词还没那么多,客户也没现在呢么多,我的程序其实效率不够好)。然后我做了一个web展示界面,就是任意输入一个词,列出其关联词及关联值,目测坏案例,分析参数的问题,然后修改参数,再跑一遍。。。 跑了n多遍,大约两三天时间,觉得结果差不多了,词与词的关联建立起来了,考虑第二步,聚类。(当时认识了很多奇葩的商业词,大开眼界,对互联网行业认识彻底改观,比如白小姐,黄大仙,咳咳、咳咳,这个领域就不能再说了)

聚类的想法极为简单,把每个行业的代表词(与很多词关联的)抽取出来,当作核心词,然后基于词的关联(延展一级关联、二级关联、三级关联,比如A与B关联,B月C关联,C与D关联,计算彼此权值衰减,得出A与D的关联)。尽可能把所有词聚合到核心词上,作成行业词表。

最开始核心词我从库里挑与其他词关联度较高的有20多个,然后多级权值衰减也是拍脑袋想的,然后跑一遍,看两个指标,第一、覆盖率是多少;第二、准确率如何,选取每个行业关联度最低的词(坏案例的密度较高,有些词会同时被两个行业核心词关联,但权值计算会出问题,导致被并入错误的行业)去看,选择没有被关联上的词去看,分析权值的问题。然后修改衰减参数,增加核心词。这个程序我也是写了一个下午,但是调试权值和增加核心词,干了一个礼拜。

然后,百度商业分析部终于可以推出,基于行业的收入报表。我自豪的说一句,百度做收入行业分布,是基于我的关键词分类算法开始的,当然,今天他们鸟枪换炮了,我的算法效率不够(初期还行,到更大的词规模和更多客户就不行了),覆盖率和准确度并不十分完美(坏案例还是一直存在的,不过尽可能控制在消费总额的10%以内,对热门词比较准,但对一些长尾控制不住)。不过、我是在产品部门干的这个活,呵呵。

后来,这个模型还用于智能起价。下面说一下智能起价的八卦。

智能起价其实是百度一个失败的商业尝试,对业务的伤害非常大,但是初期的设计理念并没有大问题,百度当时基于关键词的竞价(当时的竞价模式非常简单,别跟我说现在百度的竞价模式不这样,我明白),对商业价值的挖掘是有缺陷的,比如一些超级热门词,3毛一个点击也是卖不掉的(比如电影,小游戏)。是不是可以便宜点卖呢?对一些非常长尾但是价值很高的词,因为发现的客户少,所以起价很低,而其商业价值并不弱,比如 “最新型绿色干洗机报价” 这样的长尾词可能参与竞价的只有一两个客户,但是其商业价值不会低于“干洗机”这样的高价词。所以,智能起价真正的目的,是给热门非商业词降价,给冷门长尾商业词提价。 那么我就提出一个观点,关键词的起价应与他关联词的平均点击价格相关。然后他们拿这个模型去跟领导讲,很快就通过了。(牢骚一句,赵某童鞋去讲的,被领导问毛了,就说算法是技术部门的,他也不是很清楚,他去讲的时候明明是我提供的原型! 不过后来技术部门又做了一版,但那是后话了。) 智能起价模型失败的原因,有两个原因,第一,他们上的时候为了提高对非商业词的覆盖率,硬把关键词包含规则加上去了。导致了一些坏案例。(比如平板,平板电脑,并不是一个行业)。当时效果很不好,领导很不爽,批评我的坏案例太多,列了一堆,我挨个去查,所列的没有一个是我算法算出来的,都是词包含包进去的。其实这个问题还不算严重,词包含固然有坏案例,但是影响面极为有限;第二个问题更严重,就是领导太急迫了,这个事情我的建议是,起价权值低一点(通过算法计算每个词关联平均价格,然后关联平均价格*起价参数=该词起价,这是基本公式,起价参数全凭个人判断),看效果慢慢调整,结果领导一上来设的相当高,所以,客户极大不爽,各种擦屁股持续了几个月。百度那个季度实在可怜。

凤巢之后,智能起价终于寿终正寝。凤巢的方案更完美,更综合,这是必须承认的。

案例2:搜索词/指数词的聚类

当然,也可以基于搜索网民的提交来计算关联度,但是首先,网民的搜索行为,并不如客户提交商业词行为那样具有分类属性。其次,我当时的处理能力也搞不定这样的数据规模的关联计算。(好吧,现在也不大搞得定。)

那么基于什么呢?基于关键词+搜索量。

这事又是张怀亭帮忙,我在百度合作最多的工程师就是怀亭,当时他帮我做所有搜索记录的整理,包括汇总和反刷处理(除了一些ip,客户端标记清理外,最重要的还有一个规则,是基于渠道分布和客户端分布规则,正常的搜索词,来自于不同渠道的比例应该是遵循一个合理分布比例的,所谓渠道包括百度官网,hao123,其他联盟渠道等等,如果严重不遵守这个比例,基本就是刷指数了,但这个规则没有应用到百度指数上,至少当时没应用到,原因似乎是这样的,当时几乎所有榜单上的热门女星,似乎都有经纪公司或粉丝团的刷榜行为。)所以当时我手里有百度所有搜索词的搜索数据(清理掉刷指数的数据),而且每日更新。

那么怎么分类呢?如果做全分类,我真做不到,但是热门词是可以做的。这里有一个要点,就是每个热门关键词,都不是孤立存在的。而这些热门词的相关词(基于词包含)里,会携带一些表明其行业属性的词根,然后可以回溯这个热门词的行业属性。(对了,我上面不是说词包含有坏案例么,咳咳,这个,别求全责备。只有词和搜索量,还要做分类,有些坏案例也只能手工调整了。)

举例,

一个热门游戏,比如 神仙道, 会有大量诸如 神仙道攻略, 神仙道新服,神仙道道具,神仙道外挂 等等相关词。通过这些相关词的词根(可以对词根标记分类属性)回溯原词,以及原词所有相关词的分类。比如电视剧,常见词根有 “第**集,最新集。”,一个小说,常见词根有“第**章”,“最新章节” 等。

当然,还有一个情况,有些词是多含义的,比如典型如苹果(IT产品,电影,水果)。武林外传(电视剧,游戏)等。通过词根的分析,并基于不同词根下的搜索量加权,得到该词的搜索属性,偏向哪个领域,或各个领域的比例,是的,不是很精确,但是还是有一定价值的。

实现方法就是,针对每个未分类的热门词,去遍历包含他的所有词,然后基于预先定义的分类词根去套,对包含每个分类词根的长尾词根据搜索量加权,汇总,得到该热门词的分类属性,以及覆盖包含该热门词的所有长尾词的分类属性。

这个算法思路,不适合对长尾词挖掘(含有行业属性词根的长尾词可以覆盖,但是毕竟覆盖率不够),但是对百度热榜可以有很好的帮助,对热门词的挖掘和自动分类还是有一定把握的,当时不少人抱怨我说百度热榜更新不及时,一些新游戏都很火了也进不了热榜,我就拉着百度热榜的产品经理和技术分享过,还提供过原型代码,然后也没有然后了。

至少当时,我能不断看到网民搜索行为的分类比例(百度长尾词太多,我的模型覆盖搜索量只有50%左右),以及变化趋势,比如眼看着视频类的搜索比例快速增长。

又是一篇自吹为主的文章,那个,啥也不说了,您凑活看吧。

谈谈我做过的关键词聚类相关推荐

  1. citespace使用教程系列文章:二、关键词聚类图

    关键词聚类图 上一章citespace安装和关键词共现图已经讲了软件安装和关键词共现.本文我们讲一下怎么做关键词聚类分析. 1.接着上一篇文章继续以下操作.点击下图圈中的图标,进行关键词聚类 2.点击 ...

  2. 企业做网络推广关键词设置的几点个人看法

    企业做网络推广关键词设置的几点个人看法   A 如何选择关键词 怎样挑选正确的关键词 怎样挑选关键词是网络推广中最重要的步骤之中的一个,同一时候也是大多数企业在做网络推广时候easy忽视的问题.都觉得 ...

  3. 谈谈我做拼音搜索的一点经验

    谈谈我做拼音搜索的一点经验 需要注意的一些事情 本文使用的为 Java 语言解决方案. 搜索方法上,按照个人理解,有两点关键: 分词 将类似 "women" 这样的词分解成 &qu ...

  4. 今天给大家谈谈一个做了11年Java开发,转型做老师,沙雕一个。

    第一回,大家好,今天给大家谈谈一个做了11年Java开发转型做老师的过程. 学习目标: 提示:2021[前端VUE框架]最新/最全/最细实战课程,VUE56节进阶学习 重磅来袭:3个月掌握 vue 入 ...

  5. 如何做淘宝关键词的优化

    如何做淘宝关键词的优化 通过百度指数.前不久我对"淘宝网"."淘宝"这两个关键词进行了调查,发现这两个关键词在百度和谷歌的搜索量十分的大,而在谷歌和百度中搜索& ...

  6. 堆积密度怎么做_长尾关键词怎么优化?这样布局关键词排名效率高

    上一篇我们谈到了长尾关键词的挖掘,今天我们来谈谈长尾关键词如何优化的问题,如果还不知道怎么挖掘长尾关键词的可以通过传送门(什么是长尾关键词,长尾关键词如何挖掘?)进行了解. 长尾关键词的优化可以有效提 ...

  7. 你知道这5年我怎么过的吗!谈谈我做测试开发的这些年……【总结】

    软件测试这个行业总是会被很多人误解,不懂行的人总会这样吐槽:"测试员就是吃青春饭的","30岁还没做公司中层领导说明快被企业淘汰了","过了30岁年薪 ...

  8. 如何做SEO(关键词)

    IP PV UV PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次. UV(独立访客):即UniQue Visitor,访问您网站的一台电脑客户端为一个访客.00 ...

  9. 【转】谈谈如何做研究

    今天谈谈我自己做研究的方法 -- 它跟随我多年,且一直在演进和完善中.我虽然没有读过 PhD(希望有生之年能够尝试一下),但我自认为这法子并不算差 -- 至少,它让我能够更加高效地进入一个新的领域,并 ...

最新文章

  1. 51 java_51javacms
  2. MySQL高级 - SQL优化 - 索引提示
  3. go 分段锁ConcurrentMap,map+读写锁,sync.map的效率测试
  4. [原创]K8_C段旁注工具6.0 新增SMB漏洞扫描
  5. mysql5.7.23主主重制_MySQL5.7.23,主从复制的使用
  6. flink检查点简单理解
  7. dqo变换_基于dqO变换的电压暂降检测方法研究
  8. Windows和Xyplorer的完美结合
  9. Vue Error-报错信息:Syntax Error: Assigning to rvalue.
  10. esx 主机cli命令行简单介绍
  11. 英语字根(转)--推荐
  12. vue自定义指令directives同时传递多个参数
  13. Tar打包 压缩与解压缩到指定目录的方法
  14. oracle 创建自增序列
  15. view路由传参方法
  16. Android安卓成品项目 购物商城系统源码apk
  17. 使用计算机编辑文档的同时,小学信息技术2-2-用计算机编辑文档(北京版).doc
  18. QT--在注释中遇到意外的文件结束
  19. 【LeetCode】我能赢吗 [M](记忆化搜索)
  20. c++面向对象的学生管理系统

热门文章

  1. 光功率计制作-给大家参考 资料分享
  2. 2020年六级作文:标准的鸡汤文系列
  3. Acrobat Pro DC 教程:如何压缩PDF文件?
  4. 《元宇宙》的真实面貌,看了之后就感觉应该是这样的!!
  5. (面试题)面试官为啥总是让我们手撕call、apply、bind?
  6. Daily English Dictation Number Twelve
  7. 功率预测发展趋势之电力现货交易
  8. Spring_00000
  9. qq邮箱 android 3.0 评测,QQ邮箱Android0.9.5版本最新邮箱评测体验
  10. 【高等数学】基础知识点梳理(张宇2024版)