导读:@食堂老板:很多SEO傻子们以为百度的搜索技术在网页搜索,百度对于竞价推广的搜索相关技术对于个人而言其实更值得研究和更具有商业价值。
首先,如果单纯拿出一堆词就让我分类,这个我真做不到,我不知道有没有人能做到,反正我做不到。做关键词分类,对我而言,一定有一些基础信息,基础数据作为背景。
案例1:百度商业词聚类模型
现在看新闻,大家经常讨论一个话题,百度医疗行业的收入贡献比是多少,其实,我爆个大料给大家,在2005年甚至2006年之前,百度自己都不掌握这类数据。
当时百度有一个简单的客户分类,是客服提交的,然后我们看了一下消费的行业分布,结果显示超过50{35d70732d1fe98e5cfea42b59418971da2b3cae7b4dfd8d770b8943d5ba7ed7b}属于其他分类,这个结果基本上就没法看了。
然后我就琢磨,用商业词能不能直接聚类为行业,当时我在产品部门,合作反欺诈点击的工程师是张怀亭(此人似乎现在还在百度),这是个算法高手,他当年的毕业论文就是关联规则和聚类算法,我就去请教他,他说了一堆,我大部分没听懂,但大概要点知道了一些,然后找他要了论文看了看,也没太看明白,凭借自己粗浅的理解我就动手了,然后这个还真做成了。
出发点是 假设客户本身具有行业属性(如果这个假设不存在,那就没辙了),我认为每个客户提交的关键词,彼此是有关联的。某两个关键词如果同时被不同的客户提交,其关联性就会随之增加,这个是最基本的一个定义,叫做共同推举数。也是最容易算的一个值。
但是仅仅依赖于共同推举数有一个问题,就是会导致很多词都和热门词关联,这是不合理的,我记得当时好像是某网上书城的推荐购买那一栏,明显都是热门书籍,似乎也是基于共同推举数做的关联。
问题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{35d70732d1fe98e5cfea42b59418971da2b3cae7b4dfd8d770b8943d5ba7ed7b}以内,对热门词比较准,但对一些长尾控制不住)。不过、我是在产品部门干的这个活,呵呵。
后来,这个模型还用于智能起价。下面说一下智能起价的八卦。
智能起价其实是百度一个失败的商业尝试,对业务的伤害非常大,但是初期的设计理念并没有大问题,百度当时基于关键词的竞价(当时的竞价模式非常简单,别跟我说现在百度的竞价模式不这样,我明白),对商业价值的挖掘是有缺陷的,比如一些超级热门词,3毛一个点击也是卖不掉的(比如电影,小游戏)。是不是可以便宜点卖呢?对一些非常长尾但是价值很高的词,因为发现的客户少,所以起价很低,而其商业价值并不弱,比如 “最新型绿色干洗机报价” 这样的长尾词可能参与竞价的只有一两个客户,但是其商业价值不会低于“干洗机”这样的高价词。所以,智能起价真正的目的,是给热门非商业词降价,给冷门长尾商业词提价。 那么我就提出一个观点,关键词的起价应与他关联词的平均点击价格相关。然后他们拿这个模型去跟领导讲,很快就通过了。(牢骚一句,赵某童鞋去讲的,被领导问毛了,就说算法是技术部门的,他也不是很清楚,他去讲的时候明明是我提供的原型! 不过后来技术部门又做了一版,但那是后话了。) 智能起价模型失败的原因,有两个原因,第一,他们上的时候为了提高对非商业词的覆盖率,硬把关键词包含规则加上去了。导致了一些坏案例。(比如平板,平板电脑,并不是一个行业)。当时效果很不好,领导很不爽,批评我的坏案例太多,列了一堆,我挨个去查,所列的没有一个是我算法算出来的,都是词包含包进去的。其实这个问题还不算严重,词包含固然有坏案例,但是影响面极为有限;第二个问题更严重,就是领导太急迫了,这个事情我的建议是,起价权值低一点(通过算法计算每个词关联平均价格,然后关联平均价格*起价参数=该词起价,这是基本公式,起价参数全凭个人判断),看效果慢慢调整,结果领导一上来设的相当高,所以,客户极大不爽,各种擦屁股持续了几个月。百度那个季度实在可怜。
凤巢之后,智能起价终于寿终正寝。凤巢的方案更完美,更综合,这是必须承认的。
案例2:搜索词/指数词的聚类
当然,也可以基于搜索网民的提交来计算关联度,但是首先,网民的搜索行为,并不如客户提交商业词行为那样具有分类属性。其次,我当时的处理能力也搞不定这样的数据规模的关联计算。(好吧,现在也不大搞得定。)
那么基于什么呢?基于关键词+搜索量。
这事又是张怀亭帮忙,我在百度合作最多的工程师就是怀亭,当时他帮我做所有搜索记录的整理,包括汇总和反刷处理(除了一些ip,客户端标记清理外,最重要的还有一个规则,是基于渠道分布和客户端分布规则,正常的搜索词,来自于不同渠道的比例应该是遵循一个合理分布比例的,所谓渠道包括百度官网,hao123,其他联盟渠道等等,如果严重不遵守这个比例,基本就是刷指数了,但这个规则没有应用到百度指数上,至少当时没应用到,原因似乎是这样的,当时几乎所有榜单上的热门女星,似乎都有经纪公司或粉丝团的刷榜行为。)所以当时我手里有百度所有搜索词的搜索数据(清理掉刷指数的数据),而且每日更新。
那么怎么分类呢?如果做全分类,我真做不到,但是热门词是可以做的。这里有一个要点,就是每个热门关键词,都不是孤立存在的。而这些热门词的相关词(基于词包含)里,会携带一些表明其行业属性的词根,然后可以回溯这个热门词的行业属性。(对了,我上面不是说词包含有坏案例么,咳咳,这个,别求全责备。只有词和搜索量,还要做分类,有些坏案例也只能手工调整了。)
举例,
一个热门游戏,比如 神仙道, 会有大量诸如 神仙道攻略, 神仙道新服,神仙道道具,神仙道外挂 等等相关词。通过这些相关词的词根(可以对词根标记分类属性)回溯原词,以及原词所有相关词的分类。比如电视剧,常见词根有 “第**集,最新集。”,一个小说,常见词根有“第**章”,“最新章节” 等。
当然,还有一个情况,有些词是多含义的,比如典型如苹果(IT产品,电影,水果)。武林外传(电视剧,游戏)等。通过词根的分析,并基于不同词根下的搜索量加权,得到该词的搜索属性,偏向哪个领域,或各个领域的比例,是的,不是很精确,但是还是有一定价值的。
实现方法就是,针对每个未分类的热门词,去遍历包含他的所有词,然后基于预先定义的分类词根去套,对包含每个分类词根的长尾词根据搜索量加权,汇总,得到该热门词的分类属性,以及覆盖包含该热门词的所有长尾词的分类属性。
这个算法思路,不适合对长尾词挖掘(含有行业属性词根的长尾词可以覆盖,但是毕竟覆盖率不够),但是对百度热榜可以有很好的帮助,对热门词的挖掘和自动分类还是有一定把握的,当时不少人抱怨我说百度热榜更新不及时,一些新游戏都很火了也进不了热榜,我就拉着百度热榜的产品经理和技术分享过,还提供过原型代码,然后也没有然后了。
至少当时,我能不断看到网民搜索行为的分类比例(百度长尾词太多,我的模型覆盖搜索量只有50{35d70732d1fe98e5cfea42b59418971da2b3cae7b4dfd8d770b8943d5ba7ed7b}左右),以及变化趋势,比如眼看着视频类的搜索比例快速增长。
又是一篇自吹为主的文章,那个,啥也不说了,您凑活看吧。
文章来源:caoz的梦呓
顶: 1踩: 0
评论(0)