近年来阿里不断运用深度学习、强化学习等人工智能领域的相关知识优化自身电商平台的搜索引擎和推荐系统,让其从冷冰冰的系统不断成长为越来越懂用户的智能购物助手。
日前,《尽在双11》人工智能部分执笔人&阿里技术专家 乐田 与 仁重 就 “人工智能/机器学习技术在电商场景下的应用” 问题在OSCHINA与大家开展了问答活动。
本文整理了两位老师在开源中国高手问答中的精彩问答。
1 . 机器学习在电商方面除了广告推荐之类的方面外,还有其他的应用么?谢谢,还有学习这方面需要哪些知识
机器学习在电商领域的应用从外部产品来看主要涉及3个:搜索、广告、推荐。从内部来看,从商品选品、流量生成机制、物流优化、物流机器人、智能客服、互联网信用贷款等方面都会用到机器学习。 学习机器学习有之前传统的统计学习例如《The Elements of Statistical Learning》,《支持向量机导论》、周老师的西瓜书等经典教材;现在最新的Deep Learning也出书了。
2 . 机器学习在阿里电商场景下的最常用算法有哪些?阿里对哪些算法做了有针对性的优化和改进呢?阿里目前推荐系统从用户访问到根据访问记录进行推荐的实时性是多久?
LR、GBDT、RNN有不少人在用了,还有首创的MLR、ItemCF。。针对性的优化和改进主要是在适配阿里的计算平台和大数据方面,这方面例子比较多,如对ItemCF 的Swing算法。
3 . 现阶段的人工智能离传统的应用程序员还是很远,请问有什么办法能够快速普及吗?
是技术发展过程中本身的分化导致的,技术发展就是要普惠更多的人,让更多的人参与门槛持续降低,无论怎么低,通晓基本原理和基本的训练是必要的,跟学编程差不多。
4 . 深度学习算法在实际应用中是否比较曲折,对于数据的抽象工作特别难,中小型公司是否更加适合随机森林这种非深度算法?
选择团队能驾驭的算法,对于新方法可以培养团队的驾驭能力。
5 . Tensorflow 这个框架主要应用在哪些方面场景?
用户和商品的Embedding、Wide&Deep、GANs等。
6 . 阿里有计划使用Tensorflow加入推荐系统里吗?
有较多的场景在用Tensorflow了。阿里推荐系统的逻辑架构在《尽在双11》一书上有介绍,具体的基础设施可能阿里特色较多一些。
7 . 目前推荐系统多数是使用标签模式来给用户推荐吗?怎么判断用户符合系统推荐的商品?除了机器推荐,后期会有人为控制去跟进吗?
部分推荐场景如“微淘”,是使用了标签进行推荐的。使用标签推荐的前提是这种推荐对象更适合标签的方式来描述。推荐体验分析相对搜索结果分析是个全新的问题,需要考虑个性化,还有选择评估样本的代表性。
8 . 让机器自动学习怎样去推荐,最后会不会连开发者都不知道系统是怎样推荐的?如果这时候发现系统推荐的商品有问题,怎样确定问题出在哪里?怎样调整系统的算法?
这涉及到推荐系统的自省(reflection)能力,从实现上说,自省能力是推荐系统正向过程的逆过程,由于涉及算法比较复杂,逆向过程只能在部分上反映推荐过程是怎样的,一定程度上可以debug推荐结果的问题。
9 . 统计用户行为需要搜集并保留所有用户的所有行为,除了购买行为外还包括浏览行为、关注行为、加入购物车行为等,请问采用单元粒度的分布式架构是否更为合理?
单元化是在服务端(在线服务)进行的,对用户数据汇总分析不是单元化的,而是把所有单元的数据汇总的结果。
10 . 外网的数据,如何整合到推荐系统里,提高推荐的正确性?
外网的数据必须要能描述用户或推荐对象才能使用,而且考虑到站内的数据的完整程度,外网的数据补充进来价值会不同。
11 . 小公司要做实时推荐有什么框架可以使用
选择开源的工具和平台,例如Spark、Storm等,结合HBase计算端存储和LevelDB、Redis等在线端存储应该是个可行的方案
12 . 阿里的推荐算法用的在线的多还是离线的多?因为可供学习的数据很多,每次从头来量应该很大。
部分场景是纯在线的,部分场景是在线离线结合的,还有一部分是纯离线的。离线处理数据重新计算是个问题,因此离线也不太可能处理很长时间的数据。
13 . 现在很多推荐算法是不是有问题?总是推荐我买过的东西,并且从品牌层次和商家都不匹配。
我们针对用户已经购买的商品进行了部分过滤,商品类目也是个比较复杂的事情,有时候看起来是一个品类的商品,实际上是属于不同的类目,比如运动鞋和男鞋就是不同的类目。这个问题已经比较久了,只能逐步解决。
14 . 算法程序建模之后,怎么验证代码的准确性? 程序员之间互测? 算法调优有啥思路?
算法一般都会隐藏一些“bug”,只不过这些bug对结果的影响大小的问题,所以坊间也有通过修复bug来提高效果的。算法建模之后通过test数据集进行验证。
15 . 像淘宝每天每周都有很多新加入的商品,请问算法团队是如何做的?新加入的商品应该如何给排序值,确定值大小?
冷启动的商品会分配极小的流量进行探索性投放。
16 . 目前可以使用算法编写的语言很多,python吗? 贵团队是如何决策的?
底层的算法和工程系统使用C/C++开发,应用层适应多变的需求,使用Java开发,Python和Java的功能类似,在运行效率和库的完备度方面弱一些,也有使用。
最后,安利一下这本著作——《尽在双11》。本书以双11为着眼点,从技术的角度,展示了阿里巴巴的演进、变革与发展,系统地阐述了阿里巴巴重要阶段的技术进步历程。