machine-learning-notes
  • 封面
  • 目录
  • 前言
  • 个人前言
  • 机器学习前言
    • 什么是机器学习和模式识别
    • 机器学习的应用
    • 机器学习的流程
    • 不同的机器学习算法对相同数据预测效果不同
    • 快速入门机器学习
    • 机器学习需要参考哪些书
    • 机器学习的学习路径
    • 深度学习的学习路径
    • 互联网机器学习特定岗位所需技能
  • 机器学习面试
  • 数学基础
  • 微积分
    • 泰勒展开
    • e的直观认识
    • 傅里叶变换
    • 希尔伯特空间
  • 线性代数
    • 范数
    • 矩阵求导
    • 特征值
    • 奇异值分解
  • 概率与信息论
    • 综述概率论基本定义
    • 概率论与贝叶斯先验
    • 正态分布
    • 贝叶斯概率
    • 概率符号说明
    • 共轭先验
    • 信息论
  • 数值计算与优化
    • 最小二乘法
    • 等式约束的拉格朗日乘子法
    • 凸优化
      • 凸集和凸函数
      • 凸优化问题
  • 梯度下降算法
    • 随机梯度下降SGD
    • 动量法Momentum
    • 牛顿动量Nesterov
    • AdaGrad
    • RMSprop
    • Adadelta
    • Adam
    • Nadam
    • AMSGrad
    • AdasMax
  • 概率图模型
    • 概率图模型概论
    • 概率图简介
  • 编程基础
  • linux
    • linux常用命令
    • shell
      • 输入输出重定向
  • python
    • python简介
    • python语法
      • 基础语法
      • 数据结构
      • 过程控制
      • 函数
      • 类和对象
      • 文件操作
      • 正则表达式
    • python库
      • numpy
      • pandas
      • scipy
      • matplotlib
      • scikit-learn
    • python应用
      • 排序算法
  • 数据结构与算法
    • 数据结构
    • 算法思想
      • 排序
        • 堆排序
        • 归并排序
        • 快速排序
      • 递归
    • 剑指offer
      • 链表
      • 二叉树
      • 数组
      • 字符串
      • 栈和队列
      • 递归
      • 动态规划
      • 其他
    • leetcode
    • 编程语言
      • c++
  • Hadoop
    • Hadoop简介
    • MapReduce
  • Hive
  • Spark
  • TensorFlow
    • TensorFlow1.0
      • TensorFlow基础
      • TensorFlow基础概念解析
      • TensorFlow机器学习基础
      • Tensorflow分布式架构
    • TensorFlow2.0
  • PyTorch
  • 机器学习
  • 机器学习概论
  • 特征工程
  • 感知机
  • k近邻
  • 朴素贝叶斯
  • 线性模型
    • 最大熵模型
    • 指数族分布与广义线性模型
    • 线性回归
      • Ridge回归(岭回归)
      • Lasso回归
    • Logistic回归-对数几率回归
  • 决策树
  • 支持向量机
    • 线性可分支持向量机与硬间隔最大化
    • 线性支持向量机与软间隔最大化
    • 非线性支持向量机与核函数
    • 序列最小最优化算法SMO
    • SVM总结
  • 集成学习
    • Bagging
      • 随机森林
    • Boosting
      • AdaBoost
      • GradientBoosting
        • GBDT
        • XGBoost
          • XGBoost理论
          • XGBoost实践
    • Stacking
  • 降维
    • PCA主成分分析
    • 流形学习
  • EM算法
  • HMM隐马尔科夫模型
  • CRF条件随机场
  • 聚类
    • k均值聚类
    • 高斯混合模型
  • 主题模型
    • LDA隐狄利克雷分布
  • 知识点
    • 损失函数
    • 负采样
  • 机器学习算法总结
  • 深度学习
  • 深度学习概论
  • ANN人工神经网络
  • 知识点
    • Batch Normalization
  • CNN卷积神经网络
  • 深度学习优化算法
  • RNN循环神经网络
  • LSTM长短期记忆网络
  • GRU门控循环单元
  • GNN图神经网络
    • GNN图神经网络综述
    • GCN图卷积网络
      • GCN图卷积网络初步理解
      • GCN图卷积网络的numpy简单实现
      • GCN图卷积网络本质理解
      • GCN图卷积网络全面理解
      • SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS ICLR2017
  • 神经网络架构搜索
    • Weight-Agnostic-Neural-Networks Google2019
  • 强化学习
  • 强化学习概论
  • 马尔科夫决策过程
  • 动态规划
  • 无模型方法一:蒙特卡洛
  • 无模型方法二:时间差分
  • 无模型方法三:多步自举
  • 函数近似和深度网络
  • 策略梯度算法
  • 深度强化学习
  • 基于模型的强化学习
  • 强化学习前景
  • 自然语言处理
  • 自然语言处理概论
  • 自然语言
  • 语言模型和中文分词
  • word2vec
    • word2vec概述
    • word2vec算法原理
    • word2vec源码分析
    • word2vec实践
  • Seq2Seq模型和Attention机制
  • Self-Attention和Transformer
  • 知识图谱
  • 推荐系统
  • 推荐系统概论
  • 基础知识
  • 进阶知识
    • 机器学习
      • Factorization Machines ICDM2010
    • embedding
      • Network Embedding
        • LINE: Large-scale Information Network Embedding
    • 深度学习
      • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
      • DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013
    • 图卷积网络
      • Graph Convolutional Neural Networks for Web-Scale Recommender Systems KDD2018
    • 强化学习
      • DRN基于深度强化学习的新闻推荐模型
  • 业界应用
    • YouTube
      • Deep Neural Networks for YouTube Recommendations RecSys2016
    • Alibaba
      • Learning Tree-based Deep Model for Recommender Systems KDD2018
      • Deep Interest Network for Click-Through Rate Prediction KDD2018
      • DSIN:Deep Session Interest Network for Click-Through Rate Prediction IJCAI2019
Powered by GitBook
On this page
  • 负采样
  • 两种负采样
  • 第一种负采样
  • 第二种负采样
  • 两种负采样的本质区别
  • 第一种负采样求梯度
  • 第二种负采样求梯度

Was this helpful?

  1. 知识点

负采样

Previous损失函数Next机器学习算法总结

Last updated 5 years ago

Was this helpful?

负采样

两种负采样

第一种负采样

采样方式为:

<u,i0>,<u,i1>,<u,i2>,<u,i3>,<u,i4>,<u,i5>\begin{aligned} <u, i_0>,\\ <u, i_1>,\\ <u, i_2>,\\ <u, i_3>,\\ <u, i_4>,\\ <u, i_5> \end{aligned}<u,i0​>,<u,i1​>,<u,i2​>,<u,i3​>,<u,i4​>,<u,i5​>​

其中,i0i_0i0​为正样本,i1, i2,...,i5i_1,\ i_2, ... , i_5i1​, i2​,...,i5​为负样本。

损失计算方式为

loss=−p0Πi=15(1−pi)⇒loss=−log(p0)−∑i=15log(1−pi)=−log(11+exp(−s0))−∑i=15log(1−11+exp(−si))\begin{aligned} \text{loss}&=-p_0\mathop{\Pi}_{i=1}^5(1-p_i)\\ \Rightarrow\text{loss}&=-log(p_0)-\sum_{i=1}^5log(1-p_i)\\ &=-log\left(\frac{1}{1+\text{exp}(-s_0)}\right)-\sum_{i=1}^5log\left(1-\frac{1}{1+\text{exp}(-s_i)}\right)\\ \end{aligned}loss⇒loss​=−p0​Πi=15​(1−pi​)=−log(p0​)−i=1∑5​log(1−pi​)=−log(1+exp(−s0​)1​)−i=1∑5​log(1−1+exp(−si​)1​)​

第二种负采样

采样方式为:

<u,i0,i1,i2,i3,i4,i5><u, i_0, i_1, i_2, i_3, i_4, i_5><u,i0​,i1​,i2​,i3​,i4​,i5​>

其中,i0i_0i0​为正样本,i1, i2,...,i5i_1,\ i_2, ... , i_5i1​, i2​,...,i5​为负样本。

损失计算方式为

loss=−exp(s0)∑i=05exp(si)⇒loss=−(s0−log∑i=05exp(si))=−s0+log∑i=05exp(si)\begin{aligned} &\text{loss}=-\frac{\text{exp}(s_0)}{\sum_{i=0}^5\text{exp}(s_i)}\\ \Rightarrow &\text{loss}=-(s_0-\text{log}\sum_{i=0}^5\text{exp}(s_i))=-s_0+\text{log}\sum_{i=0}^5\text{exp}(s_i) \end{aligned}⇒​loss=−∑i=05​exp(si​)exp(s0​)​loss=−(s0​−logi=0∑5​exp(si​))=−s0​+logi=0∑5​exp(si​)​

两种负采样的本质区别

对两种负采样的损失函数分别求梯度。

第一种负采样求梯度

∂loss∂s0=∂[−log(11+exp(−s0))−∑i=15log(1−11+exp(−si))]∂s0=−p0(1−p0)p0=−1+p0∂loss∂si∣i=1,2,...,5=∂[−log(11+exp(−s0))−∑i=15log(1−11+exp(−si))]∂si=−pi(1−pi)1−pi=pi\begin{aligned} \frac{\partial \text{loss}}{\partial s_0}&=\frac{\partial\left[-log\left(\frac{1}{1+\text{exp}(-s_0)}\right)-\sum_{i=1}^5log\left(1-\frac{1}{1+\text{exp}(-s_i)}\right)\right]}{\partial s_0}\\ &=-\frac{p_0(1-p_0)}{p_0}\\ &=-1+p_0\\ \frac{\partial \text{loss}}{\partial s_i}|_{i=1,2,...,5}&=\frac{\partial\left[-log\left(\frac{1}{1+\text{exp}(-s_0)}\right)-\sum_{i=1}^5log\left(1-\frac{1}{1+\text{exp}(-s_i)}\right)\right]}{\partial s_i}\\ &=-\frac{p_i(1-p_i)}{1-p_i}\\ &=p_i\\ \end{aligned}∂s0​∂loss​∂si​∂loss​∣i=1,2,...,5​​=∂s0​∂[−log(1+exp(−s0​)1​)−∑i=15​log(1−1+exp(−si​)1​)]​=−p0​p0​(1−p0​)​=−1+p0​=∂si​∂[−log(1+exp(−s0​)1​)−∑i=15​log(1−1+exp(−si​)1​)]​=−1−pi​pi​(1−pi​)​=pi​​

其中,上式的推导用到了 sigmoid导数的特点:f′(z)=f(z)(1−f(z))f'(z)=f(z)(1-f(z))f′(z)=f(z)(1−f(z))。

注意,这里的

∑i=05∂loss∂si=−1+∑i=05pi≠0\begin{aligned} \sum_{i=0}^5\frac{\partial \text{loss}}{\partial s_i}=-1+\sum_{i=0}^5p_i\neq0 \end{aligned}i=0∑5​∂si​∂loss​=−1+i=0∑5​pi​=0​

即所有的变量sis_isi​的梯度的和不是1

第二种负采样求梯度

∂loss∂s0=∂[−(s0−log∑i=05exp(si))]∂s0=−1+exp(s0)∑i=05exp(si)=−1+p0∂loss∂si∣i=1,2,...,5=∂[−(s0−log∑i=05exp(si))]∂si=exp(si)∑i=05exp(si)=pi\begin{aligned} \frac{\partial \text{loss}}{\partial s_0}&=\frac{\partial[-(s_0-\text{log}\sum_{i=0}^5\text{exp}(s_i))]}{\partial s_0}\\ &=-1+\frac{\text{exp}(s_0)}{\sum_{i=0}^5\text{exp}(s_i)}\\ &=-1+p_0\\ \frac{\partial \text{loss}}{\partial s_i}|_{i=1,2,...,5}&=\frac{\partial[-(s_0-\text{log}\sum_{i=0}^5\text{exp}(s_i))]}{\partial s_i}\\ &=\frac{\text{exp}(s_i)}{\sum_{i=0}^5\text{exp}(s_i)}\\ &=p_i\\ \end{aligned}∂s0​∂loss​∂si​∂loss​∣i=1,2,...,5​​=∂s0​∂[−(s0​−log∑i=05​exp(si​))]​=−1+∑i=05​exp(si​)exp(s0​)​=−1+p0​=∂si​∂[−(s0​−log∑i=05​exp(si​))]​=∑i=05​exp(si​)exp(si​)​=pi​​

注意:所有变量的梯度值相加等于1:

∑i=05∂loss∂si=−1+∑i=05pi=−1+1=0\begin{aligned} \sum_{i=0}^5\frac{\partial \text{loss}}{\partial s_i}=-1+\sum_{i=0}^5p_i=-1+1=0 \end{aligned}i=0∑5​∂si​∂loss​=−1+i=0∑5​pi​=−1+1=0​

所以,每个变量sis_isi​的梯度更新值是相互制约的,总和等于1。

这就是两种负采样的本质区别,即所有的变量sis_isi​的梯度的和是否等于1。

返回顶层目录
返回上层目录
两种负采样
第一种负采样
第二种负采样
两种负采样的本质区别
第一种负采样求梯度
第二种负采样求梯度