如何建立个性化的推荐系统?
优采云 发布时间: 2020-08-08 04:30传输: 用户的兴趣采集速度越快越好,因此可以将特定用户的操作快速反馈到下一个建议. 因此,需要稳定地传输和更新日志. 但是,出于成本考虑,用户配置文件“并非所有人”都可以实时更新. 有些可能会延迟1小时,有些可能会更新1天,1周甚至更长.
挖掘: 此过程是将用户数据计算并挖掘到我们想要的功能中(通常称为“用户*敏*感*词*”,在行业中通常称为用户*敏*感*词*). 用户挖掘通常需要与算法结合,而不是凭空挖掘特征. 没有算法应用程序的用户头像毫无价值.
存储: 用户的兴趣在一段时间内不会有太大变化,因此可以使用用户的长期行为来积累用户肖像,并且需要存储这些配置文件. 如果用户数量很大,那么所需的存储资源也很大,那么就需要一个可以以分布式方式存储大量数据的数据库,并且它必须可靠且便宜,例如hdfs(Hadoop Distributed文件系统),如果要进行实时计算,用户的兴趣需要快速访问的数据库(例如redis),因此对于微博和头条等公司来说,购买服务器也是一大笔费用.
当然,用户兴趣不是一成不变的,因此用户兴趣需要随着时间的推移而“衰减”. 设置合理的衰减系数对于用户配置文件也非常重要.
此外,用户行为挖掘-用户冷启动中还有另一个历史问题. 我们需要在一篇文章中讨论这个主题.
第四,排序算法
在前三个步骤中收录内容和用户数据时,可以在第四步中使用算法来匹配两者. 个性化推荐的本质是进行前N名排名,该排名通常包括两个模块: “召回”和“排名”. 例如,如果我有100,000条消息,但是用户每天只能看到10条消息,那么我应该向用户推荐10条消息?我可以将100,000个项目从10,000到100,000进行分类,因此,无论用户希望看到多少个项目,我都只需从已排序的10,000个项目中从前到后进行选择. 这个过程是“排序”;但是这种排序方法在实时索引编制上过于昂贵,可能带来高延迟,因此我们首先使用一种相对简单的方法从100,000个中选择相对可靠的1,000,然后对1,000进行排序,然后选择100,000. 10,000个过程是“召回”.
算法中有很多方法,我将发表一篇文章,详细介绍当前推荐系统中最常用的最有效算法. 另外,无论哪种算法在内容推荐之后都需要使用“动态索引”(例如ctr),但是如何在推荐之前获得该动态索引?此处涉及的内容的冷启动将在以后另行讨论.
第五,推荐搜索引擎
为什么会有搜索引擎?是的,您没有记错. 实际上,个性化推荐和搜索是非常相似的领域. 两者都是信息过滤方法,并且都在执行一种“相关性”等级,并且目标函数非常接近(点击率). 只是搜索更加关注用户当前搜索关键字的相关性,而推荐则更加关注内容和用户*敏*感*词*的相关性. 每次用户浏览时,这都是实时请求. 因此,有必要实时计算最能满足用户兴趣的内容. 此步骤由在线搜索引擎执行. 但是,由于性能要求,在线索引步骤不应太耗时. 通常,排序算法会计算初始结果,而在线引擎会进行算法调度和归一化排序. 此外,在线索引还将负责接收请求,输出数据并公开服务,例如单击删除通常负责对业务和产品要求进行次要排名(例如插入广告,分解相同类型的内容等). ).
第六,ABtest系统
尽管ABtest系统不是个性化推荐系统的必要模块,但是没有ABtest的推荐系统必须是伪造的推荐系统!推荐系统的优化实际上是y = f(x),y是目标函数. 首先,目标函数必须非常清晰且可量化的指标; f(x)是选择的算法,算法特征参数和算法调度实际上,业界一直采用一些有效的算法,而算法原理却很少. 但是,如何结合您的产品方案选择功能和参数已成为个性化推荐准确性的关键因素. 如果有一个ABtest系统,那么我们可以尝试引入各种参数和功能,并且ABtest实验可以获得最佳的y,以便可以不断迭代和优化推荐系统.
当然,算法的优化并不像更改参数那样简单. 推荐者需要对数据非常敏感,并能够将复杂的问题抽象为可量化的指标,然后结合ABtest实验来快速进行迭代. 我总结的算法优化过程是: “数据分析发现问题,合理的假设,设计实验,实现,数据分析并得出结论或新的假设. ”更改参数只是“实现”步骤,这也是最简单的步骤. 通常,大多数人只关注“实现”,而很少关注分析和假设的过程. 这种优化的效果无法保证,并且有些产品和技术人员会陷入盲目的ABtest的误解,漫无目的地尝试,经常进行ABtest并发现AB组数据没有差异,甚至认为ABtest效率低下. 这些分析思想拉开了算法工程师之间的鸿沟.
摘要
通过这6个部分,已构建了完整的个性化推荐系统. 整个系统涉及算法工程师,自然语言处理/图像处理工程师,服务器工程师/架构师,数据挖掘工程师以及数据分析师,产品经理还需要大量标签审阅者,内容操作人员以及前端和客户端技术支持. 因此,构建良好的个性化推荐系统相对昂贵,但有时我们不需要该系统. 一些简单的规则可以实现相对个性化并提高用户效率(例如,将用户最近浏览的商品放在首位),因此提高效率的思想和方法最为重要,这是我们需要长期讨论的内容.