行业推荐&行业分类

客观的说,在这个topic里面,我只参与了行业推荐这部分的事情,接下来我会先介绍推荐这部分的业务和工程,然后再讲讲具体的分类策略是怎么样做的,真实的系统不一定是按照这个来做的,因为随着时间的增长,我觉得以前的有些东西是可以不断的改进的:

在总结的过程中,看到很多以前的分享,发现前几年还能静下心来总结总结,很多有意思的事情也是慢慢积累下来的,在相同的条件下,我们为什么会比别人快,比别人聪明努力是自然的,更重要的是比别人总结的更多,我们不会重复的造轮子,所以大房子就这样一步一步慢慢的造起来了;

 

行业推荐:

行业推荐主要分为两个部分,一个部分是行业词表的生成,一个部分是行业推荐的业务情况:

行业词表的生成:

要做实时系统基本上大部分的工作都是在线下做的,线上留存的一般来说只是个KV系统(除非做实时推荐,会引入实时的排序机制),这么做的好处就是快,线上最重要的就是性能快(个人觉得)。。行业词表也是这么做的,把和业务相关的尽可能放在线下做;

主要分为两步:第一步是基础行业词表,设定候选集,这个候选集可以是搜索高的query,可以是消费高的关键词,不管是哪个,只要我们认为价值高就可以了,过行业分类工具,会获取每个词的分类和词性,将所有词按照分类进行聚类,就会得到一张表,这张表的Key是行业id,Value是该行业下对应的词,按照消费或者按照PV来排序都可以;tips一般行业分类的其他类都是不准的,所以务必在推荐时要进行删除;

第二步是根据用户来进行推荐,到这里其实是算作个性化了,因为行业分类的准确度和宽阔度和标注的体系以及标注同学的准确性有很强的关系,而在整个行业体系中,如五金类的子体系就非常非常乱,钉子、螺丝、铁丝、锁、合叶、插销、弹簧每个也许都可以作为一个子类目出去,但是实际上确没办法分的如此之细,所以在第一步的基础上,我们加了一个相似性计算,好处是什么了,当行业分的太大的时候,我们可以保证和客户相关的词排在前面;不过说白了,其实也很简单,每个推荐的词和客户的词(网页切词、已有的词)做一个相关性排序(plsa或者wordsim或者clicksim)都可以,然后对阈值较低的词进行过滤就ok了,最后生成的是一个用户+行业+词表的表,支持实时查询;

 

行业推荐的业务:

这一块的逻辑是客户进来,通过三个渠道去描述他属于哪个行业,这个渠道包括他自己的网页、他的历史已购词、他自己提供的词,去判断他所属的行业,提供几个候选项给他进行选取,选取后,用userid+行业id去获取推荐词,然后再进行一些简单的筛选就可以了;(行业也是较好的管理工具,可以按照行业来进行管理词表)

 

行业分类:

讲两种行业分类的方法:

基于种子词和二部图:先标注一部分种子词,然后词和客户相互投票,确定类别,最后收敛;

基于模型的分类:svm,adaboost,最大熵,标完再训练,就是个苦力活,取决于标注同学的知识背景和行业体系的合理性

一般来说,召回率差不多80+,准确率也差不多80+,更高就需要做更多的工作了;

 

顺带说一下聚类:

聚类就在二级行业的基础上,对行业下的客户按照特征进行聚类,得到的结果就是竞争对手;

 

分类的问题在于新的分类不容易找出,聚类的问题在于有一些聚类不明白为啥会聚在一起;

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注