原创2016-03-27 张戎数学人生

这种有向性包含了一些类别的蕴含关系信息。

拿描述音乐的文本来说吧。我们分别按照类别“音乐”(P)和类别“古典音乐”(Q)统计两类文本中的词分布。

  • KL(Q||P)。我们用音乐这个类别的编码来编码古典音乐,因为音乐包含了古典音乐,所以我们可以期望得到不是那么大的额外代价(也就是KL散度)
  • KL(P||Q)。我们用古典音乐类别的编码来编码音乐,因为这个类别没有包含其它类型的音乐信息,所以我们会得到一个相对来说比较大的额外代价。

我们可以从这种不对称的差异中获得一些父子类的信息。

作者:Earthson Lu
链接:http://www.zhihu.com/question/28181173/answer/39744087
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在信息论和动力系统里面,Kullback-Leibler 散度(简称 KL 散度,KL divergence)是两个概率分布  和  的一个非对称的度量公式。这个概念是由 Solomon Kullback 和 Richard Leibler 在 1951 年引入的。从概率分布  到概率分布  的 KL 散度用  来表示。尽管从直觉上看 KL 散度是一个度量或者是一个距离,但是它却不满足度量或者距离的定义。例如,从  到  的 KL 散度就不一定等于从  到  的 KL 散度。本文即将介绍如何将动力系统的概念运用到实际推荐系统的工作中,从而达到更佳的推荐效果。

KL 散度的数学定义:

对于离散空间的两个概率分布  和  而言,从  到  的KL 散度被定义为

换句话说,它是两个概率分布  和  的对数差的期望,这里的期望是以概率  来描述的。KL 散度有定义当且  对于所有的  都成立。如果  那么可以假设 KL 散度的第  项是零,因为 

对于连续空间  的两个概率分布  和  而言,从  到  的KL 散度被定义为:

这里的  和  是概率分布  和  的概率密度。

KL 散度的基本性质:

(1)KL 散度总是非负的,并且只有  几乎处处成立的时候,

证明:利用 Jensen’s Inequality,可以得到:

(2)如果  是独立分布,并且联合分布是   是独立分布并且联合分布是  那么

 + 

(3)如果定义分布  和  的交叉熵是

分布  的熵是

那么 

(4)KL 散度是两个概率分布  和  差别的非对称性的度量。 KL 散度是用来度量使用基于  的编码来编码来自  的样本平均所需的额外的位元数。典型情况下,  表示数据的真实分布, 表示数据的理论分布,模型分布,或  的近似分布。

(5)从 KL 散度的定义可以得出  所以 KL 散度不满足距离的对称性。当然,如果需要把它弄成对称的,可以定义

 + 

(6)KL 散度的不对称。回顾 KL 散度的定义:

从公式上看,在  大的地方,想让 KL 散度小,我们需要让  的值尽量也大;而当  本身小的时候, 对整个 KL 散度的影响却没有那么大(因为 log 项本身因为分子就很小,再加上乘以了很小的  )。直观来说就是,在 P 的概率密度大的地方,它应该尽量和 Q 概率密度大的区域保持一致以保证 KL 散度小,而在 P 概率密度很小的地方,P 和 Q 的差别对 KL 的影响很小。

如果对于分布 P 和 Q,KL(P||Q) 很大而 KL(Q||P) 很小,则说明:

[i]在分布 P 下概率比较大的事件中,这类事件在分布 Q 下的概率很小;

[ii]在分布 Q 下概率比较大的事件中,这类事件在分布 P 下的概率也都比较大。

简单例子计算:

比如有四个类别,一个方法 P 得到四个类别的概率分别是0.1,0.2,0.3,0.4。另一种方法 Q(或者说是事实情况)是得到四个类别的概率分别是0.4,0.3,0.2,0.1,那么这两个分布的 KL 散度就是

 +  +  + 

实际案例分析:

在实际的工作中,我们通常会有某个网页或者app被用户点击或者播放的数据,同时,我们会拥有用户画像(personas),此刻我们关心的问题就是如何计算网页里面的某个新闻或者 app 里面的某个专辑受到不同维度的用户画像的喜好程度。比如,如何判断该新闻是受到各个年龄层的用户的喜爱还是只是受到某个年龄层的用户的喜爱?如何判断某个电台节目是受到大众的喜爱还是更加受到男性或者女性的喜爱?此时,为了提高网页的点击率或者电台节目的有效点击量,就需要给不同的用户群推荐不同的物品,如何计算物品在不同用户群的喜欢程度就是关键所在。

[1]性别分布情况

举个例子:某个电台专辑被 66.7% 的男性用户播放过,被 33.3% 的女性用户播放过,那么该物品是不是真的就是更加受到男性用户的青睐呢?

答案是否定的。如果使用这款 app 的用户的男女比例恰好是 1:1,那么根据以上数据,该电台专辑显然更加受到男性用户的喜爱。但是,实际的情况,使用这款 app 的用户的男女比例不一定是 1:1。如果 男性用户:女性用户 = 2:1 的话,并且某个电台专辑被 66.7% 的男性用户播放过,被 33.3% 的女性用户播放过,那么说明男性和女性对该专辑的喜好程度是一样的。因为男女的原始比例是 2:1,该专辑被男女播放的比例同样是 2:1,所以,该专辑对男女的喜爱程度恰好是 1:1,该专辑对男女用户并没有区分度。

那么如何计算该专辑的喜好程度呢?那就需要使用KL 散度来建立数学模型。此时不妨假设使用这个 app 的男女比例占比约为 65%:35%(如下图所示),其中 1 指的是男性用户,2 指的是女性用户。

选择“催眠音乐类”的某个专辑,查看该专辑被男女两性的播放程度:其中浅色部分指的是该专辑被男性用户的播放比例,深色部分指的是该专辑被女性用户的播放比例。

从两幅图像上看,这两幅图的分布情况大体接近,性别的原始分布是 Q,专辑被不同性别的播放比例是 P,通过 KL 散度的数学公式,可以计算出 KL 散度  约为 0.0001。无论是从图像上还是数据上都可以说明:该专辑深受男女的喜欢,两者的喜好程度应该约为1:1。

选取“亲子宝贝类”的某个专辑,查看该专辑被不同性别用户的播放比例如下:

从这幅图像上看,该专辑被女性用户的播放比例是 83%,被男性用户的播放比例是 17%;这个数字与原始的男女分布比例 65% :35% 相差甚远,通过 KL 散度的计算,可以得出  约为 0.9。从数据上看,该专辑就有明显的性别倾向,因为此刻的 KL 散度较大。从图像上看,该专辑深受女性用户的喜欢,该专辑对男性用户则没有特别大的吸引力。

[2]年龄分布情况


类似的方法可以用于处理年龄的分布,由于年龄特征是一个连续的特征,需要使用特征工程的离散化方法,把年龄分成几个阶段,比如中小学生,大学生,工作初期的人,成家立业的人,中年人,老年人等阶段。通过用户画像数据,可以计算出该app被各个年龄层的用户的使用情况:

此时选择“催眠音乐类”的某个专辑,统计出该专辑被各个年龄层的用户的播放比例如下图所示:

从两幅图像上看,这两幅图的分布情况大体接近,年龄的原始分布是 Q,专辑被不同年龄层的用户的播放情况是 P,通过 KL 散度的数学公式,依旧可以计算出 KL 散度   约为0.005。从数据上看,该专辑深受各个年龄层的用户的喜欢。

另外选择“亲子宝贝类”的某个专辑,该专辑被不同年龄层的用户的播放比例是:

从图像上看,该专辑被 24_29 岁这个年龄层的播放比例约为 59%,但是该年龄层的用户的原始占比约为 24%,从图像上看,该专辑深受 24_29 岁用户的喜欢,对其余年龄层的用户的吸引力则一般。通过计算 KL 散度,可以得到 约为 0.62,无论是从图像上或者数据上看,该专辑都有明显的年龄倾向。

[3]结论

从以上的案例分析来看,

(1)“催眠音乐类”深受各个年龄层的用户喜爱,也对男女性别具有同样的吸引力,因为 KL 散度较小。因此该专辑的年龄和性别的区分度不大。

(2)“亲子宝贝类”对年龄层在 24-29 岁的用户更有吸引力,摒弃对女性用户的吸引力大于男性用户,因为该专辑的 KL 散度较大。说明该专辑的年龄和性别的区分度很大,这个就可以做为分群推荐的基础。

(3)对其余专辑或者用户画像的情况可以使用类似的方法来处理,这里不再赘述。

从 KL 散度的数学定义和基本性质出发,加上用户 画像数据,可以计算出电台 app 各个种类的专辑对不同的年龄层或者不同性别用户的吸引力有多大,可以判断出对该专辑更受哪个年龄层或者性别的用户的青睐。基于此,我们就可以给不同的用户群推荐不同的内容,从而把推荐的效果做到更好。

KL 散度(从动力系统到推荐系统)相关推荐

  1. kl散度度量分布_论“邻里关系”的学问:度量和改进图信息在图神经网络中的使用 | AI Time PhD ICLR...

    AI TIME欢迎每一位AI爱好者的加入! 近年来,图神经网络(GNN)在社交网络.知识图谱.推荐系统甚至生命科学等领域得到了越来越广泛的应用.但在复杂的图数据中,我们很难高效利用实体之间的相互依赖关 ...

  2. 【原】浅谈KL散度(相对熵)在用户画像中的应用

    最近做用户画像,用到了KL散度,发现效果还是不错的,现跟大家分享一下,为了文章的易读性,不具体讲公式的计算,主要讲应用,不过公式也不复杂,具体可以看链接. 首先先介绍一下KL散度是啥.KL散度全称Ku ...

  3. 交叉熵损失函数、修正Huber损失、极大似然估计、负对数似然、似然与交叉熵、KL散度

    交叉熵损失函数.修正Huber损失.极大似然估计.负对数似然.似然与交叉熵.KL散度 目录

  4. K-L散度(相对熵)

    K-L散度(相对熵) KL散度(Kullback–Leibler divergence,KLD)也被称为相对熵 它表示2个函数或概率分布的差异性:差异越大则相对熵越大,差异越小则相对熵越小,特别地,若 ...

  5. tf.keras.losses.KLDivergence KL散度 损失函数 示例

    KL 散度 loss=正确值×log(正确值/预测值)loss = 正确值 \times log(正确值/预测值)loss=正确值×log(正确值/预测值) import tensorflow as ...

  6. 为什么交叉熵和KL散度在作为损失函数时是近似相等的

    来源:DeepHub IMBA 本文约900字,建议阅读5分钟 在本文中,我们将介绍熵.交叉熵和 Kullback-Leibler Divergence [2] 的概念,并了解如何将它们近似为相等. ...

  7. 相对熵/KL散度(Kullback–Leibler divergence,KLD)

    相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(in ...

  8. pytorch kl散度学习笔记

    KL散度,也叫做相对熵,计算公式如下: import torch.nn as nn import torch import torch.nn.functional as F if __name__ = ...

  9. kl散度学习笔记python实现

    KL Divergence KL( Kullback–Leibler) Divergence中文译作KL散度,从信息论角度来讲,这个指标就是信息增益(Information Gain)或相对熵(Rel ...

  10. 【项目实战课】基于ncnn框架与KL散度的8bit对称模型量化与推理实战

    欢迎大家来到我们的项目实战课,本期内容是<基于ncnn框架与KL散度的8bit对称模型量化与推理实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题, ...

最新文章

  1. arm linux 启动之一:汇编启动到start_kernel
  2. NewPhy.-揭秘优势种dominant species
  3. 皮一皮:究竟经历了什么才让他用上如此设备...
  4. QT MSVC 中文报错
  5. python内置函数表_python学习系列--python内置函数(一)
  6. word List 41
  7. idea连接不了5.6mysql_IDEA无法连接mysql数据库的6种解决方法大全
  8. ios支付 选择货币_iOS开发中金钱货币的计算问题
  9. 基于Access的学生信息管理系统设计(下):窗体设计
  10. Himawari-8(H8)卫星数据预处理
  11. [RK3288][Android6.0] 用户空间对音频寄存器的控制
  12. [内核分析]LXR安装心得(0.9.1版)
  13. c语言第五章答案许合利,C语言习题答案贾宗璞许合利较全-.doc
  14. 多线程服务器的典型适用场合
  15. 突破单IP频繁反爬虫限制的小技巧
  16. 过年抢红包,还怕手速慢,我用Python自动抢红包!
  17. 送礼蓝牙耳机哪款合适?2021最好的蓝牙耳机排行!
  18. 大数据实战之用户画像概念、项目概述及环境搭建
  19. blender 常用修改器
  20. vue加载图片失败处理

热门文章

  1. 专访ThoughtWorks王磊:从单块架构到微服务架构
  2. Iphone 开发常用代码
  3. Visual C++ 2005 系列课程学习笔记-6
  4. ISA2000资料大全(详细)
  5. 学生用计算机怎么乘跟跟号号,3根号键的啊函数计算器价格多少,它与普通计 – 手机爱问...
  6. 接口接收数据_基于原语的千兆以太网RGMII接口设计
  7. Python(七):输入输出(IO)、文件读写
  8. ]Vi/Vim查找替换使用方法
  9. GCD nyoj1007(欧拉函数运用数论入门)
  10. d3.js中点可以用图片吗_WebGL 直线直吗?