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

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方