caoz的心得与分享,只此一家,别无分号.

从关键词聚类的案例谈谈数据感

发布日期:2018-11-15 02:30:00 +0000

很多人想问能不能转数据分析,以及如何学习数据分析。


那么以我的经历来说,我一直会强调,数据分析一方面你可能认为是技术,是分析的手段和方法;但另一方面,数据感非常重要,有数据感的人,用一些简单粗糙的技术,就可以挖掘出很多数据价值;但如果数据感不够,那么,可能你技术很牛,会的算法和手段很多,但面对大量的有价值的数据,依然可能会坐守金山而不自知。 职场通病之 - 坐守金山不自知


最近,吴亦凡刷榜的新闻热点很大,我在知识星球里吐槽了一句,我说当年百度风云榜的明星榜单,刷榜不要太夸张,现在可能情况好多了,刷榜的发现刷百度回报率太低,都去刷微博了。


然后我简单回顾了自己的一些工作,当年我分析过百度的搜索日志,找到过一些净化指数的方法,此外,还做过关键词聚类的一些方案,有人就回复问我,这是怎么做的,我今天以这些为案例,来分享一下日常工作中,数据感是怎么体现的。


1、百度指数,如何防刷


百度指数来自于用户搜索行为记录的统计,但这里的用户搜索行为,是有一定疑问的,因为这里可能存在一些机器人,一些营销公司,一些不那么合理的行为。


那么比较容易想到的防刷手段是什么呢,很多人应该第一反应是,看ip是否聚集对不对,如果都是几个固定ip出来的,肯定是刷出来的,但现在肉鸡很多,代理服务器很多,拨号换一个ip成本也很低,那看什么,看客户端类型是不是,如果客户端类型分布很集中,说明搜索来自于同一批终端对不对。


但刷数据的方法,其实有很多种,比如,这不是教人学坏啊,如果你有一个访问量高的网站或者app,或者找一个这样的产品,塞点广告费,然后你内置一个js脚本刷搜索,用户无感知的,这样搜索就来自于完全真实的用户环境,所有ip,客户端类型,地区分布,时间分布,都是完全常态散布的对不对,这时候你用以上的这些分布特征分析,一概无效了。


实际上很多防刷防作弊都是基于真实行为特征和刷数据的行为特征存在一些不一致,而刷数据的那些人,我告诉你们,数据思维都特别强,他们会把各种特征伪造的跟真实行为非常接近,但当时我有一招是刷数据的人想不到的。


你们执行百度搜索的时候,可能很多人没注意到,url里面有个参数,是tn=...,这个参数是什么呢,是百度记录搜索流量渠道的。当时的背景还是pc为王的时候,还没有移动互联网,那时候其实百度自有流量,也就是用户打开www.baidu.com进行搜索的比例,其实最多也就50%,其他都是第三方渠道,比如各种导航网站,第三方浏览器,还有各种电信的dns劫持,这里的第三方渠道,从tn来讲,也包括百度旗下的hao123。刷数据的人基本上没注意过这个,那么当时我发现,如果一个搜索词的tn分布明显异常,比如来自于百度自有渠道的超过95%,可以说明搜索量基本上是刷出来的,因为正常用户搜索行为不是这个分布。只靠这个,其实就可以挤掉很多刷榜的数据水分。不过从公司角度讲,刷榜带来的虚假繁荣可能还不是坏事,就好比微博,你看那些明显扯淡的明星数据作假,他们也是乐见其成。所以我当时找工程师帮忙按照我的思路处理了数据,搞了一份净化版的数据做我的数据分析用,但百度指数那边依然大量刷榜的领导们并未要求处理。


2、百度关键词如何聚类


百度关键词聚类首先要看目标,为啥要说目标呢。


其一,对百度业务收入的分析,我吹过这个牛,百度第一次知道自己不同行业收入分布的情况,是我做出来的,因为我做了商业词聚类,数据分析后台才提供了不同行业的收入分布,我做聚类之前,最开始是靠企业注册的类型来统计的,但由于很多代理商偷懒,数据没法看,超过50%的收入行业是其他,这怎么看。


当时的技术思路也公开了,其实没啥技术含量,但效果我觉得还行。

史上最简单的推荐系统设计

一个至简推荐系统的实现(附源代码)


这里我曾经提出过一个问题,在实现商业词相关推荐的基础上,如何实现有效的关键词聚类呢?有评论猜对了,其实不复杂,找出每个行业的核心词,基于关键词与核心词的关联的延展,来实现自动聚类,比如核心词A,关联词B,然后C与B关联,这样层级延展,并计算关联衰减,如果一个词和不同的行业核心词都有关联,按照关联度高的选择。


实现不复杂,但实现效果好就需要体力活,什么体力活,就是看数据,找坏案例,基于坏案例,优化和调整行业核心词。怎么找坏案例,针对不同行业类型,按关联度从低到高排序,那些关联度低的商业词,很多都是分错类的,肉眼识别出来,看与核心词的关联路径是怎样的,以及用怎样的核心词可以让它正确归类。还有就是没有被覆盖到的关键词,又有一定收入的,都列出来,看为什么覆盖不到,能否从中找出几个核心词让这些覆盖到。


坦白说,技术好的人有更好的途径做聚类,我不行,我技术不过关,但我数据感好,我看数据津津有味,不累,这事是体力活,代码跑一遍,肉眼看一遍,找出坏案例,调整核心词,继续跑,然后继续看,就这样,那么标准是什么呢?是收入的覆盖率。标准也很重要,客户提交的商业词实在太多了,你说我标准是覆盖80%的商业词汇,那没戏,我做不到。但覆盖95%的收入,不难,覆盖top 30%的商业词就够了,要做业务分析,所以这个95%已经很不错了,至少比之前50%的其他要好太多吧,然后再慢慢优化。很多时候呢,做数据分析的人,如果目标感不对,总是抠在技术指标里出不来,那就会有太多不必要的技术开销了,大公司还好说,值得,小公司肯定耗不起了。嗯,实话实说,开始百度规模还小,在数据分析方面不舍得投入人才,后来百度技术投入多了,我的那个粗糙版本早被人家专业技术人员用新方法取代了。


所以很多时候,我能做的事情不是因为我技术好,而是因为我知道要做什么。以及如何用最低的技术开销,去搞定这个事情。至于优化和完善,可能需要更好的技术人员的配合。


这是商业词聚类,其二,用户搜索行为聚类


比如百度风云榜有分类榜单,百度的分类榜单最早的更新是编辑完成的,但经常有新的热词出现,更新是不及时的,经常有朋友来问,我们有个新游戏很火为什么没有进游戏榜,或者我们新发的小说现在指数特别好为什么小说榜没有收录。


那我后来就说,这事为什么不做成自动的呢?一个新词的指数飙升,我能知道它是什么类型的,比如“琅琊榜”这个词突然飙升了,系统能识别这是电视剧。


其实这事一点都不难,为什么呢,还是数据感,一个词的热度很高,那么只要不是刷出来的,一定会有很多相关的词出现,(咳咳,又是一个分析刷榜的技巧) 比如琅琊榜这个词指数很高,那么“电视剧 琅琊榜”这个词的指数一定不低。此外“琅琊榜 在线看” 类似这样的相关词,都会有不少搜索量,这时候你就注意到,很多相关词是有典型的行业特征词根的,这个事就简单了,把所有行业特征词根整理出来,然后遇到热门词出现的时候,先找到热门词的所有有搜索量的相关词,再把这些相关词分词,包含特征词根的按照词根所属行业聚合起来,按照搜索量计算关联权值即可,有些词本身存在多目标特性,比如苹果这个词,但你基于苹果的相关词的词根聚合,"电影 苹果“,”苹果手机“,“苹果 栽种”,搜索指数一排序,你发现,这个词的用户主要搜索目标是通讯设备。少部分是电影和农作物。


当时没有多想一步,其实可以做成深度学习,基于已分类的热门词,对相关词分词,系统寻找规律,是可以找到一些行业特征词根的,然后这个系统就可以成为自完善系统了,那时候还都是手动找行业词根。


以上这一段可能有点绕,其实慢慢思索一下,没什么技术含量,都是简单的思路。


那么想说明什么,如果一个人天天看搜索日志,看百度指数,能不能产生如上的思路,这就是数据感,数据在这里,日志在这里,这是资源,然后你能想到什么,能找到什么可以做的事情,遇到问题怎么思考,别人问我,为什么百度热榜没收录这个词,一般人说,我去反馈一下,你想想,这事为什么不能做成自动的,以及如何做成自动的,数据感都藏在这里。


以上都是当时随手做的工作,当时做的这种技术含量低的体力活很多,驱动力主要是好奇心,还是那句话,如果你对数据不好奇,这碗饭可能你真的不适合。


我随便说个例子,比如现在很多做运营分析的都在提漏斗模型,当然不同领域的一些具体数值定义有自己的标准,但我话说回来,漏斗分析这个思路,如果你说,你做业务运营,如果不看书,没人教你,你就不知道有这个思路,你是领导手把手教,书上写了你才知道这样很有用,甚至还不知道究竟有多大用,那么只能证明你真的没有数据感。这个东西,只要你做运营,你就必须能意识到,并有意识去分析,当然,书上和有经验的人会给你一些业内的标准和分析细节的辅导,这个确实存在一定的经验积累,但这个意识,是不能靠教的。



给自己的业务做个广告


以前我讲过不少关于信息安全的话题 信息安全攻防杂谈


也开过一门信息安全的常识课程和相关的知识星球 当微课遇上星球


那么当时遇到一些人说,课程不深入,非技术的,说对了,毕竟我自己就不专业,科普很重要,但技术人才觉得远远不够。


那么,今天我们更深入的信息安全课程来了,当然,价格,不便宜。

我们与破壳学院合作,不过我们这里,依然承诺有退款保障。


信息安全这事,技术固然重要,但思维方式更重要,我说两个案例,技术含量很低,但值得体会一下。


案例1,忘了有没有提过,很多年前微软有个本地漏洞是这样的,用户登录本机windows系统的时候,可以打开输入法,可以输入中文用户名。这合理吧。输入法有个帮助按钮,可以打开微软系统帮助,这也合理吧,帮助系统有很大的菜单,输入法之外也有很多其他的帮助,这到无所谓,但是某些帮助文件里存在外部链接,点击链接会打开浏览器,那么打开浏览器后,你输入c:\,就进入硬盘浏览了。。。如果点击cmd.exe就进入dos,可以用命令行为所欲为了。


看这个流程,一点技术含量都没有吧,说出来感觉,好像没啥了不起吧,但这就是一个高危漏洞,第一个发现的人,就是黑客思维的典范。


案例2:说个最新案例


区块链最近什么最火,赌场啊,前段时间以太坊上有个赌博程序,奖金池积累到差不多价值2000万人民币的以太坊的样子,被黑客拿走了,怎么拿走的呢,技术原理也不复杂。


玩法是这样,奖金池如果五分钟无人下注,那么就会自动掉落给最后下注的人,但这个奖金池越滚越大,好多人都盯着下注对不对,所以看上去永远不会掉落对不对,但换个思路,区块链的投注是需要矿池确认的对不对,如果五分钟内让别人的投注不被确认不就可以了,怎么做呢?买通矿池么?这么多矿池都不差钱,你咋买通?


其实有办法,为什么呢,矿池的系统有个原则,优先接受高交易佣金的交易,这个黑客就很简单,下注之后立即大批量创造很多转账交易,自己左手倒右手,但是交易佣金比正常值高很多,结果所有矿池几乎塞满了他的交易,其他交易都被排队了,别人也有下注啊,就被挤到5分钟后了,这样,奖池大奖一人独得,成本就是这短时间的交易手续费和下注费用。


你看,技术复杂么,这就是思维啊。


最后,小测试一下,很久很久以前,互联网上有个所谓通用密码,是  ' or ''='

程序员信息安全入门问题,当年这个不知道多好用,只要遇到登陆框几乎横行无阻。现在偶尔还有可能会碰到,不理解的,可不行。