推荐系统三十六式学习笔记: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

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作