搜索
查看: 1991|: 0

阿里巴巴_2014西湖品学_分会场3:基于导购的大数据应用(1)by刘明

[复制链接]

191

主题

18

回帖

694

积分

高级会员

积分
694
发表于 2014-7-29 11:26:28 | 显示全部楼层 |阅读模式
首先介绍第一位嘉宾是刘明先生,来自美国eBay的数据科学方面的软件开发经理,主持产品目录和分类方面的研究,以及大数据的挖掘、属性抽取以及自然语言的处理方面有比较深的研究。他之前供职于美国微软公司,主持开发图象搜索方向引擎。在加入eBay之前,领导科研小组在多模态领域均有建树。下面让我们首先邀请第一位嘉宾刘明先生。


    Ming Liu:我叫刘明,来自美国ebay,我在ebay领导一个数据科学家的小团队,我们做的是很多关于目录分类、大数据上的数据挖掘和发现的一些项目,很高兴这次能够收到集团数据委员会以及集团研究中心举办的这次西湖品学大数据峰会的邀请,给大家分享我们ebay在数据研究上的一些经验,我想中间很多问题也是我们阿里的朋友们所共同关心的。
    首先我讲一下为什么要做目录树的分类,它的主要动机是什么?接下来我们介绍一下基本情况,目录树在ebay是什么样一个情况?用户体验是什么状态?紧接着我们线上的产品系统是一个什么样的系统,都是有什么指标?基本指标是什么情况?接下来我们介绍一下我们的发展,用深度学习来实现进一步的提高。接下来是实验结果比较和分析,最后是总结。

    因为目录树这么重要,所以ebay是需要给每个商家提供这个结构化信息。这当中就带来很多很多不方便,对于商家来讲,因为最好是什么都不需要提供就可以卖。因为这个目录树这么重要,我们又没有办法完全自动的去做标注,所以我们是要求每一个商家在创立一个产品招贴的时候,必须给我们对应的目录树,而且必须到叶结点。所以迫使得我们必须给用户提供一些方便、工具,让他们能够比较快的比较省事的把叶结点标注上。另外我们需要整合一下大的卖家,零售店想在ebay做销售的话,他也必须提供这些目录,但是因为他的商品量数目太大,可能不太合适让他们一个一个去标注,所以我们想提供一个相对自动一些的,其中的一个解决方案是从他们目录到我们ebay目录的映射,这也是我们的动机,为什么要做这样一个项目。
    现在我们来看一看现在如果一个卖家要生成一个招贴的话,他需要怎么样来标注这个目录?他可以有两种方案,他可以通过浏览的过程,一层一层的找到他认为合适的目录树结点。像这种情况下,比如说这个卖家要卖一个皮带,所以他通过三层的目录找到了他合适的目录树结点。但并不是所有卖家都会这么运气,像这个就经过了五层,甚至最长会通过七层八层。所以通过浏览找到合适的目录树结点,基本上不太现实,这也是我们为什么要提供一个相对来讲方便一点的工具,“目录推荐”就是这样一个工具。你敲一个招贴的标题,然后我们通过一些办法找到最可能的目录树结点,通过用户销户,这时候卖家挑一个中间他认为最合适的,这样的标注的话比前面的用户体验相比更加快捷、方便,同时也减少了错误的发生。
    对于KNN五的分类器的话,对比较长的标题开头会有比较好的效果。因为比较长的标题,相当于查询的约束比较多,你找出来的相似的招贴,真的是比较相似。如果是非常短的关键词,比如说Ipad,这一个关键词的话,可能会找出很多含有这个关健词的招贴。很多招贴是从附件里来的,比如说Ipad kiss等等,有些是从真正的产品,从Ipad Player这块回来的招贴。如果从招贴数量上来讲,可能Ipad Kiss会远远大于Ipad Player招贴数目,如果只是做简单的投票的话,很有可能对于比较短的和比较常用的关键词,KNN会分类到附件这一大类里面去。对于这个问题,我们借用了用户的数据,因为我们知道关键字用户点击了哪些目录,在这个基础上我们可以做一些聚合。我们知道Ipad这个关键词,用户更多的是点击Player这个目录。对这方面,我们倾向于相信用户比较多一些。简单来说,如果有用户的话相信用户,如果没有用户的话,我们相信KNN的分类器。因为KNN利用了现有的分类的平台,基本上能够完成处理实时ebay的流量,基本上没有问题。

    为什么这么难达到高的准确率?,这中间有好几点,一个是ebay整个系统是一个不停变化的动态系统,不停有新的目录产生,不停有新的目录淘汰掉,另外每个目录里面产品也是动态的,不停有新的产品在卖,老的产品在淘汰,所以商品的招贴也是实时在变。这些因素都导致了这个原因,再加上KNN本身的局限性,导致了top1的准确率不是很高。
    我们了解了现在的局限性,我们讲一下KNN和我们现在做的深度学习的优缺点。优点,KNN是非常非常简单,它可以充分利用现有的搜索平台。缺点也很明显,因为KNN是基于现在的搜索平台,而搜索还是应用传统的算法。总之,所有的算法,它不是为了我们目录推荐这个目标的设计,它是为了比较通用的信息查询和文本排序所设计的。所以作为一个相似度的测度来讲,对于我们目录推荐这个问题,并不见得是最优的,这是它中间很大的一个局限性。
    我们用的深度学习是基于Autoencoders,或者叫自编码的使用网络。自编码网络很简单,有用户的层,纬度是一样的,这个纬度是一个平行量,几乎可以忽略不计。这个自编码的目标是为了最大目标的重构输入情况,这个准则实际上是一个无监督的网络,因为它的准则是说我要使得我的输出尽可能的像我的输入,这是一个自编码的准则,这也是一个典型的非监督的组织。有了这样一个网络训练好了以后,中间的引层,可以作为下一层的输入,就是我们通常讲的堆叠的自编码的网络。堆叠的意思就是,将第一层的引层作为第二层的输入,这样的话你可以训练下一层的自编码网络。依次类推可以有很多很多层。堆叠的自编码网络好处是说,因为它可以有很多很深的网络结构,有更好的容量,可以描述更复杂的模式。这是我们现在网络结构,中间有三层堆叠的自编码网络。这是输入层,输入层大概取决于你做分词矢量化以后级别的大小。最后一层,有点像逻辑回归的模型。相对来讲,比传统网络规模大很多,主要训练是一个问题。因为网络比较大,模型的参数比较多,所以一般都会有一些无监督的学习,先去重构输入的本身,这相当于是ebay上所有的数据,哪怕是没有标注的,也可以用来去训练这样一个堆叠的自编码网络。因为这样一个特征,它可以尽可能利用所有的数据,不需要所有的数据都具备标注,所以可以用来训练相对比较大、比较复杂的网络,去聚合比较多的参数。
    这是我们观察到的一些现象,刚才讲了,KNN是基于普通的搜索引擎,而普通搜索引擎基本排序算法是IDF算法或者类似的算法。IDF算法如果这个词在你语料库里出现的越少,它认为越少量。所以,我们查询“coach scarf”,scarf是围巾的意思,coach我们大家都知道。如果查询的关键词是“Coach scarf”。我们简单比较一下这两个,如果我们知识库里面有这样两个招贴,coach cap帽子,一个是另外一个品牌。因为coach是0.068,scarf相对来讲更小,出现得更多,它更频繁地出现在语料库里面。因为KNN的方式,它会认为相对来讲,coach更不重要。如果是出现的是coach cap的话,会比另外一个品牌更加相关。我们知道对我们来讲,这是两种完全不同的商品,我们不应该把它看作是相同的招贴。反过来,深度学习,coach是一个关键字,这个关键字是0.49,scarf为0.42,有相近10倍的权重。也就是它认为对于目录分类这个问题,scarf远比coach重要。这也是我们说为什么深度学习它能力真正学到很好的相似度的测度。这是用一个例子来做一个佐证。
    这是我们现在的一个系统,很简单,当一个招贴进来,我们做一些分词和归损化,然后做一个矢量。这里面我必须介绍一下,我刚才讲了整个ebay美国网站,基本上有将近2万个目录树结点,所以我们不可能说用一个分类器来解决所有的问题,所以我们设计了将近双层的分词结构。第一层分类信息分到顶层目录。然后每个顶层目录再训练一个分类器再分到最后的叶子结点,所以我们为什么我们需要有一个层次的系统。
    这是一个简单的结果比较,我们大概对5个最重要的顶层目录里面,挑了大概20万个招贴,大概比了一下KNN和基于深度学习的,深度学习的显著地提高精确度。如果达到这个精确度,基本上跟人没有什么大的分别,对于比较限定的深度学习来讲,也是提高显著。
    我刚才介绍了我现在的工作,PPT上是我们现有的成员,基本上都是博士毕业,做一些数据挖掘、数据科学方面的工作。
    提问:我想问一下你们用深度学习,是自己开发的吗?有什么训练吗?
    提问:您讲的分布式的这块?
    提问:如果非常大的话,这种是不是非常复杂?
    提问:我们这个网络是Autoencoders的网络,为什么我们不以分类为目标优化这个网络呢?第二个问题,如果我们用Autoencoders做网络的话,输入的特征是不是要一些深入处理,比如说PCA或者ICA做一些处理?第三个问题,分布式是把数据分成两部分,分成两个部分,分别训练两个网络,我个人觉得训练的两个网络参数是不是非常不同的,这样的话聚合是怎么弄的?
    第三个问题,这是一个很著名的悖论,理论上说初始的模型参数都是相同的,这几个不同的结点初始的模型参数是相同的,但是Data是不同的,所以最后得出来的是更新,得出的是新的模型参数,相当于是每个不一样的模型参数。我们是做了一个平均,所以从这个意义上讲,我们是保证你最后收敛。像最近像谷歌最近做的一些工作是,不做这个分析,每步结束之后给下一步结点计算,那是没有理论上保证收敛,但是实践当中看到的是基本上总是收敛,有点像是经验的一些种类。
    刘明:最后有监督的并不是海量数据,是这样,我们先用无监督的把每一层的Autoencoders参数大概学一下。有这样一种参数,相当于给后面的有监督学习提供一种初始值。对我们这个网络来讲,相当于这一重是用无监督学习的,无监督学习结束以后我们相对来讲有比较好的初始,这层是加的,这层是反向调节算法来调整最后网络的权重。
    还有一个问题,你刚才有一个结果是实现了ADSM对比,ADSM也是有这个功能的,您能不能分析一下,在这种情况下,这两个为什么会差异比较大呢?
    提问:也就是说单个词的情况会比较好。如果用KNN的话,复杂度上实现是不是有问题?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 01:30 , Processed in 0.129190 second(s), 25 queries .

快速回复 返回顶部 返回列表