推荐系统全链路设计:原理解读与业务实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 企业在构建推荐系统时会面临哪些问题

推荐系统很有必要,但它并不是说建就建的,企业在构建它时会面临很多问题。企业需要有意识地做好前期工作,为后续推荐系统的构建打下坚实的基础。企业面临的主要问题如下。

用户画像问题:用户画像可以说是整个推荐系统,甚至整个业务的基石。了解用户画像、设计用户画像是每一个产品负责人的必修课。企业需要有意识地去打造一套完整、可用的用户画像。推荐模型上线以后,需要对推荐模型和用户画像进行交叉迭代,从而实时提升整个推荐系统的效果。

打标签问题:标签体系主要完成对用户和物料的具象化。一般需要利用人工或者NLP(自然语言处理)技术,对用户进行意图和情感识别,为其打上标签,对物料进行文字识别或者图像识别,并将其归类。总体来说,就是通过AI技术或者人工将用户和物料进行归类、打标签。同样,打标签系统和推荐系统也应该交叉迭代,打标签系统通过对用户和物料打标签向推荐系统传递好的特征,从而优化推荐效果;而推荐系统接收打标签系统的标签后给出的推荐反馈又将反过来验证打标签系统的标签的准确性。在很多企业中,打标签部门和推荐部门并不相互联动,这明显是不可取的。

数据埋点和存储问题:对于用户迅猛增长的App来说,每天产生的数据量是巨大的,因此为不同类型的数据选择不同的存储方式很有必要。通常而言,存储大数据使用Hive,存储正常读取的数据采用MySQL,存储需要反复快速读取的数据采用Redis。此外,数据埋点的位置、不同阶段的埋点变化、数据的整合方式、对不同数据采用不同的存储期限,对于后续推荐的效果起着决定性的作用。企业应该充分考量自己所处的阶段,合理地设计数据埋点和数据存储方式。

链路优化问题:画像和数据都就绪后,接下来就可以对推荐系统的各个链路进行优化。在各大厂中,通常各个链路是由不同的算法工程师单独优化的,但事实上,各个链路是互相影响的。有时对一条链路的优化没有取得效果并不是优化本身有问题,而是后面的链路没有适应优化链路的改动。比如,优化召回层后,发现新召回层召回的物料很难排上去,在运行一段时间后才慢慢起作用,这是因为精排层没有见过新召回层的物料,需要运行一段时间,让精排层去学习新召回层的物料。因此,企业的算法工程师在对各个链路层进行优化时,一定要从推荐的全链路层角度出发进行优化,不要只看自己的“一亩三分地”。推荐系统是由一个个小模块组成的复杂链路,各模块既相对独立,又相互影响,它们共同作用来完成个性化推荐任务。