当前位置: 首页 > news >正文

你了解互联网APP推荐的背后逻辑么(下)?

上篇重点介绍了互联网APP在搜索交互场景下的通用逻辑,让大众对每天离不开的搜索进行了一个普遍介绍。这一篇,我们来聊聊抖音、头条等APP划一划这个动作背后,是怎么做推荐的。

推荐的背后,离不开每个用户的数据,而且这个用户要规模非常大,这个就叫用户流量,当然,每个用户的个人行为以及普遍习惯的收集,才是后台算法能做准确猜想和推荐的核心逻辑,这个就叫大数据。那么每天APP收集到的你得数据到底有那些?

什么叫做用户行为数据?

 用户行为也叫做用户特征,专业术语叫做用户埋点。是很多大厂APP背后进行收集的用户第一首资料。而事实上这是APP系统能够推荐起到的关键作用。用户特征具体分为:视频特征、用户特征。对于用户来讲,抖音会实时的记录用户对某个视频的点击、播放、停留、关注、评论、点赞、转发等行为,并根据这些特征离线或实时的进行计算。

抖音之所以能够让用户“越刷越上头”还在于其对推荐的改进,如图所示:

(1)当一个新用户上传一个视频时,首先由设计好的系统对视频进行自动打标签,获取视频的显式特征信息;

(2)其次将该视频先随机推荐给1万个用户(又称流量池);

(3)这些被推荐的用户根据其对这个新上传的视频进行相关交互(点击、播放、停留、关注、评论、点赞、转发等),根据交互的用户行为数据,来判断当前的视频质量如何(尤其是该视频的完播率如何, 完播率意指整个视频完整的被观看的次数占比),当然这里的算法很复杂,通用的有机器学习的监督分类算法。通过机器学习后的结果,就普遍对该视频的质量有一个打分,再通过打分来判断,是否进一步扩大推荐的范围;

(4)更优秀的视频会被推荐到更大的流量池,以获得更多的用户浏览量。

  因此这套机制可以避免资源倾斜问题,即便是一些新用户(或使用小号),在上传的视频中,如果质量好,都有机会获得更多的浏览量,该推荐机制避免了系统偏向大号大V的问题。

  另外,抖音推荐还会涉及到对社交网络的挖掘。在基于内容给的推荐时,根据用户关注的主播,或已查看相关主播的多个视频时,可根据该主播的其他粉丝的兴趣来进行推荐,这一部分则可以涉及到社交关系知识图谱,以此发现更多新的视频。这也就是说,当你在持续刷抖音时,总会发现一些新的感兴趣的视频。

对于算法,要结合实际的应用场景,例如对于抖音推荐,目标是为了使得推荐的视频能够更加符合用户的兴趣,因此其优化目标是完播率;而对于一些广告服务的平台,例如爱奇艺视频附带的广告,其优化目标则是最大化广告的点击率(CTR),从而获得更多的广告服务费;而对于淘宝天猫等电商,其优化目标则是兼顾用户是否查看某个商品的点击率(CTR),以及是否会产生购买行为的转化率(CVR)。因此对于算法的设计,需要结合实际的优化目标。常用的推荐算法有:

(1)基于协同过滤的推荐,包括基于用户和基于内容两个部分;

(2)基于矩阵分解或因子分解机的推荐;

(3)基于逻辑回归、集成学习等机器学习方法;

(4)基于Embedding和相似度匹配的推荐;

(5)基于深度学习的推荐

现如今常部署在大数据底层系统上的算法以机器学习或简单的深度学习模型为主,因此大多数领域内,推荐系统不仅在乎准确率,更在乎其实时性,因此部署的模型参数不宜过多。

  用户的交互数据通常是支撑大数据和推荐的关键,没有用户交互行为数据,无法谈得上推荐,因此如何构建并提取用户行为在学术界和工业界非常关心的问题,通常对用户的数据采集可以包括一些显式交互数据(包括点击、转发、购买等)和隐式交互数据(包括播放时长,停留时长、社交关系等)。可以通过客户端session对数据的实时获取并保存在数据库中。

推荐系统的未来趋势

  现如今各大平台之间数据不流通的问题,是制约推荐系统的发展。例如一个用户间断性的在抖音和微视上看视频,使得两个平台的用户行为是间断性的,然而多个平台之间的数据通常由于商业竞争原因而无法公开,从而影响推荐的性能,使得对用户画像的构建不完善,因此突破此屏障的最新方法是基于数据中台和基于联邦学习的框架体系:

(1)数据中台:缓解数据孤岛,将多个平台的数据汇总在一起,并可实现数据复用与共享;但这通常需要多个公司之间满足一定的协议。在数据中台的基础上,实现大数据挖掘和推荐,可以进一步提高收益;

(2)联邦学习:联邦学习是近两年比较火的概念,其主要解决的就是各大企业之间不愿意公开数据,而使得模型无法充分学习到用户的行为特征的问题。如果利用联邦学习,各个公司的数据无须汇总到一个中心结点,而只需要一定的联邦算法,让模型分布式地进行学习,既可以充分利用各个平台的数据,又可以保证数据的隐私性和安全性。

相关文章:

你了解互联网APP推荐的背后逻辑么(下)?

上篇重点介绍了互联网APP在搜索交互场景下的通用逻辑,让大众对每天离不开的搜索进行了一个普遍介绍。这一篇,我们来聊聊抖音、头条等APP划一划这个动作背后,是怎么做推荐的。推荐的背后,离不开每个用户的数据,而且这个…...

总是跳转到国内版(cn.bing.com)?New Bing使用全攻略

你是否想要使用强大的(被削后大嘘)New Bing? 你是否已经获得了New Bing的使用资格? 你是否在访问www.bing.com/new时提示页面不存在? 你是否在访问www.bing.com时总是重定向到cn.bing.com而使用不了New Bing? New Bi…...

神经网络的基本骨架—nn.Module使用

一、pytorch官网中torch.nn的相关简介可以看到torch.nn中有许多模块:二、Containers模块1、MODULE(CLASS : torch.nn.Module)import torch.nn as nn import torch.nn.functional as Fclass Model(nn.Module):#nn.Module---所有神经网络模块的…...

面试官:你是怎样进行react组件代码复用的

mixin Mixin 设计模式 Mixin(混入)是一种通过扩展收集功能的方式,它本质上是将一个对象的属性拷贝到另一个对象上面去,可以拷贝多个属性到一个对象上,为了解决代码复用问题。 常用的方法:JQuery 的 exte…...

arxiv2017 | 用于分子神经网络建模的数据增强 SMILES Enumeration

论文标题:SMILES Enumeration as Data Augmentation for Neural Network Modeling of Molecules论文地址:https://arxiv.org/abs/1703.07076代码地址:https://github.com/Ebjerrum/SMILES-enumeration一、摘要摘要中明显提出:先指…...

倒计时2天!TO B人的传统节日,2023年22客户节(22DAY)

去年,2022.02.22,正月二十二星期二,在这个最多2的一天,成功举办了“首届22客户节(22DAY)”,一群To B互联网人相约杭州见证; 癸卯兔年,2023.02.22,让我们再度…...

java版工程管理系统Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码

java版工程管理系统Spring CloudSpring BootMybatis实现工程管理系统 工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和…...

数据结构刷题(六):142环形链表II、242有效的字母异位词、383赎金信、349两个数组的交集

1.环形链表II题目链接思路:设置快慢双指针注意:(1)是否有环(快慢双指针是否能碰面也就是相等)(2)环形入口的判断。从头结点出发一个指针,从相遇节点 也出发一个指针&…...

OpenGL学习日记之光照计算

引言 现实生活中的光照极其复杂,而且会收到很多因素的影响,是我们当前计算机的算力无法模拟的。因此我们会根据一些简化的模型来模拟现实光照,这样在可以模拟出近似的光照感受,但是又没有那么复杂的计算。 常用的光照模型有&…...

七大排序经典排序算法

吾日三省吾身:高否?富否?帅否?答曰:否。滚去学习!!!(看完这篇文章先)目前只有C和C的功底,暂时还未开启新语言的学习,但是大同小异,语法都差不多。目录:一.排序定义二.排序…...

设计模式—“对象性能”

面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。 典型模式有:Singleton、Flyweight 一、Flyweight 运用共享技术将大量细粒度的对象进项复用,…...

基于Spring Boot的零食商店

文章目录项目介绍主要功能截图:登录后台首页个人信息管理用户管理前台首页购物车部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关…...

Python语言的优缺点

为初学者而著!适合准备入行开发的零基础员学习python。python也是爬虫、大数据、人工智能等知识的基础。感兴趣的小伙伴可以评论区留言,领取视频教程资料和小编一起学习,共同进步!https://www.bilibili.com/video/BV13D4y1G7pt/?…...

3款强大到离谱的电脑软件,个个提效神器,从此远离加班

推荐3款让你偷懒,让你上头的提效电脑软件,个个功能强大,让你远离加班! 很多几个小时才能做好的事情,用上它们,只需要5分钟就行!! 1、JNPF —— 个人最喜欢的低代码软件 它为开发者…...

vue3 使用typescript小结

最近学习vue3 typescript&#xff0c;网上看了很多文章&#xff0c;汇总一下&#xff0c;分享给大家&#xff0c;希望会对大家有帮助。 一. 为props标注类型 defineProps()宏函数支持从它的参数中推导类型&#xff1a; <script setup langts>import { defineProps } fro…...

PYTHON爬虫基础

一、安装package 在使用爬虫前&#xff0c;需要先安装三个包&#xff0c;requests、BeautifulSoup、selenium。 输入如下代码&#xff0c;若无报错&#xff0c;则说明安装成功。 import requests from bs4 import BeautifulSoup import selenium二、Requests应用 了解了原理…...

JavaScript刷LeetCode模板技巧篇(一)

虽然很多人都觉得前端算法弱&#xff0c;但其实 JavaScript 也可以刷题啊&#xff01;最近两个月断断续续刷完了 leetcode 前 200 的 middle hard &#xff0c;总结了一些刷题常用的模板代码。 常用函数 包括打印函数和一些数学函数。 const _max Math.max.bind(Math); co…...

ros-sensor_msgs/PointCloud2消息内容解释

1.字段解释 header-----头文件&#xff0c;包含消息的序列号&#xff0c;时间戳(系统时间)和坐标系id&#xff0c;其中secs为秒&#xff0c;nsecs为去除秒数后剩余的纳秒数 height-----点云的高度&#xff0c;如果是无序点云&#xff0c;则为1&#xff0c;例子中的点云为有序点…...

LeetCode 每日一题2347. 最好的扑克手牌

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…...

MMPBSA计算--基于李继存老师gmx_mmpbsa脚本

MMPBSA计算–基于李继存老师gmx_mmpbsa脚本 前期准备 软件安装 安装gromacs, 可以查阅 我的blogGromacs-2022 GPU-CUDA加速版 unbantu 安装 apbs, sudo apt install apbs 安装 gawk, sudo apt install gawk MD模拟好的文件 我们以研究蛋白小分子动态相互作用-III(蛋白配体…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...