从信息论的角度看微博推荐算法

news2024/11/28 14:37:42

引言

在数字时代,推荐系统已成为社交媒体和其他在线服务平台的核心组成部分。它们通过分析用户行为和偏好,为用户提供个性化的内容,从而提高用户满意度和平台的参与度。推荐系统不仅能够增强用户体验,还能显著提升广告投放的效率和效果。随着技术的不断进步,信息论在推荐系统中的新兴应用逐渐显现,为推荐算法的优化提供了新的视角。
信息论是一门研究信息处理、存储、传输和通信的数学理论。其核心概念如熵、互信息和信道容量,为量化信息的不确定性、相关性和传输速率提供了理论基础。近年来,信息论在推荐系统中的应用逐渐增多,特别是在处理大规模数据和提高推荐质量方面显示出其独特的优势。
image.png
微博作为中国领先的社交媒体平台,拥有庞大的用户群体和丰富的内容生态。其推荐系统面临着诸多挑战,包括如何从海量内容中筛选出用户感兴趣的信息,如何在实时性要求下快速响应用户需求,以及如何在不断变化的用户行为中保持推荐效果的稳定性。本文将从信息论的角度探讨微博推荐算法实践,分析其在推荐系统中的具体应用和效果。

第一部分:信息论简介及在推荐系统中的应用

信息论简介

香农在其开创性著作《通信的数学理论》中首次提出了信息论。信息论的核心在于量化信息的不确定性和相关性。熵(Entropy)是衡量信息不确定性的度量,互信息(Mutual Information)则衡量两个信息源之间的相互依赖性,而信道容量(Channel Capacity)则描述了在特定信道下可以传输的最大信息量。当然,以下是信息论中几个核心概念的计算公式:

1. 信息熵(Entropy)

信息熵是衡量信息不确定性的度量。对于一个离散随机变量 ( X ) ( X ) (X) ,其概率分布为 ( P ( X ) ) ( P(X) ) (P(X)),信息熵 ( H ( X ) ) ( H(X) ) (H(X))可以计算如下:
H ( X ) = − ∑ i P ( x i ) log ⁡ 2 P ( x i ) H(X) = -\sum_{i} P(x_i) \log_2 P(x_i) H(X)=iP(xi)log2P(xi)
其中, ( P ( x i ) ) ( P(x_i) ) (P(xi)) 是随机变量 ( X ) ( X ) (X)取第 ( i ) ( i ) (i) 个值的概率, ( log ⁡ 2 ) ( \log_2 ) (log2) 表示以2为底的对数。

2. 信道容量(Channel Capacity)

信道容量是衡量信道传输信息的最大速率的度量。对于一个离散无记忆信道,其信道容量 ( C ) ( C ) (C) 可以计算如下:
C = max ⁡ P ( X ) I ( X ; Y ) C = \max_{P(X)} I(X;Y) C=maxP(X)I(X;Y)
其中, ( I ( X ; Y ) ) ( I(X;Y) ) (I(X;Y))是随机变量 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)之间的互信息, ( P ( X ) ) ( P(X) ) (P(X))是信道输入的概率分布。

3. 互信息(Mutual Information)

互信息是衡量两个随机变量之间共享信息量的度量。对于两个离散随机变量 ( X ) ( X ) (X) ( Y ) ( Y ) (Y),其互信息 ( I ( X ; Y ) ) ( I(X;Y) ) (I(X;Y))可以计算如下:
I ( X ; Y ) = ∑ i ∑ j P ( x i , y j ) log ⁡ 2 ( P ( x i , y j ) P ( x i ) P ( y j ) ) I(X;Y) = \sum_{i} \sum_{j} P(x_i, y_j) \log_2 \left(\frac{P(x_i, y_j)}{P(x_i) P(y_j)}\right) I(X;Y)=ijP(xi,yj)log2(P(xi)P(yj)P(xi,yj))
其中, ( P ( x i , y j ) ) ( P(x_i, y_j) ) (P(xi,yj)) 是随机变量 ( X ) ( X ) (X) 取第 ( i ) ( i ) (i) 个值且 ( Y ) ( Y ) (Y)取第 ( j ) ( j ) (j)个值的联合概率, ( P ( x i ) ) ( P(x_i) ) (P(xi)) ( P ( y j ) ) ( P(y_j) ) (P(yj))分别是 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)的边缘概率。

4. 连续随机变量的熵和互信息

对于连续随机变量,熵和互信息的计算需要使用积分而不是求和。例如:

  • 连续随机变量的熵
    H ( X ) = − ∫ p ( x ) log ⁡ 2 p ( x ) , d x H(X) = -\int p(x) \log_2 p(x) , dx H(X)=p(x)log2p(x),dx其中, ( p ( x ) ) ( p(x) ) (p(x))是随机变量 ( X ) ( X ) (X)的概率密度函数。
  • 连续随机变量的互信息
    I ( X ; Y ) = ∫ ∫ p ( x , y ) log ⁡ 2 ( p ( x , y ) p ( x ) p ( y ) ) , d x , d y I(X;Y) = \int \int p(x, y) \log_2 \left(\frac{p(x, y)}{p(x) p(y)}\right) , dx , dy I(X;Y)=∫∫p(x,y)log2(p(x)p(y)p(x,y)),dx,dy其中, ( p ( x , y ) ) ( p(x, y) ) (p(x,y))是随机变量 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)的联合概率密度函数, ( p ( x ) ) ( p(x) ) (p(x)) ( p ( y ) ) ( p(y) ) (p(y)) 分别是 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)的边缘概率密度函数。

这些公式为信息论在推荐系统和其他应用中提供了理论基础,帮助我们量化和优化信息的传输和处理。

推荐系统中的信息论应用

在推荐系统中,信息论的应用主要体现在以下几个方面:

  1. 量化信息价值:通过计算用户和物品之间的互信息,可以量化不同信息对用户的价值,从而优化推荐结果。
  2. 降低不确定性:利用熵的概念,可以量化用户需求和行为的不确定性,进而有针对性地降低这种不确定性,提高推荐质量。
  3. 评估算法性能:信息论提供了一种客观的度量方法,通过比较算法产生的推荐结果与实际需求之间的信息差距(如交叉熵损失),可以评价不同推荐算法的优劣。

具体而言:

  1. 基于熵的损失函数:例如二元交叉熵损失(BCELoss),在推荐系统中常用于衡量预测概率与实际标签之间的差异。通过最小化这种损失,可以优化推荐模型的预测效果。
  2. 量化用户和物品之间的互信息:通过计算用户的历史行为与推荐物品之间的互信息,可以发现用户对不同物品的兴趣程度,从而提供更精准的推荐。
  3. 降低用户需求和行为的不确定性:通过分析用户的行为序列和偏好,可以预测用户的需求变化,进而减少推荐过程中的不确定性。

第二部分:微博推荐算法的全链路信息论实践

推荐链条中的信息流动效率

推荐系统的设计通常包括物料、召回、排序和重排序等多个阶段。在这些阶段中,信息的流动效率直接影响到推荐结果的质量和用户体验。物料阶段主要涉及内容的筛选和预处理,召回阶段则通过算法从大量物料中快速筛选出可能感兴趣的内容,排序阶段则进一步优化这些内容的推荐顺序,而重排序则在用户实际浏览过程中动态调整推荐内容。
image.png
样本和特征在推荐系统中起着至关重要的作用。样本是推荐系统学习的基础,而特征则是描述样本属性的变量。通过提取和优化这些特征,可以提高推荐算法的准确性和效率。

提升召回的信息利用率

在召回阶段,FM模型被广泛应用于提升召回率。FM模型通过学习用户和物品之间的隐含特征,能够更准确地预测用户的兴趣。通过让召回和后续的排序在目标上更加一致,可以减少召回和排序的内耗,从而提高整体的推荐效果。
image.png
MIE(多兴趣建模)模型则通过输出多个EMBEDDING来增加信息含量。这种方法能够直接从用户的行为序列中捕捉到长短兴趣信息,减少信息损耗。例如,在某些图片推荐业务中,通过深度序列召回算法的应用,能够显著提升点击率、互动率和关注率。
image.png

提升排序的信息利用率

在排序阶段,门控网络如SENET的FIBINET被用于减少噪音内耗。
image.png
FIBINET通过引入特征重要性网络结构,能够更有效地利用特征信息,提高排序的准确性。SENet模块或其改进变体在许多互联网公司的线上推荐或广告系统中取得了显著的效果。

image.png
MASKNET则是Twitter也在使用的精排算法。它通过特征遮盖网络,能够在特征的Embedding逐步放大时,克服过拟合问题,稳定提高推荐效果。MASKNET的细粒度特征遮盖在Criteo公开数据集中表现优异,效果位居前列。
image.png
统一TRANSFORMER模型则是微博推荐算法中的一次尝试。通过统一Embedding,将所有特征视为观察序列,可以更有效地处理不同类型和长度的特征。统一Embedding后的Transformer输出与MLP(多层感知器)结合,能够预测数值结果。对于UID特征,尝试长短两种尺度的Embedding融合,能够解决低频ID的合理初始化问题。
通过这些方法,微博推荐算法在信息论的指导下,不断优化其推荐效果,提升用户体验。在后续章节中,我们将进一步探讨多目标提升样本信息利用率、工程和数据方面的信息增量和一致性,以及信息论视角中的AGI时代推荐算法。

第三部分:多目标提升样本信息利用率

在推荐系统中,多目标优化是一种提升推荐质量的有效方法。通过同时考虑多个目标,可以更全面地理解用户的需求和行为,从而提供更精准的推荐。

Twitter的十大目标案例分析

Twitter在其推荐系统中采用了多目标优化策略,通过考虑用户的正面和负面行为,以及二阶行为目标,来提升推荐效果。以下是一些具体的目标示例:

  1. 正面目标
  • is_favorited:用户点赞的概率。
  • is_replied:用户评论的概率。
  • is_retweeted:用户转发的概率。
  • is_shared:用户分享的概率。
  • is_video_playback_50:用户观看视频超过一半的概率。
  1. 负面目标
  • is_negative_feedback_v2:用户对内容的负面反应概率,例如“显示较少”或屏蔽推文作者。
  • is_report_tweet_clicked:用户举报推文的概率。
  1. 二阶行为目标
  • is_good_clicked_convo_desc_favorited_or_replied:用户点击后进入推文对话,然后进行回复或点赞的可能性。
  • is_good_clicked_convo_desc_v2:用户点击后进入推文对话,在那里停留至少2分钟的可能性。
  • is_profile_clicked_and_profile_engaged:用户打开推文作者资料并进行互动的可能性。
  • is_replied_reply_engaged_by_author:用户回复推文后,推文作者参与该回复的可能性。
  • is_tweet_detail_dwelled_15_sec:用户在推文详情页面停留超过15秒的可能性。

这些目标不仅涵盖了用户的基本互动行为,还考虑了用户在互动过程中的深度参与度,从而更全面地评估推荐内容的质量。

实际工作中的多目标应用

在实际工作中,微博推荐系统也采用了类似的多目标优化策略。通过添加更多的目标,可以更细致地分析用户的行为和偏好,从而提供更个性化的推荐。以下是一些可能的应用:

  • 用户停留时间:通过分析用户在推荐内容上的停留时间,可以评估内容的吸引力和相关性。
  • 用户反馈:通过收集用户的正面和负面反馈,可以调整推荐策略,减少不相关或不受欢迎的内容。
  • 用户互动深度:通过分析用户在推荐内容中的互动深度,例如评论、转发和点赞,可以更准确地预测用户的兴趣。

通过这些多目标优化策略,微博推荐系统能够更全面地理解用户的需求,提供更精准的推荐,从而提升用户体验和平台的参与度。

第四部分:工程和数据方面的信息增量和一致性

在推荐系统的工程和数据方面,信息的有效利用和一致性是关键。以下是一些具体的实践:

工程确保信息的有效利用
  1. 大规模模型容量:随着数据量的增加,推荐系统需要处理越来越多的样本和特征。因此,模型的容量需要不断扩大,以支持万亿样本和万亿参数的能力。
  2. 实时/在线模型更新:为了跟上业务的时变性,推荐系统需要实现实时或在线更新。这不仅包括模型的更新周期从天级别提升至分钟级别,还包括特征的秒级更新。
  3. 在线超参数调整:通过在线调整超参数,可以进一步提升推荐效果。例如,通过优化超参数,可以提升用户在推荐内容上的人均时长。
  4. 深度和复杂网络支持:为了捕获样本的复杂知识,推荐系统需要支持深度和复杂的网络结构。这有助于模型更高效地理解和预测用户的行为和偏好。
  5. 正确性保障:从正确的信息中学习是推荐系统成功的关键。工程上需要从多个方面校验和尽快发现问题,确保推荐系统从高质量的数据中学习。
数据方面的信息增量和一致性
  1. 多场景多业务:推荐系统需要支持多个场景和业务。通过设计配套的场景专家和共享专家的算法网络,可以更好地处理不同场景和业务的需求。后期还可以升级专家网络为NAS学习子专家网络的组合,进一步提升推荐效果。
  2. 多模态信息的加入:为了处理更丰富的内容类型,推荐系统需要加入多模态信息,如图片和视频。这包括Embedding的加入、Embedding合方案的比较和择优选用,以及万级以上类别的聚类加入。
  3. 多种行为序列的加入:用户的行为序列是理解用户偏好的重要信息。通过加入多种行为序列,可以更全面地分析用户的行为和偏好。
  4. 样本的链路一致性:在召回、排序粗排流程中,正样本学习需要考虑下发曝光样本,而负样本则采用各阶段负样本的勾兑。正样本可以根据曝光位置加权,从而提高推荐效果。

通过这些工程和数据方面的优化,推荐系统能够更有效地利用信息,提供更精准的推荐,从而提升用户体验和平台的参与度。

第五部分:信息论视角中的AGI时代推荐算法

AGI时代的推荐算法挑战

随着人工智能技术的不断进步,我们正逐步进入人工通用智能(AGI)时代。在这个时代,推荐算法面临着前所未有的挑战和机遇。AGI不仅需要处理更复杂的任务,还需要在更广泛的应用场景中提供更精准的推荐。

  1. Chat入口与推荐系统的结合
  • Chat入口,如ChatGPT,已成为用户获取信息和进行交互的重要方式。推荐系统需要与这些Chat入口结合,利用用户的实时反馈和交互数据,提供更个性化的推荐。
  • 这种结合不仅提高了推荐系统的响应速度和灵活性,也增加了推荐内容的多样性和丰富性。
  1. 信息的极大丰富与AIGC的生产力革命
  • AIGC(人工智能生成内容)技术的发展,使得内容的生产和分发变得更加高效和个性化。推荐系统需要适应这种变化,处理更大量的内容,并从中筛选出用户感兴趣的信息。
物料的丰富与生产及时性的量变
  1. AIGC在物料生产中的作用
  • AIGC技术可以快速生成大量高质量的内容,满足用户的多样化需求。推荐系统需要能够处理这些内容,确保推荐结果的及时性和相关性。
  • 物料的丰富性不仅提高了用户的满意度,也对推荐系统的算法和数据处理能力提出了更高的要求。
  1. 生产即分发的新逻辑
  • 在AGI时代,生产和分发的界限变得模糊。推荐系统需要实时处理生产的内容,并立即将其分发给用户。这种“生产即分发”的逻辑要求推荐系统具备更高的实时性和动态性。
创造即理解与水军博弈
  1. 信息生产与理解能力的同步增长
  • AGI时代的推荐系统不仅要能够生产内容,还要能够理解内容。这种“创造即理解”的能力使得推荐系统能够更深入地理解用户的需求和偏好,提供更精准的推荐。
  • 推荐系统需要不断学习和适应用户的行为和偏好,以保持推荐结果的相关性和吸引力。
  1. 面对水军和机器人的挑战
  • 在AGI时代,推荐系统还需要面对水军和机器人的挑战。恶意行为可能会影响推荐结果的准确性和公正性。
  • 推荐系统需要具备更强的抗干扰能力,通过算法和策略识别和过滤恶意行为,确保推荐结果的质量和可靠性。

总结

通过本文的探讨,我们可以看到信息论在推荐系统中的广泛应用和重要性。从信息论的基础概念到其在推荐系统中的具体应用,再到微博推荐算法的全链路信息论实践,信息论为推荐系统提供了一种新的视角和方法。通过量化信息价值、降低不确定性和评估算法性能,信息论帮助推荐系统更精准地理解用户的需求和偏好,提供更个性化的推荐。
同时,多目标优化、工程和数据方面的优化也是提升推荐效果的关键。通过综合考虑多个目标、支持大规模模型、实现实时更新、加入多模态信息和保持样本链路一致性,推荐系统能够更全面地理解用户的行为和偏好,提供更精准的推荐。

展望未来推荐系统在AGI时代的发展方向
  1. AGI时代的推荐系统
  • 在AGI时代,推荐系统将面临更多的挑战和机遇。随着AIGC技术的发展和Chat入口的普及,推荐系统需要不断适应新的应用场景和用户需求。
  • 推荐系统需要具备更高的实时性、动态性和抗干扰能力,以应对不断变化的环境和用户行为。
  1. 未来的发展方向
  • 推荐系统需要不断优化其算法和策略,提高处理大规模数据和多模态信息的能力。通过深度学习和机器学习技术,推荐系统能够更深入地理解用户的行为和偏好。
  • 同时,推荐系统还需要加强与用户的交互和反馈机制,利用用户的实时反馈和交互数据,提供更个性化和精准的推荐。
  • 最后,推荐系统需要在确保推荐结果的质量和可靠性的同时,处理好与水军和机器人的博弈,确保推荐结果的公正性和准确性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

angular入门基础教程(一)环境配置与新建项目

ng已经更新到v18了,我对他的印象还停留在v1,v2的版本,最近研究了下,与react和vue是越来越像了,所以准备正式上手了。 新官网地址:https://angular.cn/ 准备条件 nodejs > 18.0vscodeng版本18.x(最新的版本) {"name&qu…

C# Unity 面向对象补全计划 之 继承(字段与属性)

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 本系列旨在通过补全学习之后,给出任意类图都能实现并做到逻辑上严丝合缝 Q:为什么要单讲继承字段与属性,不讲继承方法了吗&#x…

【SuperMap GIS 信创部署系列】-- 金蝶V10中间件

⼀、安装包获取 本⽂以10.2.1版本安装为例,官⽹下载iserver war包即可。 下载地址:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id1852 ⼆、部署 iServer.war 1.解压安装包 将下载的supermap-iserver-10.2.1-war.zip包进⾏解…

基于单片机的步进电机系统设计方法探究

摘 要: 单片机是步进电机系统的重要组成部分,对于步进电机系统的驱动控制具有重要的影响。通过分析步进电机系统的工作原理,对步进电机系统进行规划设置。达到降低步进电机的使用成本,提高步进电机的效率与性能的效果。文章主要探…

WIFI 接收机和发射机同步问题+CFO/SFO频率偏移问题

Synchronization Between Sender and Receiver & CFO Correction 解决同步问题和频率偏移问题是下面论文的关键,接下来结合论文进行详细解读 解读论文:Verification and Redesign of OFDM Backscatter 论文pdf:https://www.usenix.org/s…

当自动驾驶遇上扩散模型(Panacea): 生成自动驾驶BEV数据集

Abstract 在自动驾驶领域,对高质量的标注训练数据的需求日益增加。在本文中,我们提出了Panacea,这是一种创新的方法,用于生成驾驶场景中的全景和可控视频,能够生成无限数量的多样化、标注的样本,对于自动驾…

Mojo函数

正如在语言基础中提到的,Mojo支持两种类型的函数:def和fn函数。您可以在任何函数中使用这两种声明方式,包括main()函数,但它们具有不同的默认行为,如本页面所述。 我们认为def和fn都有很好的用例,并且不认…

华为云上如何创建桶

目录 一、进入对象存储服务(OBS)页面,点击【创建桶】二、输入桶的相关信息三、获取 projectId四、获取 OBS Endpoint五、获取 AK/SK一、进入对象存储服务(OBS)页面,点击【创建桶】 二、输入桶的相关信息 可以勾选购买套餐: 点【立即创建】按钮完成桶的创建。 三、获取…

FPGA开发——数码管的使用

一、概述 在我们的日常开发中,数字显示的领域中用得最多的就是数码管,这篇文章也是围绕数码管的静态显示和动态显示进行一个讲解。 1、理论 (1)数码管原理图 在对数码管进行相关控制时,其实就是对于8段发光二极管和…

LLM还能拿来做异常检测

我从csdn上一路找原文章找到了这一篇 它使用distilbert-base-uncased这个模型给表格数据做文本embedding,并且期望这个LLM已经蕴含了合理的房产相关信息,因此对于没见过的异常房产信息,一定会产生一个与大多数信息embedding都不一样的embedd…

【每日一题】【逆推法 + 贪心】【数学】造数 河南萌新联赛2024第(一)场:河南农业大学 A题 C++

河南萌新联赛2024第(一)场:河南农业大学 A题 造数 题目描述 样例 #1 样例输入 #1 2样例输出 #1 1样例 #2 样例输入 #2 5样例输出 #2 3做题思路 本题可以用逆推法 将三种操作反过来变为 − 1 , − 2 , / 2 -1 , -2 , /2 −1,−2,/2 …

Linux云计算 |【第二阶段】AUTOMATION-DAY4

主要内容: 部署Ansible、Ansible基础命令(Ansible ad-hoc命令格式、Ansible-doc帮助)、Ansible模块常用:脚本与命令模块、文件与账户模块、软件与服务模块、逻辑卷模块 补充:touch 除创建文件外,若再创建相…

DBMotion x Chat2DB:高效迁移,优雅同步,数据腾飞不再愁

DBMotion 基本介绍 数据传输服务DBMotion是一款轻量、绿色的数据库迁移、同步、校验工具。支持国产化数据迁移、支持容灾演练、支持两地三中心和异地多活;源库无感知、简单易集成、丝滑高性能。助您在多云之间随心迁移、自由容灾。 功能介绍 已支持的数据库 v1.…

尚品汇-布隆过滤器解决缓存穿透问题(二十四)

目录: (1)布隆过滤器 (2)布隆过滤器实现方式 (3)CompletableFuture异步编排 (4)CompletableFuture介绍 (1)布隆过滤器 (2&#…

web基础及http协议、

⼀、web基本概念和常识 Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服 务是动态的、可交 互的、跨平台的和图形化的。Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览 服务,以及各种交互式服务,包括聊…

vue3警告 `markRaw` or using `shallowRef` instead of `ref`.

百度翻译:Vue收到了一个组件,该组件被制成了一个反应对象。这可能会导致不必要的性能开销,应该通过用“markRaw”标记组件或使用“shallowRef”而不是“ref”来避免。 消除办法是 使用markRaw或者shallowRer代替ref

从原理到实践:开发视频美颜SDK与主播美颜工具详解

本篇文章,笔者将深入探讨视频美颜SDK的开发原理和实践应用,重点介绍如何打造一款功能强大的主播美颜工具。 一、视频美颜的基本原理 视频美颜的核心在于图像处理技术,主要包括面部识别、图像增强和特效处理。 1.面部识别 常见的面部识别算…

设计结构——循环结构

循环结构 什么是循环 代码的重复执行,就叫做循环。 循环的分类 无限循环:程序设计中尽量避免无限循环。(程序中的无限循环必须可控) 有限循环:循环限定循环次数或者循环的条件。 循环的构成 循环体循环条件 循环实现的三要素 循环变量…

深度学习项目 -7-使用 Python 的手写数字识别

一、前言 该文章仅作为个人学习使用 二、正文 项目源代码:深度学习项目 - 使用 Python 进行手写数字识别 - DataFlair (data-flair.training) 数据集:​​​​​​​https://drive.google.com/open?id1hJiOlxctFH3uL2yTqXU_1f6c0zLr8V_K Python 深…

AB安全产品详解Guard master Safety Products

AB安全产品详解Guard master Safety Products