作为搞算法研究的人,我其实最在乎的不是这一年又有多少新算法被发明,而是各大企业如何在真实的大数据场景下应用了最新的人工智能技术。拿数据挖掘顶会KDD而言,一直都分有研究类论文和应用数据科学论文,后者主要是描述算法的实际应用,往往能给人很多启发。因为当一个算法真的能被用起来,才算是有了实际价值。因此前两天看到2021年淘宝的百宝黑皮书开放给公众时(关注 @阿里巴巴淘系技术,回复2021获取PDF),我也第一时间先睹为快。当然我最感兴趣的就是机器学习算法在淘宝这个级别的平台上的应用,而的确黑皮书里面有一些非常深入的解读,不是那种春秋笔法一笔带过,相信会对很多从业者有很大的启发。当然这本书本身内容其实挺庞杂的,建议大家通过关键词和目录搜索自己感兴趣的内容。
我首先注意到的就是在顶会KDD上的一篇应用数据科学论文的解读,Embedding-based Product Retrieval in Taobao Search(淘宝搜索向量化召回实践)。这篇文章其实解决的是一个很现实的问题,我们都知道现阶段各种在线平台都依赖于推荐系统为我们返回需要的结果。但是呢,虽然大方向上我们都在搜索一样的内容,但每个人都需要一些定制化。比如我搜索车,根据不同的年纪可能应该返回不同的结果,比如小朋友应该想搜的是玩具车,学生可能搜索的是自行车,青年更在乎轿跑,而中年人可能需要的能够装下一家人的买菜车。因此,如何既准确的返回结果,又能充分考虑到使用者的个人特性,是推荐系统的重中之重。而在黑皮书中,淘宝团队就对他们的这篇基于淘宝真实场景的文章进行了深入解读。简单来说,在现在的大数据场景下,我们每个人的每个搜索其实都被描述为一个“向量”,而我们希望学到的这个向量同时反应了我的“需求”和我的“个性”。淘宝基于多年的经验,发现了「向量召回模型相关性提升的主要收益来源于样本的改进」,并因此基于实战经验总结了不同样本的优势。并根据观察,在这个工作里对「难负样本」进行了特别处理,比如通过数据增强的方法生成难负样本等。
同时搭配在多个环节上的优化提升,比如训练样本、损失函数上、噪音处理上等,这篇论文提出的方法比基准方法有了较大的提高。和论文的纯英文不同,黑皮书专门总结了中文表格解释为什么淘宝的向量化召回会有更好的效果,比直接啃原文要来的快捷,比较适合我这种想要大致了解思路的读者。
除此之外,这几年很火的一个概念是云边协同。核心思路就是把复杂的运算放在云端(cloud),而在边端(edge,比如手机上)只进行轻量的运算。好处有很多,首先就是降低了云端的压力,充分利用边端的计算资源,毕竟智能手机/平板的计算能力已经越来越强了。其次就是数据安全,在边端对数据进行处理可以避免数据传输中和其本身可能造成的安全问题。
那么推荐系统也绕不过这个问题,如何能使用云边协同在轻量计算设备(比如手机)上进行高质量的推荐也就变得非常重要。而黑皮书也花了较大的篇幅对淘宝的端上推荐系统EdgeRec进行了解读,这一部分因为本身不是论文(虽然一部分内容发在了CIKM 2021上),因此也是我第一次看到的比较完善的技术说明(见下图)。
在我看起来,最有意思的部分是「端上重排」的设计。简单来说,就是我们不再完全实时的给用户展示所有推荐,而是综合手机上的历史缓存的内容,同时再根据用户的实时互动进行智能的展示。这个设计有很多好处,比如可以避免服务端的决策延迟,也就是我们常常说的网速慢时刷不出来内容。同时我们在端上的很多操作其实是有时序上的连贯性的,比如连续几天会搜索类似的内容,因此我们可以复用最近的端上缓存内容。而就像我前面的说的云端协同(黑皮书里叫做端云联合),EdgeRec首次实现了在端上进行大规模深度神经网络推理,下图左边就是端上,而右边是云端。当然书里面的介绍比我这个复杂深入的多,对大规模端上推荐系统感兴趣的小伙伴不妨去看看。
当然我另一个关注的重点是代码开发,毕竟我的一项本职任务就是从事开源系统的开发,因此也一直特别关注在成熟企业中的协同的开发内容。黑皮书也提供了一系列技术者的通用干货,我自己觉得有启发的首先是“程序命名的原则与重构”。这篇很实在的分享列出了作者的对于命名的很多经验,虽然不同的开发者和机构会有不同的体会,但其中很多是我们都能达成共识的。具体来说,作者给出的命名建议包括(1)名副其实:命名应该描述其所做的所有事情(或者它的意图)(2)避免误导:避免留下掩藏代码本意的错误线索(3)有意义的区分:如果同一作用范围内有多个命名,最好让它们之间有区分度(4)风格与抽象一致(5)其他规则。我觉得虽然在实际开发中我们很难做到所有规则,但如果能遵守,或多或少都能提升代码的质量。
而另外一条我觉得程序们不该错过的是来自于「旭伦」的分享:如何做好一份程序员的工作汇报ppt?其实作为程序员,我们的通病是做了太多,说的太少,以至于严重影响了我们扩大影响力,获得升职加薪,甚至被人抢了功劳。这篇分享中我自己最喜欢的部分是他把写PPT的逻辑思维拆解成了三个具体措施:(1)结构化的表达,要有条理(2)用事实说话,而不是简单空泛的形容(3)用数据说话,这是最好的例证。
而除了这些深度的技术、职场解析外,黑皮书(关注 @阿里巴巴淘系技术,回复2021获取PDF)其实有很多好玩的内容,适合在职场不同阶段的开发者。有不少也是我回答过的,比如“面试官如何判断面试者的机器学习水平?”和“程序员是要专精,还是要广度? ”。因此在我看来,黑皮书是一本面向不同背景的优秀的技术、职场书籍。虽然有点杂,但无论你做的是前端还是后端,开发还是算法,实习还是技术高管,总会有一些新鲜的内容你不曾了解。因此特别推荐给大家,从真实经验中近距离观摩技术从业者的生活和工作。
我觉得这种书,主要是看的人抱着什么心态和目的去看的。如果是个小白,想看这类书,从书中找到进入行业的钥匙,大概率是不能实现的。
如果你抱着读完这本书能给你带来什么思考,反思,然后再结合自己的自身情况具体问题具体分析,那这样的书读起来会很有收获。
就像是这本书里说的那样:好的技术氛围就是——分享与交流不止于内部团队,不止于业务形态相似,我们期望在不同业态、不同背景的碰撞和交流中,给彼此带来更深的技术理解。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有