梅长苏:推荐系统难道就是琅琊榜?

500

图文原创:谭婧

 

琅琊榜,是琅琊阁的榜单。

 

有天下高手、帮派、富豪、美人等众多排名。

 

百年风云多变,榜单数目向万级进军,江湖豪杰趋之若鹜,可制作榜单的效率却低,需要计算机软件加速。

 

琅琊阁主,一筹莫展。

 

琅琊阁作为顶级战略智库,文化才子多,技术高手少,且听闻,还需算法工程师和算法科学家助阵,一时也不知去何处结交。

 

阁主突然忆起“麒麟才子”,梅长苏。

 

“下帖,有请。” 

500

领导下了指示,退休也得返聘。

 

梅长苏容颜依旧清朗,一改往日月白衣衫,身着格子衬衫。

 

阁主倍感意外,嘴上说:“怎么你改行,连装束也变了?”

 

心里却想:“气质这一块还是拿捏得死死的。”

 

“莫非阁主忘了,穿格子衫的,还有一位后起之秀,剑走偏锋,一手刀法精湛绝伦,跟高手也不客气,见人就叫嚣:砍一刀!”

 

阁主看看手机里七大姑八大姨的微信群,无奈笑笑。

 

梅长苏缓声说道:“推荐系统为电商用至极致,它的本质是排名,琅琊阁不妨上一个推荐系统。”

500

 

众人听后,一脸迷茫。

 

“单看兵器,所用皆不同。”

“百种重兵器,千种轻兵器,万种暗器,按江湖侠客的喜好是一种排名。”

“冲锋陷阵,攻城掠地,马上对阵,近身过招,按场景又是另一种排名。”

500

“排名,本质上就是兵器推荐系统。”

 

梅长苏,果然名不虚传。

 

“以此类推,护具甲胄,带刃武器,防御盾牌,都应该按侠客的使用体验和喜好排名。”

 

阁主点头附和:“某豆电影榜单,虽然经典永流传,但也略显单一。”

“道理易懂,还是得讲透一个成熟产品。毕竟产品是技术和市场需求的综合体现。”

 

梅长苏思忖半晌:

“亚马逊云科技的的个性化按服务Amazon Personalize”。

500

 

500

正说话间,有人打断梅长苏:

 

“上好的推荐系统,中国互联网各大门派,无论草莽,还是枭雄,均钻研已久,勇猛精进。推荐这门手艺,中国并没有落后国外,为什么讲亚马逊云科技的产品呢?”

 

梅长苏凝视着楼台上方的“琅琊阁”三个字,他的回答,惜字如金:

 

“全托管,好理解。”

 

全托管是什么呢?是亚马逊云科技专用术(黑)语(话),不少外围人士云里雾里。

 

若有播音腔的电视广告语,那就是:“用户只关心应用层的事情,基础架构交给亚马逊云科技。”

 

梅长苏说:“不想听我讲的,可参考《开发人员指南》。

共计408页,颇为详实。”

500

 

当今之世,但慕虚名。

 

外行看兵器,内行看兵法。

 

人工智能这一兵法,红极于武林,可玩得极精的高手数量极少。

 

推荐系统所用之处,业务好理解,场景不复杂,可从工程角度来看,却异常繁琐。

 

一些没有经验的企业,入门困难,处处踩坑,好不狼狈,好比拿了《葵花宝典》就按老思路挥刀自宫,翻书一看,大惊失色:“新版宝典,无需自宫。”

 

如若专门养一个工程和算法团队来维护,银两花销极大,非豪门贵胄,无法享受。

 

再反观互联网公司,推荐系统太过重要,是花重兵重金投入打造的护城河。

 

实力不可小觑,但也有一个问题随之而来,很多互联网大厂对推荐系统过度投入(overinvest),做了很多高度定制化的工作。

 

青铜玩家,一时一刻便想掌握,谈何容易?

 

琅琊阁也是如此,精简部队作战,无需航空母舰般复杂的推荐系统。

 

手起刀落,也是道行。

 

人工智能产品走过数度春秋,有一高手公认的套路,从Amazon Personalize身上可略见一斑。

 

很多第一次用推荐系统的厂商,花拳绣腿,混乱之极,毫无章法。

工具,数据流,方案,东拼西凑,把业务部门搞得鸡飞狗跳,简直是“纵兵扰民”。

500

 

云厂商没有前朝旧历的固化思维,这套推荐系统的“心决”,上手易,功效强。

 

常言道,外练筋骨皮,内练一口气。世人皆知,内功是很多练武之人功力拔高的天花板。

 

内功不积跬步,无以至千里,想迅速上手,唯有一个“借”字,借云厂商的内功,为己所用。

 

这六大步法,乍看平白无奇,人人可把玩,实则“借内力”突破了内功对武功发挥的限制。

 

登时,梅长苏神色肃然,旋即开始讲解。

 

一、先懂业务,后懂推荐,放哪里,如何放?

二、如何准备训练数据?

三、如何建解决方案?

四、如何评估解决方案?

五、如何部署模型?

六、如何推荐?

 

500

展开来说,就是:

 

步法一:先懂业务,后懂推荐,放哪里,如何放?

 

业务流程中哪个地方,需要什么样的推荐?随后创建相关数据集和数据集组。

 

所需内功:用户、场景、物品的信息如何收集?元数据是什么?架构数据的类型是什么?数据如何存储?存储在哪?买哪个数据库?数据湖如何使用?

 

步法二:如何准备训练数据?

 

所需内功:历史数据如何导入到数据集组?用户在线交互事件如何记录?训练和存储服务如何打通?Docker技术相关难点怎么解决?

 

步法三:如何建解决方案?

 

所需内功:模型训练的计算资源如何管理?模型如何管理?每次训练模型时,都会有一个新的模型版本。线上几十个模型,模型版本怎么管理?模型效果不好,如何回滚到上一个版本?

 

步法四:如何评估解决方案?

 

使用指标评估解决方案版本。

 

所需内功:模型训练的计算资源如何解决?需要多少GPU机器?数据怎么拉到GPU机器上?分布式处理平台怎么用?

 

步法五:如何部署模型?

 

所需内功:训练好的模型如何直接上线?TensorFlow-serving开源方案怎么用?流计算平台怎么用?

 

步法六:如何推荐?

 

不同场景,不同算法,都要先把模型训练好,进而创建不同的解决方案版本,进而推荐。

 

500

借内功,发威力。这一串拆解,让一众阁老瞠目结舌。

 

梅长苏置之不顾,继续阐述。

 

使用推荐产品Amazon Personalize,攻克内功的活儿,都甩给云计算厂商。

 

所以谓之,借内功。

 

六大步法,逐个通关,门槛降低,可发威力。

 

可敲代码,用命令行(用网页的方式访问Amazon Web Services控制台),零搭建,易上手,完善,轻量。

 

自己的技术,自己先用。

 

自家的酒,先干为敬。

 

作为推荐算法发源地之一,亚马逊电商是推荐系统的经验来源。

 

1998年,Amazon网站从庞大的图书目录起家,开始做书籍推荐。

 

推荐技术在内部大规模使用,真实困难,又推动技术攻关。梅长苏似乎不甚在意的样子:

 

“江湖上,推荐系统产品很多,有的品牌的机器学习平台上面也有推荐系统,但像琅琊阁这样,只有推荐需求,买机器学习平台,就太重了。”

 

阁老们,点头回应,言之有理。

 

“虽然原理大同小异,但是,Amazon Personalize试错周期短,不行就换掉,沉没成本小。”

 

推荐系统的原理,是从数据里面找规律。

 

推荐算法就像解题,已知,求解。已知了一些人的兴趣和喜好,求其他人的。或者已知了你过往的行为路径,预测将来的。

 

物以类聚,人以群分,还可用“朋友喜欢”作为一条线索。

 

比如,有三个人,

张三喜欢一个商品,a。

李四喜欢三个商品,a、b、c。

王五喜欢两个商品,a和c。

 

推荐系统算法认为,张三李四王五有相似之处,因为都喜欢商品a,而喜欢a的人同时也喜欢c。

 

所以,把商品c也推荐给张三。

 

梅长苏淡然说道:“只是将一些消费者身上的共同点,用在了别的消费者身上。”

 

不少阁老暗自惊讶,几年未见,梅长苏对科技的理解令人惊叹,随即又问:“那个推荐模型里都有什么?”

 

梅长苏目光微微一凝,缓声说道:

 

“推荐模型大致可分为三部分:召回+排序+再排序(补充策略与算法)。技术细节按下不表,先理解本质。”

 

500

排序是核心思想,最终都是想要一个最好的排序,最贴近人心的“琅琊榜”。

 

世间之事,人心最为曲折,推荐就是,随其曲折,借力用力。

 

又有阁老发问:“那召回是什么?”

 

梅长苏又道:“人的内心再丰富,也装不下整个世界。”

 

召回是,在排序前先挑一轮,挑出可能感兴趣的商品。电商商品池子里面有海量的商品,选商品,到底选哪些,要有个方法,就是召回算法。

 

如今电商的商品数量,就像海洋,全部排序,计算量可太大了。

 

所以,要分批次打捞,从几亿商品里先捞几百万,再从几百万中捞出几万,范围越来越小。

 

专业说法是,排序时使用复杂模型,用多特征(比如用户的各种喜好)精准排序。如果直接对百万量级的候选物品进行逐一推断,那么计算资源和延迟都是在线服务无法忍受的。

 

召回算法包括一些计算效率高的算法,如,协同过滤。

 

2003年,《IEEEInternet Computing》杂志上一篇流传颇广的文章首次揭晓了亚马逊电商协同过滤算法的秘密:

“Amazon.comRecommendations: Item-to-Item Collaborative Filtering”。

 

作者是Greg Linden,BrentSmith,Jeremy York。这篇经典论文,给现在很多流行的推荐算法提供了思路源泉。

 

口诀是:

 

精确排序,精工细作,算得慢。

召回算法,大开大合,算得快。

 

加入召回这个过程,利用少量的特征和简单的模型或规则,进行候选者的快速筛选,减少精准排序时的时间开销。

 

“召回算法”先用肩膀扛了下了一些压力。所以,先召回,再精确排序。

 

一个维度明显不够,综合“多样性”“流行度”“新鲜度”等多个不同的思路设计。

 

唯“流行”论,

就是什么流行,什么排在前面。

唯“爱好”论,

萝卜青菜各有所爱,喜好程度优先。

唯“新鲜”论,

先新闻,后旧闻,新闻实时性排序。

 

算法凝聚了设计者的高超智慧,最终形成推荐。

 

说得学术一点,推荐的过程,就是从次优解,到最优解。不停调优,就是不停地找最优解的过程。

 

推荐系统在工程上的复杂性,加大了用好这一神器的难度。

一面考虑很多数据处理、特征工程的事情。

另一面考虑很多底层架构运维的事情。

何其痛苦,吁嗟再三。

 

在Amazon Personalize中,从数据的特征抽取到模型的分布式训练,再到实现高可用架构部署,全托管,不操心。

 

晚霞渐收,山间明月升起。

琅琊阁,殿塔均浸在溶溶月色之中。

 

梅长苏说:“第三个部分,也是最后一个部分,不同场景还需要适配不同的算法。

 

Amazon Personalize分成三类,这在《Amazon Personalize开发人员指南》中叫,配方。”

500

500

 

500

500

外界看来,Amazon Personalize可称之为,SaaS产品。

 

一方面有亚马逊云科技的独家算法,另一方面封装简化,只要调API就行了,适合青铜选手用。

 

与SaaS相呼应的是亚马逊云科技的PaaS产品。

Amazon SageMaker是亚马逊云科技的机器学习平台,有全面的机器学习工具,但需要有AI开发经验的开发者才能用好。

 

如若兄弟里连一个有AI开发经验的研发人员都没有,就别考虑了,Amazon SageMaker适合王者选手用。

 

若情况更为复杂多变,琅琊阁也可以选择亚马逊云科技解决方案。

部署的相关算法和所有实现代码,对琅琊阁来说,都是公开的。

按需调整,再集成到企业应用代码里面去。

 

推荐系统虽然风靡江湖,但是于细微处见真章。一些难点,异常棘手,比如实时性和冷启动。

 

人的兴趣总在变化,实时性很重要。

几分钟前,在看球鞋。

几分钟后,想看手表。

就是谁也不想用一个反应迟钝的推荐系统,用户已经离开APP了,还没有想好推荐啥,一脸呆萌。

 

推荐系统需要比较快地反映出用户的兴趣变化。使用“用户个性化”配方构建的解决方案,不仅每2小时模型会自动更新,还可以用一键开启事件跟踪器功能实时跟踪用户行为变化。

 

模型更新的间隔时间越长,推荐系统的效果越差。

 

数据从无到有的过程很痛苦。冷启动,就是从“一无所有”开始推荐。这是一道送命题,能单独讲个三天三夜,就不展开了。

 

梅长苏从容不迫地收尾:

 

“琅琊一卷风云去,百年风霜历,江湖次序定。摆脱996的福报就靠一款成熟且方便的产品了。”

 

听罢,琅琊阁老们惊拜:“佩服佩服。”

 

梅长苏补充了Amazon personalize隐藏的三个暗器。

 

暗器一

AB测试方便。

新的模型准备上线时,少量流量进行AB测试。

 

暗器二

推荐模型上线自动化方便。

模型上线时,流量随时切过去,不对生产系统造成影响。降低模型运营的成本。

 

暗器三

系统吞吐量(TPS)设置方便。

设置值可以自动并发,不需要有专人再写扩容程序。

 

明枪好躲,暗箭难防,

诸位江湖豪杰,

各自珍重,来日再会。

 

(完)

更多阅读:

1. 搞深度学习框架的那帮人,不是疯子,就是骗子

2. DPU加持下的阿里云如何做加密计算?

3. 超级计算机与人工智能:大国超算,无人领航

4. 隐私计算:消失的人工智能 “法外之地”

5. 售前,航空母舰,交付,皮划艇:银行的AI模型上线有多难?

6. 我怀疑京东神秘部门Y,悟出智能供应链真相了

7. 开源系列:AI对抗攻防算法开源平台,哪家强?

8. “重型卡车自动驾驶,无量产,则无意义”赢彻科技CTO杨睿刚博士观点

9. 中美神同步,“网约车司机不配有劳动保障吗?”

 

 

500

最后,再介绍一下主编自己吧。

我是谭婧,科技和科普题材作者。

为了在时代中发现故事,我围追科技大神,堵截科技公司。

生命短暂,不走捷径。

还想看我的文章,就关注“亲爱的数据”。  

这次分离,

要说再见

500

全部专栏