写在前面:本文主要针对推荐系统做一些整体介绍,由浅到深,开头絮叨,有助于初学者接受。后面会根据推荐系统各子支部分引出细节问题以及对应的解决方案。因推荐相关的文章满天飞,总觉得不够系统全面,在此我根据自己的体会进行整理和总结,与各位相互学习,大牛们勿喷,有理解不对之处请多指教。
背景
目前网络信息时代,信息分发的主要途径主要有两种:搜索和推荐。理解这二者的区别有一个简单的准则,那就是有没有用户“主动”表达意愿。
只要用户有明确的“主动意愿”,即:用户内心已经有目标了,通过一定的信号表达出来,希望得到预期的结果就是搜索。比如:
- 在百度的框内输入query"天气预报"进行信息检索
- 自己根据商场指路牌寻找"阿迪专卖店"
这两种都是用户“搜索”行为,有直接的目标做为行动的指引 。
相反,以下两种就有些不同:
- 打开新闻看看发生了什么国内外新闻
- 去大商场随便逛逛放松一下身心
这两种行为都没有明确要消费内容,只是随便看看,不知道会发生哪些新闻、不知道商场里会有什么有意思的东西。这种场景我们称之为"推荐"场景(但不能说这是用户的推荐行为)。
只不过“搜索”一词一般是以用户为视角的,比如"用户在搜索什么"、"平台每天有多用户发起搜索"。 而“推荐”一词的视角偏重于平台,比如"给用户推荐什么", "平台推荐的质量如何",一般都是描述平台的,所以上面的两个例子可以说第一个例子是用户搜索行为但第二就只能说是平台的推荐场景。英文中搜索和推荐分别对应search 和feed(或者push), 二者的描述视角可以体会一下。
在这里我们重点说一下推荐系统,因为最近以推荐为分发方式的平台都取得了很大成功。相比于搜索,推荐的受众更广、更符合历史的趋势。3-90岁的人都可以用推荐平台消费信息,相比下搜索门槛就高多了。
但话说回来,推荐系统到底怎么做的?背后的逻辑是什么?推荐系统最核心的策略是如何?别急,接下来我们就开始分析。
推荐系统
价值是什么
既然是一个系统,那首先得了解这个系统的“价值”,这个系统用来干嘛的?解决什么矛盾的?我们知道但凡要了解一个事物的价值,就先把他扔到他所在的大环境中去。以更高视角和维度分析才看得更清,不至于横看成岭侧成峰。
推荐系统的大环境是什么?平台啊! 那就先看一下平台的价值是什么才能更好的理解推荐系统。来,解剖一下平台(这里是通用的,可以联想一下几大推荐平台,抖音、快手、今日头条几个大的app)。
-
平台目标:赚钱。(好像是费话。别急!先强化一下意识,有利于故事展开)对应子目标就是:更快、更好、更持续性赚钱。
-
整体方案:盘活各方需求,打通数据、流量、资金三条通路。用更好的物料吸引更多的用户,扩大自己的规模和影响力。(互联网时代的定律,“流量在哪里钱就在哪里”。不过现在有一个升级版更为合理:“用户在哪里钱就在哪里”。把流量换成了用户,这也是最近X度的战略,由“流量运营”改为“用户运营”,其中的差异各位细细品,不再赘述。)
这张图是最简单的原型图,实际要比这个复杂得多。比如,平台为了拉用户可以把钱给用户;同时为了吸引B端优质资源,平台可以直接和B端分钱等等。
其中平台如何做到“用更好的物料吸引更多的用户” 这里就体现了推荐策略的价值:从海量的物料中找到用户最喜爱的部分推荐给用户,把用户留下来。
推荐面对的问题是什么
要做好一个推荐系统,就需要解答几个问题,如图:
image.png- 用户是什么样的:--了解用户需求
- 物料是什么样子的:--知道自己能提供什么
- 优化目标是什么:-- 推荐优化的方向和衡量标准
- 约束条件是什么:-- 任何优化问题都有的约束文件
那每个项具体指的是什么内容呢?如下:
image.png不论是推荐何种内容,向哪些人群推荐,也那种场景形式的推荐,都需要首先明确这几个问题。只有深刻理解了业务,才能系统性的进行优化,公式化抽象如下:
image.png- Y: Objective,业务目标,是系统优化的指导方向
- F: 推荐策略,是系统优化的具体方法
- Xu: User信号,用户信息,是系统优化的依赖
- Xi: Item信号, 物料(或者资源)信息,是系统优化的依赖
- Xc: Constraint约束条件,是系统优化面对的现实状况(有地方Xc代表context, 仅指推荐模型的特征维度。这里指的是整体的推荐系统的角度,而不单单是一个ctr/cvr模型)
接下来我们重点分析针对Y如何优化F,有个形象的比喻:推荐系统就是厨房,Xi是食材,Xc是炊具、锅灶, F是厨艺,Y是饭菜的色香味。
如何搭建推荐系统
推荐系统框架
推荐系统整体的思路就是打通物料到用户的分发通路,划分各环节功能,打通数据闭环。整体框架如下:
网友评论