推荐系统概述3

推荐系统入门(一):概述 推荐系统基础(一):概述 目录推荐系统基础(一):概述 阅读详情

文章列表
推荐系统概述1
推荐系统概述2
推荐系统概述3
推荐系统概述4
推荐系统概述5
推荐系统概述6
推荐系统概述7

本篇是第3篇


写这篇博文用了很多时间和精力,如果这篇博文对你有帮助,希望您可以打赏给博主相国大人。哪怕只捐1毛钱,也是一种心意。通过这样的方式,也可以培养整个行业的知识产权意识。我可以和您建立更多的联系,并且在相关领域提供给您更多的资料和技术支持。

赏金将用于拉萨儿童图书公益募捐

手机扫一扫,即可:
这里写图片描述

附:《春天里,我们的拉萨儿童图书馆,需要大家的帮助》

本节主要内容:

参考文献

[1] X. Yu, et al., “Recommendation in heterogeneous information networks with implicit user feedback,” in Proc. 7th ACM Conf. Recommender Syst., 2013, pp. 347–350.

[2] Y. Sun, J. Han, X. Yan, S. P. Yu, and T. Wu. PathSim: Meta Path-Based Top-K Similarity Search in Heterogeneous Information Networks. In VLDB, 2011

[3] S. Rendle, C. Freudenthaler, Z. Gantner, and L. Schmidt-Thieme. Bpr: Bayesian personalized ranking from implicit feedback. In UAI,2009.

文献依赖关系

[1]首先把观测到的用户倾向沿着可能的元路径进行扩散[2]。然后使用矩阵分解的技术对扩散矩阵进行分解,并得到相应用户和项目的隐含特征。接着,基于这些隐含特征构建一个混合推荐模型,并采用贝叶斯排名优化技术[3]进行参数估计。

[1]的缺点是没有像HeteroMF那样考虑到多个上下文

PathSim[2]

这里写图片描述

参考前面说过的HeteSim。这个公式中 : 相当于|,分母是自己到自己的路径。分母是到彼此的路径(Tom->Mary, Mary->Tom,所以要乘以2)。

补全稀疏矩阵

  1. 定义user feedback matrix

这里写图片描述

  1. 用PathSim或类似的相似性测量方法得到item pairs的相似性矩阵

    By measuring the similarity of all item pairs with one meta-path, we can generate a symmetric similarity matrix, denoted as S∈Rn×n . With L different meta-paths, we can calculate L different similarity matrices with different semantics accordingly, denoted as S(1),S(2),⋯,S(L) .

  2. 对原始的稀疏矩阵 R 进行补全(原文把它称为diffuse)

  3. 这里写图片描述

补充:

这个方法也可以用在传统SVD推荐中。可以参考一下。传统SVD对缺失值补全方法:
1,赋值为0
2,赋值为均值
3,本文的方法

目标函数

这里写图片描述

By repeating the above process for all L similarity matrices, we can now generate L pairs of representations of users and items(U(1),V(1),⋯,U(L),V(L)). Each low-rank pair represent users and items under a specific similarity semantics due to the user preference diffusion process. Considering that different similarity semantics could have different importance when making recommendations, we define the recommendation model as follows:

这里写图片描述

参数估计

在上一节的公式3中,我们得到的是用户对某一个商品的估计评分。

我们的最终目标是希望向用户推荐topk个商品,并且这些商品要按照可能性来进行rank。因此接下来的任务,是构建一个衡量用户对给定排序认可程度的指标。也就是特定排序下的概率[3]。

  1. We use p(ea>eb;ui|θ) to denote the probability that user ui prefers ea over eb .

    具体的说:

    p(ea>eb;ui|θ)=logistic(r^(ui,ea)−r^(ui,eb))

  2. likelihood function:

    这里写图片描述

  3. objective function:

这里写图片描述

  1. 这里写图片描述

  2. 随机梯度下降估计参数

后面的章节,请阅读《[推荐系统概述4](http://blog.youkuaiyun.com/github_36326955/article/details/71405777》

如果这篇博文对你有帮助,希望您可以打赏给博主相国大人。我可以和您建立更多的联系,并且在相关领域提供给您更多的资料和技术支持。
手机扫一扫,即可:
这里写图片描述

推荐系统(一)概述 在互联网领域,推荐系统(Recommendation Systems)的应用非常广泛。在音视频方面,如抖音、快手、哔哩等;在电商平台方面,如京东、淘宝、拼多多等。推荐有助于帮助用户快速发现潜在感兴趣的内容(音视频、商品、新闻等信息流),从而提升用户体验,同时有助于提升商业效率。从本文开始,笔者将结合自身在信息流推荐领域的经验,通过系列文章对推荐系统展开介绍。 阅读详情

相关推荐

hetesim简单实现

简单的矩阵实现。具体的可以根据论文的后半部分矩阵实现和这个小例子的程序更改。

PathSim:异质信息图中基于元路径的top-k相似搜索

PathSim:异质信息图中基于元路径的top-k相似搜索 标签(空格分隔): 图模型 PathSim 本文研究异质信息网络同一类型的顶点上的相似搜索。此外,考虑网络中不同链接路径,可以推导出不同的语义相似度。这里介绍一种基于元路径的相似度。元路径是定义在不同类型顶点之间的一系列关系序列组成的一条路径。 PathSim: PathSim:在元路径形式下,定义了一个新颖的相似搜索方法,它能

weixin_40675092的博客 9520

PathSim代码实现

异构信息网络中基于元路径APVPA的相似度PathSim实现,基于Path2.7

【论文翻译】HeteSim:异构网络中相关性度量的通用框架

HeteSim:异构网络中相关性度量的通用框架 摘要 相似性搜索是许多应用中的一个重要功能,它通常侧重于度量同一类型对象之间的相似性。然而,在许多场景中,我们需要测量具有不同类型的对象之间的相关性。随着异构网络研究的兴起,对不同类型对象的相关性度量变得越来越重要。本文研究了异构网络中的相关搜索问题,其任务是度量异构对象(包括具有相同类型或不同类型的对象)的相关性。提出了一种新的度量方法HeteSim,该方法具有以下特点:(1)一致性度量:可以在一个统一的框架内度量同一类型或不同类型对象之间的关联性;(2

Mrong1013967的博客 2173

PathSim算法的Java可执行文件

经典的最短路径算法PathSim算法的Java实现结果,可以直接执行。如需源码,请下载本资源后,在评论中留下邮箱

vtk例子后半部分

来源于网络,供初学者学习的vtk demo。 这个是后半部分。可能不全。以后边学习边弥补。

PathSim和HeteSim的简单记录

PathSim和HeteSim

我的备忘录 873

Neo4j与PathSimDemo

该代码创建了Neo4j数据库,用于存储作者和会议节点及他们之间的关系,并在元路径ACA上,通过PathSim算法计算与某个作者最为相似的K个作者。

【论文阅读】PathSim: Meta Path-Based Top-K Similarity Search in Heterogeneous Information Networks

1. 绪论 在同构信息网络中的相似度量算法: personalized PageRank (P-PageRank),SimRank,SCAN 这些算法往往忽视了对象和联系的不同类型。 由于不同类型的对象和联系带有不同的语义信息,因此很难将这些算法直接应用于异构信息网络中。 为了体现异构信息网络中的语义信息,本文介绍了基于元路径的相似度量框架。 目前有一些方法是基于框架的: · random wal...

猫哆哩o0 6506

【算法】图解A* 搜索算法

A* 算法是启发式搜索算法,是根据Dijkstra算法改进而来。 问题引入 如下图所示,S为起始(start)节点,G为目标(goal)节点。 节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。 节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数,启发函数的设计有很多方法,具体可......

zhuhua造轮子的博客 4万+

单片机OTA升级:Bootloader如何多重校验保障APP完整性?

本文详细介绍了单片机OTA升级中Bootloader如何通过CRC校验、数字签名、版本比对和存储位置检查等多重校验机制保障APP完整性。CRC校验作为快速检测数据完整性的核心手段,结合其他安全措施有效防止设备变砖和安全漏洞,确保远程升级的可靠性。

l3m4n的博客 981

【推荐系统】短视频推荐系统概述

本博文主要对业界短视频推荐领域做一个系统概览,包括推荐系统与架构、召回算法与策略、排序算法的演进、分发策略的控制四大部分。

长相忆兮长相忆的专栏 1万+

FISCO BCOS平台的用户权限控制与分类管理

在区块链技术日益广泛应用的今天,如何管理与控制不同用户的权限,确保系统的安全性与高效性,成为了区块链平台不可忽视的一部分。FISCO BCOS作为一款高效的联盟链平台,通过细粒度的权限控制机制,提供了对不同用户权限的有效管理。本文将深入探讨FISCO BCOS如何实现用户的权限控制,并对不同用户进行分类与权限管理。FISCO BCOS平台通过精密的权限控制机制,不仅提供了对用户表和系统表的细粒度权限管理,还通过工具与接口为开发者和管理员提供了便捷的权限配置与查询功能。

2201_75798391的博客 1060

推荐系统概述、分类

一、推荐系统的基本思想 知你所想,精准推送 利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品。 物以类聚 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品。 人以群分 利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜 欢的物品。 二、推荐系统的数据分析 1、用户 个人信息(注册信息) 喜好标签(勾选) 上下文信息(浏览过什么,浏览记录,用户的行为习惯) 2、物品 内容信息(基本信息) 分类标签(类别) 关键词 假如物品的特征和用户相匹配,即可。 3

I‘m Frank Lee 3828

别再为H5扫码头疼了!用Vue3 + vue-qrcode-reader,5分钟搞定移动端摄像头调用(附完整代码)

本文详细介绍了如何使用Vue3和vue-qrcode-reader快速实现移动端扫码功能,解决H5开发中常见的摄像头调用和兼容性问题。通过完整的代码示例和优化技巧,帮助开发者高效集成二维码识别功能,提升用户体验和开发效率。

weixin_33737134的博客 514

FPGA笔试题知识点汇总(21~40)

FPGA笔试题知识点汇总(21~40)

weixin_52487896的博客 5876

推荐系统概述

重排序面对的挑战就是海量状态空间如何求解的问题,在重排序更多关注NDCG等指标。重排序在业务中,

晓的博客 1560

MIPI video mode 和 command mode 的区别

1、何为LCD RAM? LCD 是指字面意思是液晶显示屏(Liquid Crystal Display), 而RAM: 随机存取存储器(Random-Access Memory),两者完全是风马牛不相及的东西。 下图是一个标准的LCD的爆炸图(不含TP),请注意图中红色mark的地方:控制IC-- LCD的大脑。所谓的LCD RAM自然是指此大脑是否包含RAM. 题外话<不感兴趣的...

精诚所至 4690

【推荐系统】推荐系统概述

编译:伯乐在线-Marticles,英文:Toby Daiglehttp://blog.jobbole.com/114167/“聆忠言者众,惟智者受益。” — 哈珀·李许多人把推荐系统...

fengdu78的博客 1442

从零到一:ESP32与豆包大模型的RTC连续对话实现指南

文本实现ESP32S3 SparkBot与豆包大模型的RTC连续对话

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 4364

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深入浅出推荐系统(一):推荐系统基本架构

深入浅出推荐系统(一):推荐系统基本架构 提纲 过去八九年在广告、生活服务、电商等领域从事大数据及推荐系统相关工作,近来打算对过去的工作做一个系统性的梳理。一方面帮自己查缺补漏、进行更深入的学习;另一方面也希望能通过博客结交同好,增进交流。 这一博客系列以介绍推荐系统为主,会少量涉及广告系统。本篇文章作为该系列的第一篇,主要对推荐系统、数据框架等进行整体介绍,不涉及过多技术细节问题。 推荐系统简史 在互联网信息爆炸的今天,推荐系统是我们身边一个无法躲避存在。在淘宝上浏览商品,在抖音上刷视频,以及无处不在的小

muruan08的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

推荐系统的概述

推荐系统就是一个将信息生产者和信息消费者连接起来的桥梁,平台作为一个载体,能够实现信息生产者和消费者之间信息的匹配。就比如我们生活中用到的软件抖音、b站、小红书、淘宝、爱奇艺等等。之所以推荐系统会存在,是由于平台方、信息生产者还有信息消费者。

m0_73378573的博客 945

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 推荐系统概述2
下一篇: 推荐系统概述4
相国大人
博客等级 码龄10年 1009粉丝 132原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值