强化学习观点下的社交推荐系统构建
在构建系统时存在着 exploration 和 Exploitation 的交替进行的两个过程,我们其实对数据本身的理解和掌握非常粗陋,随着不同侧面的观察增多,就能够掌握住新的认识。我们使用不同的算法就是一种探索,而对某个算法深入的改进和组装则是开发的过程。期望能够通过这个过程不断深化对系统的认识。
可以将自己的软件机器学习系统看成是一个 agent,整个项目(包括用户的行为)作为一个环境,那么系统是和环境不断地进行交互进行演化的。什么是好的,什么是不好的?都是需要时实验才会知道这些内容。
更加复杂的建模可以刻画出更加有趣丰富的场景,但也会带来难以处理的境况。所以,我们需要寻求探索和开发之间的平衡点。
算法是一些些分离的部分,通过数据流我们穿针引线地将这些算法赋予了生命力。其中就出现了动态性。不同的产品,其中流动的血液是不同的,也就形成不同的产品自身的特性。整个产品类似于一个人,其不同的部分则是人的各种组织和器官。
因此,我们就要像观察一个人那样去观察一个产品的整个系统。了解哪些是最为核心的部分,哪些可有可无,哪些能够给出惊喜。这个过程是一个试错的过程。既要保持一定的演变稳定性,也要保持系统的活力。
所以在系统的设计过程中,就应该给出一定的空间让其能够获得新鲜的血液和养料,让系统能够自然的生长和扩展。因此,我在这里给出一个开放式的设计架构,来满足推荐系统的动态生长和不断强化。
以人为本的架构理念
作为一款产品,必须具备人性化的设计感和体验感,你必须时时将用户的感受放在首位。因为现在的产品,太多的雷同,太多的硬推广告,已经失去的本性的美好。
所谓以人为本,就是关注用户产生的行为,关心用户的正常反馈。
数据的产生和收集
众所周知,数据是推荐系统的源动力,常常有人将数据比作是机器学习算法的燃料,这里是一个意思。
数据产生
产生的方式很多种,这些就需要产品设计的考究。设计什么样的数据入口方式,以多少的代价来产生一个数据点,应该是要结合算法和业务两个方面的考量来确定的。有些时候这不是简简单单的一个选择项或者文本框就能够解决的。更加有艺术感和美感的方式往往能够带来更多的用户行为(选择、点击或者输入等行为)。拿简书的场景来看,主要是阅读、喜欢、评论、打赏、加入专题或者分享等操作。这些设计的便利会有效提升用户操作的概率。从这里出发,数据就会如石油被开发那样,逐步地喷发出来。
- 忽略模型过程和细节
- 样本的精细化处理
- 过于依赖算法
- 核心数据控制
- 团队的全栈性
- 系统边界模糊/巨型系统
- 基础数据架构建设
- 总结
大数据和机器学习 缺一不可,所有的算法都要可并行化、分布化才是可接受的。我的经验在哪里。
我在小规模的数据下的习得经验是否可以推广出来,放在更大的数据集合上进行训练和预测。这是现在人们最为关心的问题,谷歌、华为、微软、脸书等等都在进行这样的工作。
因此,本文想要从问题的根本之处出发来摸清楚这条脉络。
计算机能够处理的问题是可以量化和抽象的。最终实际上就是对函数的各种角度的掌握。
从问题出发,到解决的大的方向,再到细致的小的方向,最后汇集成最终的解决方案。这个过程是一个封闭可以演化的。
演化指的是稳定的变化过程。数据本身的生命力背后是产生这些行为的人类的生活行为做出的支撑。
各个领域,各个行业有着不同的目标。终极的就是认识这个世界的背后规律。行业则次之,可能就是去赚得回报,创造好的产品和服务,再赚得回报。这些都是让我们的生活更加丰富和有生命力的创造。
整个社会的进步在不同的领域和行业之间的互相学习不断融合的过程。知识最终变成了自然的反应。
整个国家要解决的问题其实是个体自由放大和整体的稳定性之间的矛盾。如何解决是需要大智慧的。
大智慧如何获得?需要各种工具技术和方法思想的支持。
计算是一种重要的思想,量化的东西都可以拿过来算。一个方法的好坏也有评判的机制。最终给出一个排序。等等。
好了,现在开始来理清解决的思路。我们将要观察这个真实世界。但是如果用一种完全的思想来看她,你基本上得不到太好的指导。因为她真实太复杂了。