MLR(mixed logistic regression)模型

article/2025/11/9 22:16:10

基本形式

MLR模型是阿里巴巴12年提出(17年发表)点击率预估模型,它利用分段方式对数据进行拟合,相比LR模型,能够学习到更高阶的特征组合。其基本表达式如下
p ( y = 1 ∣ x ) = g ( ∑ j = 1 m σ ( u j T x ) η ( w j T x ) ) ( 1 ) p(y=1 | x)=g\left(\sum_{j=1}^{m} \sigma\left(u_{j}^{T} x\right) \eta\left(w_{j}^{T} x\right)\right) \qquad(1) p(y=1x)=g(j=1mσ(ujTx)η(wjTx))(1)该模型的参数为 Θ = { u 1 , ⋯ , u m , w 1 , ⋯ , w m } ∈ R d × 2 m \Theta=\left\{u_{1}, \cdots, u_{m}, w_{1}, \cdots, w_{m}\right\} \in \mathbb{R}^{d \times 2 m} Θ={u1,,um,w1,,wm}Rd×2m
σ ( ⋅ ) \sigma(\cdot) σ()为分段函数,其参数为 { u 1 , ⋯ , u m } \left\{u_{1}, \cdots, u_{m}\right\} {u1,,um}
η ( ⋅ ) \eta(\cdot) η()为拟合函数,其参数为 { w 1 , ⋯ , w m } \left\{w_{1}, \cdots, w_{m}\right\} {w1,,wm}
u u u w w w都是 d d d维的向量, d d d为特征的维度,即每个特征都有对应的两个权重
g g g是可以理解为激活函数,将模型结果变成需要的形式,比如分类问题中变成概率。

该预测函数包含两个部,首先通过 σ ( u j T x ) \sigma\left(u_{j}^{T} x\right) σ(ujTx)将当前特征分到 m m m个不同的区域中,再用 η ( w j T x ) \eta\left(w_{j}^{T} x\right) η(wjTx)函数进行预测,最终将这 m m m个结果进行求和。如图所示,相当于先把数据映射到两个部分,再将这两个部分融合到一起。
在这里插入图片描述
论文指出对于LR模型不能正确分类的数据,MLR能够有较好的效果
在这里插入图片描述

特例形式

σ ( x ) \sigma(x) σ(x)为softmax, η ( x ) \eta(x) η(x)为sigmoid, g ( x ) g(x) g(x)为x是,(1)式可以写成:
p ( y = 1 ∣ x ) = ∑ i = 1 m exp ⁡ ( u i T x ) ∑ j = 1 m exp ⁡ ( u j T x ) ⋅ 1 1 + exp ⁡ ( − w i T x ) p(y=1 | x)=\sum_{i=1}^{m} \frac{\exp \left(u_{i}^{T} x\right)}{\sum_{j=1}^{m} \exp \left(u_{j}^{T} x\right)} \cdot \frac{1}{1+\exp \left(-w_{i}^{T} x\right)} p(y=1x)=i=1mj=1mexp(ujTx)exp(uiTx)1+exp(wiTx)1

目标函数

目标函数如公式(2)所示
arg ⁡ min ⁡ Θ f ( Θ ) = loss ⁡ ( Θ ) + λ ∥ Θ ∥ 2 , 1 + β ∥ Θ ∥ 1 ( 2 ) \arg \min _{\Theta} f(\Theta)=\operatorname{loss}(\Theta)+\lambda\|\Theta\|_{2,1}+\beta\|\Theta\|_{1} \qquad (2) argΘminf(Θ)=loss(Θ)+λΘ2,1+βΘ1(2) loss ⁡ ( Θ ) \operatorname{loss}(\Theta) loss(Θ)根据不同场景下不同,比如二分类用交叉熵作为损失函数:
loss ⁡ ( Θ ) = − ∑ t = 1 n [ y t log ⁡ ( p ( y t = 1 ∣ x t , Θ ) ) + ( 1 − y t ) log ⁡ ( p ( y t = 0 ∣ x t , Θ ) ) ] \operatorname{loss}(\Theta)=-\sum_{t=1}^{n}\left[y_{t} \log \left(p\left(y_{t}=1 | x_{t}, \Theta\right)\right)+\left(1-y_{t}\right) \log \left(p\left(y_{t}=0 | x_{t}, \Theta\right)\right)\right] loss(Θ)=t=1n[ytlog(p(yt=1xt,Θ))+(1yt)log(p(yt=0xt,Θ))]

后面为正则项,其中
∥ Θ ∥ 1 = ∑ i j ∣ θ i j ∣ \|\Theta\|_{1}=\sum_{i j}\left|\theta_{i j}\right| Θ1=ijθij是对每个参数的L1正则,保证所有参数的稀疏性;
∥ Θ ∥ 2 , 1 = ∑ i = 1 d ∑ j = 1 2 m θ i j 2 \|\Theta\|_{2,1}=\sum_{i=1}^{d} \sqrt{\sum_{j=1}^{2 m} \theta_{i j}^{2}} Θ2,1=i=1dj=12mθij2 是对L2正则的L1正则,根号里面是对某个特征的 2 m 2m 2m个参数的L2正则,外面是L1,这样是为了保证特征的稀疏性,做feature selection。
正则部分相当于对整体参数和按照特征分组的参数分别做了正则,既在最细粒度上筛选参数也在较粗的粒度上筛选特征。

例子

可参考 https://github.com/jkingfu/mlr/blob/master/model_mlr.py

小结

个人理解其实MLR模型其实就是早期的attention思想的体现,不同分片的权重相当于注意力,对不同区域的LR结果进行加权


http://chatgpt.dhexx.cn/article/DDRiSbD4.shtml

相关文章

MLR(mixed logistic regression)算法原理及实现

MLR(mixed logistic regression)算法 参考https://zhuanlan.zhihu.com/p/77798409?utm_sourcewechat_session 盖坤ppt : https://wenku.baidu.com/view/b0e8976f2b160b4e767fcfdc.html 原文:《Learning Piece-wise Linear Models from Large…

多元线性回归MLR

多元线性回归(MLR) 文章目录 多元线性回归(MLR)由极大似然估计(MLE, Maximum likelihood estimation)推导MSE简单导数知识推导解析解( θ ( X T X ) − 1 X T Y \theta (X^TX)^{-1}X^TY θ(XTX)−1XTY)来个例子试一试吧 不用解析解, 用梯度下降求解 θ \theta θ梯度下降法另…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一,前置知识准备 1,MVCC简介 MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创…

MVCC总结

MVCC多版本并发控制 数据库中的并发分为三种情况: 读读:不存在任何问题,也不需要并发控制 读写:有数据安全问题,脏读,幻读,不可重复读 写写:有数据安全问题,可能存在…

Mysql中的MVCC

Mysql到底是怎么实现MVCC的?这个问题无数人都在问,但google中并无答案,本文尝试从Mysql源码中寻找答案。 在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段: 6字节的事务ID&#xf…

MVCC原理

在并发读写数据库时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但…

MVCC机制

MVCC 1. MVCC是什么? MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC的具体…

MVCC实现原理

1、什么是MVCC mvcc多版本并发控制。 mvcc在mysql innodb中主要是为了提高数据库并发性能,用更好的方式去处理读写冲突,做到即使有读写冲突时,也能做到不加索,非阻塞并发读。。 2、实现原理: mvcc的实现是通过保存…

MySQL的MVCC及实现原理

一 概要 1.什么是 MVCC ? MVCC,全称 Multi-Version Concurrency Control ,即多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC 在 MySQL…

InnoDB MVCC 机制

本文详细的介绍了什么是MVCC?为什么要有MVCC?以及MVCC的内部实现原理:包括Undo Log的版本链是如何组织的,RR、RC两个级别下一致性读是如何实现的等。通过案例、插图,以最通俗易懂的方式,让你彻底掌握MVCC的…

mysql mvcc 实例说明_Mysql MVCC

一、MVCC概述 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。整个MVCC多并发控制的目的就是为了实现读-写冲突不加锁,提高并发读写性能,而这个读指的就是快照度, 而非当前读,当前读实际上是一种加锁的…

MVCC

一、什么是MVCC MVCC(Multiversion concurrency control )是一种多版本并发控制机制。 二、MVCC是为了解决什么问题? 并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理。以达到用来避免写操作的堵塞,从而引发读操…

MVCC详解

一、前言 全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,因为myIsam不支持事务。 同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式…

MVCC 机制的原理及实现

什么是 MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。 如此一来…

深入浅出:MVCC详解

什么是MVCC: MVCC(Multi Version Concurrency Control的简称),代表多版本并发控制。与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。 MVCC最大的优势:读不加锁,读写不冲突。在读多写少…

什么是MVCC?MVCC解决了什么问题?MVCC的实现原理?

1.什么是MVCC? MVCC全称是【Multi-Version ConCurrency Control】,即多版本控制协议。 多版本控制(Multiversion Concurrency Control): 指的是一种提高并发的技术。最早的数据库系统,只有读读之间可以并发&#xff…

MVCC详解,深入浅出简单易懂

一、什么是MVCC? mvcc,也就是多版本并发控制,是为了在读取数据时不加锁来提高读取效率和并发性的一种手段。 数据库并发有以下几种场景: 读-读:不存在任何问题。读-写:有线程安全问题,可能出…

【MySQL笔记】正确的理解MySQL的MVCC及实现原理

MVCC多版本并发控制 如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里 !首先声明,MySQL 的测试环境是 5.7 前提概要 什么是 MVCC什么是当前读和快照读?当前读&…