基于矩阵分解模型的协同过滤理论概述(涉及到SVD,SVD++,TimeSVD++)

news2024/11/25 16:34:56

前言

本篇文章是对博客:从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现的补全,感谢该作者的分享

本文补全的内容为:

  • SVD++中 y j y_j yj的实际含义理解,以及对应的梯度下降公式
  • TimeSVD++梯度下降公式的分析

正文

SVD++

SVD++的原模型应该是如下形式:
在这里插入图片描述
其中 w i j w_{ij} wij是物品与物品的关联矩阵(梯度下降要学习的内容)
如果将 w i j w_{ij} wij再次进行QP分解,Q向量即物品i的隐向量,可与前式合并,得到如下形式:
在这里插入图片描述
即SVD++的公式模型
视上式中的所有字符为自变量求导,可得SVD++的梯度下降公式:
在这里插入图片描述

TimeSVD++

TimeSVD++的时序信息从基线预测模型和用户偏好模型两方面体现
一是基线预测模型,在SVD++的基础上,对 b i b_i bi增加了电影的受欢迎度在30个时间区间下的波动常值(也就是30个待优化的参数),记为 b i , B i n ( t ) b_{i,Bin(t)} bi,Bin(t),修正后的 b i b_i bi如下式:
在这里插入图片描述
还对 b u b_u bu增加了线性偏置量 d e v u ( t ) dev_u(t) devu(t)以及用户 u u u的波动常值 b u , t b_{u,t} bu,t(原文中按天给,数据集一共40天,所以是40个待优化的参数),修正后的 b u b_u bu如下式:
在这里插入图片描述
二是用户偏好模型,对 p u p_u pu引入时间变量,按隐向量维度f分为:
p u ( t ) = { p u 1 ( t ) , . . . , p u f ( t ) } p_{u}(t)=\{p_{u1}(t),...,p_{uf}(t)\} pu(t)={pu1(t),...,puf(t)}
对其中某一维k来说,引入的时间变量仍可按照线性偏置量以及用户 u u u在该维度的波动常值来代替,即修正为下式:
在这里插入图片描述
依向量化的思想,文中引入的新变量可以分为三类:

  • b i b_i bi中的波动常值 b i , B i n ( t ) b_{i,Bin(t)} bi,Bin(t)(有30个待优化量)
  • b u b_u bu以及 p u p_u pu中的线性偏置量(前者有3个待优化量,后者有3*f个待优化量)
  • b u b_u bu以及 p u p_u pu中的波动常值(前者有40个待优化量,后者有40*f个待优化量)

对上述三类新变量分别求梯度,与SVD++的梯度下降公式结合即可建立起TimeSVD++的梯度下降模型,其中:

  • 波动常值可视作一个向量,对向量求梯度,而不是对每一个待优化量求梯度
  • 线性偏置量因为3个带优化量有运算关系,应分别对3个待优化量求梯度,而不能视作向量求梯度

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

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

相关文章

[附源码]JAVA毕业设计高校校园社交网络(系统+LW)

[附源码]JAVA毕业设计高校校园社交网络(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

高通导航器软件开发包使用指南(15)

高通导航器软件开发包使用指南(15)9 基本参数调整9.1关键调谐参数9.2调整过程9.2.1传感器方向9.2.2电子速度控制器(ESC)9.2.3螺旋桨和电机特性9.2.4指定车辆总质量的参数9.2.5最小和最大推力命令9.2.6推进器配置9.2.7姿态控制增益…

魔兽世界服务端源码各个重要文件详细情况说明开服一条龙

魔兽服务端开服源文件各文件翻译 很多文件在服务器中我们知道是跟什么有关,但就是不知道其作用是什么。就算我们知道在这些地方中的文件都是有着不小的作用。但是由于不知道各个文件代表的是什么意思所以在面对这些文件的时候都会有无从下手的感觉,所以…

入耳式无线蓝牙耳机哪款好?无线入耳蓝牙耳机推荐

随着近几年蓝牙耳机的快速发展,使用蓝牙耳机的人也越来越多,可供人们选择的蓝牙耳机也有很多。那么,在现如今的蓝牙耳机市场中,哪款无线蓝牙耳机好?下面,我来给大家推荐几款无线入耳蓝牙耳机,可…

HTML+CSS+JavaScript仿京东购物网站制作 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

JavaWeb中的VUE快速入门

目录 概述: Vue的安装 Vue的常用指令 通过VUE高效提交表单调用接口请求 Vue的生命周期 概述: Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。Vue为当前的国内前端主流框架,基于MVVM(Model-View-ViewModel&…

kubernetes之pod详解

pod详解 文章目录pod详解Pod生命周期一、创建和终止二、 初始化容器Pod调度定向调度亲和性调度污点和容忍Pod生命周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程: pod创建过程运行初始化容器(init …

ByteX-shrink_r源码解析

背景 为什么要对R文件内联处理? 这里首先说一下Android R文件的产生,对于Android开发者我们都知道,当我们要使用要使用一些布局文件,drawable等其他资源时,可以直接用 R.id. R.drawble.等直接使用,而这个…

Redis 内存管理

前言 Redis 的同学应该都知道,它基于键值对(key-value)的内存数据库,所有数据存放在内存中,内存在 Redis 中扮演一个核心角色,所有的操作都是围绕它进行。我们在实际维护过程中经常会被问到如下问题&#x…

详解设计模式:组合模式

组合模式(Composite Pattern),又叫部分整体模式,是 GoF 的 23 种设计模式中的一种结构型设计模式。 组合模式 是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。…

Codeforces Round #726 (Div. 2) E1. Erase and Extend (Easy Version)

翻译: 这是这个问题的简单版本。唯一的区别是𝑛和𝑘上的约束。只有当所有版本的问题都解决了,你才能进行hack。 你有一个字符串𝑠,你可以对它做两种类型的操作: 删除字符串的最后一个字符。 复制字符串:…

UI 智能化的原理和未来

本文将从 GUI 中用户体验的构建开始,用高质量、可调控、交互体验创新三个部分,分别介绍如何从传统 UI 一步步迈向 UI 智能化。最后,用如何实现 UI 智能化的一些思考收尾。 本文仅代表作者个人观点。前言:「UI 智能化才是用户体验的…

第十七章《MySQL数据库及SQL语言简介》第3节:数据库管理

17.2小节主要讲解的是MySQL数据库的下载、配置和安装。从严格意义来讲,17.2小节所做的工作是对“数据库管理系统”进行下载、安装和配置。本小节所要讲解的数据库管理是指如何用数据库管理系统新建、重命名和删除一个数据库。 程序员操作数据库管理系统主要有两种方式:1、通…

[附源码]Python计算机毕业设计SSM课程教学质量综合分析平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

企业里使用最广泛的技术之一SparkSQL

声明: 文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。 By luoyepiaoxue2014 B站&#xff…

mybatis实战:一、mybatis入门(配置、一些问题的解决)

出自《MyBatis从入门到精通》刘增辉&#xff0c;精简 1.pom.xml 1.设置源码编码方式为 UTF -8 2.设置编译源代码的 JDK 版本 3.添加mybatis依赖 4.还需要添加会用到的 Log4j JUnit ySql 驱动的依赖。 <?xml version"1.0" encoding"UTF-8"?> <pr…

麻雀算法(SSA)优化长短期记忆神经网络的数据回归预测,SSA-LSTM回归预测,多输入单输出模型。

clear all; close all; clc; %% 导入数据 P_train xlsread(data,training set,B2&#xff1a;G191); T_train xlsread(data,training set,H2&#xff1a;H191); % 测试集——44个样本 P_testxlsread(data,test set,B2:G45); T_testxlsread(data,test set,H2:H45); %% 优化参…

简单封装一个易拓展的Dialog

Dialog&#xff0c;每个项目中多多少少都会用到&#xff0c;肯定也会有自己的一套封装逻辑&#xff0c;无论如何封装&#xff0c;都是奔着简单复用的思想&#xff0c;有的是深层次的封装&#xff0c;也就是把相关的UI效果直接封装好&#xff0c;暴露可以修改的属性和方法&#…

【MySQL】数据库备份与容灾详解(实战篇)(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

优质短视频的10个共同点,戳中两个就能提高爆款几率!

优质短视频的10个共同点&#xff0c;戳中两个就能提高爆款几率&#xff01; 01、引起共鸣和认同 : 观念、遭遇和经历 昨天随便搞了一个表情&#xff0c;配了一段核酸是辛酸的文案&#xff0c;30w播放。这就是共鸣。 02、引起好奇 :为什么、什么、何时、惊喜 ; 疑问或者悬疑式…