1.6 构建推荐系统的阻碍与挑战
推荐系统善于解决大规模用户场景下大量信息的精准分发问题,它解决的问题看起来很简单、很朴素,那么是不是可以非常容易地构建一个效果很好的推荐系统呢?答案是否定的。要想构建一个高效的、有价值的推荐系统是一件很困难的事情。这里简单说一下构建推荐系统可能遇到的困难、障碍及挑战。
首先不是任何情境下的产品都需要推荐,只有在你提供的标的物足够多,用户无法通过浏览完所有标的物来做选择时,才有推荐的必要。比如苹果官网上卖的只是很少的几个品类,每个品类下的东西加起来也没有多少,这时用户可以直接浏览所有产品,找到自己喜欢的也很方便,根本不需要借助推荐系统。
另外,前面说过推荐系统是一个比较大的系统工程,有效的落地需要相当多的资源投入,需要领导的大力支持,因此领导一定要意识到推荐算法的价值。为什么今日头条可以从传统的新闻客户端脱颖而出,正是张一鸣认识到了推荐的价值,整个公司从创立之初就以算法为核心,围绕推荐系统构建好的产品,优化用户体验,不到8年就成为估值超1000亿美元的“独角兽”,让腾讯和百度都感受到了极大的威胁。
最后从技术工程实现的角度说说构建推荐系统面临的挑战。具体而言,构建好的推荐系统面临如下挑战。
·推荐精准度的问题:这需要通过构建好的推荐算法来实现,同时要有足够多的用户行为数据来学习算法模型,数据预处理的质量对结果也有较大影响。现在基于深度学习的推荐系统可以达到很好的效果。
·冷启动问题:新用户、新标的物没有相关行为信息,这时系统怎么给用户推荐、怎么将新标的物推荐出去?在推荐系统落地过程中需要做结合业务场景的特殊处理,才能提供好的用户体验。
·服务质量问题:如果你的产品有大量用户访问,构建一套高效的推荐系统,满足高并发访问,为用户提供稳定、快速、高效的推荐服务,也是一个巨大挑战。
·数据缺失的问题:现实场景中一定存在用户或者标的物的信息不完善,或者部分信息有误的情况,这些也是在构建推荐算法模型过程中必须要考虑和解决的问题。
·处理非结构化信息的问题:用户和标的物相关信息有可能是非结构化信息,比如图片、视频、音频、文本等,怎么高效地利用这些信息,为推荐模型提供更多信息输入,是比较棘手的问题。随着深度学习在推荐系统中大规模运用,这类问题可以得到较好的解决。
·数据质量问题:一些噪声及恶意攻击会产生大量脏数据,对推荐质量产生很大的干扰,保证训练数据的质量是ETL和特征工程需要解决的重要问题。
·大规模计算与存储:大量的用户和大量的标的物对数据处理和计算造成很大的压力,我们需要采用分布式技术(如Hadoop、Spark等)来做数据存储、处理、计算等,所以想要很好地落地推荐系统,需要企业构建一套高效的大数据分析处理平台。
·实时反馈:为了给用户提供实时的个性化推荐(如今日头条的新闻推荐等),需要实时收集、处理用户的反馈,做到更及时、更精准的推荐,为用户提供强感知的推荐服务。要对大规模用户做到实时响应,对算法、计算、工程都是相当大的挑战。
·用户交互问题:推荐系统通过用户与产品的交互来触达用户,所以好的UI及交互体验对推荐系统发挥真正的价值起到非常关键的作用,有时好的UI和交互体验甚至比好的算法更管用。
·评估推荐算法的价值:推荐系统怎么服务于业务,怎么衡量推荐系统的价值产出,怎么为推荐系统制定业务指标,以及怎么通过指标在提升推荐系统效果的同时促进业务发展?这些都是摆在推荐系统开发人员,甚至是公司管理者面前的重要问题。只有很好地度量出推荐系统的价值,才能更好地优化推荐系统,发挥推荐系统的作用。
上面虽然说了这么多构建好的推荐系统需要克服的困难和障碍,但是也不要因此丧失信心。因为推荐系统是非常有价值的,值得我们花精力、时间和成本去构建。推荐系统的极大价值也驱使越来越多的公司将它作为产品的标配。