推荐系统三十六式学习笔记:03|这些你必须应该具备的思维模式

本文主要是介绍推荐系统三十六式学习笔记:03|这些你必须应该具备的思维模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 对关键元素重要性的认识:
  • 目标思维和不确定思维
  • 总结:

今天我主要带你认识两方面的内容:一个是重新认识推荐系统关键元素的重要性,另一个是要建立起两个思维模式。

对关键元素重要性的认识:

要开发一个推荐系统产品,有这么四个关键的元素需要注意:
1、UI和UE
2、数据
3、领域知识
4、算法

他们的重要性依次递减,权重大致是4-3-2-1,要正确认识不同阶段不同因素的重要性;

最先优化的一定是产品的UI和UE,即人机交互设计和用户体验设计。颜值即正义的法则放在推荐系统中也是成立的。

数据与UI和UE是几乎同等重要的元素,它是推荐系统的食材。数据贯穿了产品始终,对数据的尊重就是对理性和科学的尊重。UI、UE、数据是一个产品的基石,无论其有没有推荐系统存在都是基石。

领域知识,与之对应的是常识和通识。没有哪一个产品不涉及领域知识,电商产品有自己的领域知识,音乐产品也有自己的领域知识。至于新闻类产品,更是有自己的领域知识。

大多数人最不了解的似乎是算法,其实算法的左右没有你想象的那么大,但也一定不是可有可无。一种对算法的常见误会就是:短期高估,长期低估。在一款个性化产品诞生之初,算法所起到的作用可以忽略,我们不能指望它能让产品起死回生,一飞冲天。但就此抛出算法是无用的也是很愚蠢的。

目标思维和不确定思维

四个元素的重要性认识清楚后,还需认识两个思维模式:目标思维和不确定思维

我个人对于软件有一个粗略分类。传统的软件是一个信息流通管道,从信息生产端到信息消费端的通道。比如一款内容app,写内容的可以正常记录,读内容的可以顺畅加载,在高并发下依然能扛得住,这就是一个正常的产品了。

但推荐系统这种产品和信息流通管道的本质不一样,它是一个信息过滤工具,要解决的不是信息流通本身,而是如何让流通更有效率。

这两个本质不同的软件产品,决定了我们要以不同的视角去对待推荐系统。传统的软件产品追求的是稳定喝满足预期,背后思想强调的是逻辑和因果链条,软件体验上设定好行为和响应,软件设计上强调分层以应对无比复杂的操作逻辑。核心词可以表述为:逻辑,因果,分层。

反观推荐系统这种信息过滤系统,追求的是指标的增长,背后思想强调的是目标和不确定性;我们并不能很确定地模拟每个人将会看到什么,也不能很好地复现一些操作过程,充满了不确定性,但是在推荐系统未动的情形下,目标先行是常识。

关于目标思维,可以参考机器学习,通常来说,训练机器学习模型是一个不断最小化目标函数的过程,先设定一个目标函数,然后通过不断迭代让这个函数值到最小值。

我们把一个推荐系统也可以看做一个函数,这个函数的输入有:UI、UE、数据、领域知识等等,输出是我们关注的指标:留存率、新闻的阅读时间、电商的GMV、视频的vv等等;

我们做任何调整:如加新的策略、替换现有的推荐算法、修改UI等等,都是在改变这个函数的参数,如果输出值在增长,就说明修改有效,就可以继续沿着这个方向修改,一旦无效或者起反作用就需要立即回滚。

目标思维的背后是量化一切的价值取向。首先要量化的就是目标本身,接下来要量化的是所有优化改进动作,量化一切的价值取向和前面说的数据的重要性是一体两面,要量化就要回收数据,数据收集对了才能得到正确的量化结果。

盯着量化后的目标去行动后,还需要具备另一个思维:不确定性思维。什么是确定思维,可以理解为完全依靠逻辑和因果链条引发而成的,只要初始条件给定,那么结果就是一定的。这是确定性思维,就是对于结果有预期,可以提前推演出来。

反之就是不确定性思维:不用因果逻辑严丝合缝地提前推演,而是用概率的眼光去看结果。

为什么负责推荐系统产品的人一定要有不确定性思维呢?原因有以下几个。
1、绝大多数推荐算法都是概率算法,因此本身就无法保证得到确切结果,只是概率上得到好的效果。
2、推荐系统追求的是目标的增长,而不是一城一池的得失;
3、如果去花时间为了一个case而增加补丁,那么付出的成本和得到的收益将会大打折扣;
4、本身出现意外的推荐也是有益的,可以探索用户的新兴趣,这属于推荐系统的一个经典问题:EE问题,会在后面的内容中专门讲;

总结:

今天,我主要说了两个内容:
1、推荐系统构成元素的相对重要性,搞清楚重点,才能快速前进;
2、建立器目标和不确定性思维,抓住目标,不择手段地增长目标,不纠结一城一池的得失。

在这里插入图片描述

这篇关于推荐系统三十六式学习笔记:03|这些你必须应该具备的思维模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1028989

相关文章

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹