有一个问题需要解决:自动分类。做好个性化商品推荐,商品整理是第一站。类目,是最为基础的整理。我们需要将每一个商品分到一个具体的类目上去,商品数量庞大,这个过程要自动化,这就是商品自动分类问题。
我们来热热身吧,做几道分类题:
“Apple iPhone 6 (A1586) 16GB 金色 移动联通电信4G手机”
【第一滴血】so easy,是一个“手机”
“snidel * S家新款王小俊日系蓬蓬裙双层松紧高腰短裙裙裤现货实拍”
【主宰分类】嗯……应该是“半身裙”,这个要分对就需要动一动脑子
“华为 HUAWEI 电源适配器+数据线 5V/2A快充 USB带线充电头”
【分类如麻】这个是“充电器”,来个有点难度的
“福建特产 正宗金冠黑糖话梅糖200g 含上等梅肉 酸甜好滋味”
【无人能挡】这个……是糖果,有没有更变态的
“美利达勇士公爵500 550 600 650 700挑战者350可载人行李架后货架”
【变态分类】 靠关键词联想已经不够了,查资料后知这是一个“自行车配件”,哈哈,还有谁?!
“比iphone还好用的诺基亚手机的手机套”
【已经超神】这……
你看,解决这个问题并没有看上去那么简单,每个商品标题中不会100%包含类目相关信息,怎么破?
分类1.0
我们研发的一代分类技术是比较朴素的,通过对应表+特征库来解决。
对应表是一个简单的配置文件,保存(关键词,分类)的对应关系:
“手机” ——> 手机
“牛仔裤” ——> 牛仔裤
…….
特征词库是对应表的升级版(对应表plus?),维护的是(关键词组合,分类)的对应关系:
“Apple iPhone 6” ——> 手机
“棉麻 小脚 长裤 收腰 铅笔裤” ——> 休闲长裤
“美利达 勇士 公爵 行李架 货架” ——> 自行车配件
…….
这一整套样本数据完全由人工整理,分类1.0的程序也很简单,运行起来嘛……,“看上去”很可靠。首先,分类1.0一切的一切都建立在人工数据基础上,只要样本整理的好,分的结果就好,整理的不好就……。其次,人的精力是有限的,如果要大规模标注,就需要维持大规模的运营团队。最后,人没有整理过的商品特征,就没办法分好,bug数量处于失控状态。
随着数据指标的要求提升,数据集的增长,这套系统已经不堪重负。
分类2.0
因此,我们研发了新系统——分类2.0。分类2.0结合商品信息的特征,避免了由于特征库对分类带来的干扰,同时可以保证以较高的效率完成在线分类任务。(分类2.0由我司一枚殿堂级工程师所创作,哎呀,现在回想起来,那一段时光真是令人怀念……)
分类2.0的技术要点
1. 使用分词技术对商品标题信息分词处理,使用分词结果作为商品的特征tag,用tag来描述该商品
2. 过滤没有意义的tag,保留能够有效描述该商品的tag
3. 利用互信息计算训练集数据中,各个分类和该分类中商品所有tag的相关度
4. 预测一个新商品的类别时,计算该商品中的所有tag在每个分类中相关度值,使用分类中所有tag相关度值的和作为商品在该分类中的得分
5. 得分最高的类别即为该商品的分类
以一个具体的商品处理来说清楚这个流程,:
1. 基于商品库对商品进行分词处理&过滤无意义词
如:黑色iphone苹果手机新上市,分词&过滤结果为:iphone,手机,黑色
2. 利用互信息计算各分类与其中tag的相关度:
互信息计算公式:
I(x,y) = log(p(x|y))-log(p(x))
其中:
p(x) 代表 x在所有商品中出现的概率
p(x|y) 代表x在类别y中出现的条件概率
下表为10个商品的类别及分词结果
计算示例商品在上面的商品集中,手机类的互信息
a)概率计算
p(iphone) = 0.1
p(黑色) = 0.4
p(手机) = 0.2
p(iphone |手机) = 0.25
p(手机|手机) = 0.5
p(黑色|手机) = 0.25
b)互信息计算
I(iphone,手机) = log(p(iphone |手机))-log(p(iphone)) = -1.3863 + 2.3026 = 0.9163
I(手机,手机) = log(p(手机|手机))-log(p(手机)) = -0.6931 + 1.6094 = 0.9163
I(黑色,手机) = log(p(黑色|手机))-log(p(黑色)) = -1.3863 + 0.9163 = -0.47
c) 以此类推,可以算出iphone,手机,黑色三个关键词在3个类别中分别的条件概率以及互信息
下表为关键词在各个类别中的互信息
3.计算1中示例商品在各个分类中的相关度
Class(手机)= 0.9163+0.9163-0.6932=1.1394
Class(电脑)=0.0+0.0+0.2231=0.2231
Class(服装)= 0.0+0.0+0.2231=0.2231
4.由3可以看出示例商品分类为“手机”类别
我们用这套分类2.0系统,重新处理所有商品,随着训练集的不断扩展,准确率和召回率都在90%以上;同时也解放了运营团队,他们不需要再每天标记什么对应表了。
这,就是算法的力量!一个好的算法可以极大的提高生产力。通过算法提升产品流程,需要很强的功力,否则就像篇头漫画所表达的,不好的算法上线后,效果还可能退步。总之,算法研究就像基础科学,需长期投入,一旦开花,提升是极大的。
延伸阅读:
- 搜索推荐技术在电商导购领域的应用一:分词
- 搜索推荐技术在电商导购领域的应用(二):爬虫
文章评论 本文章有个评论