推荐系统实战3——推荐系统中Embedding层工作原理浅析

news2024/11/30 12:50:32

推荐系统实战3——推荐系统中Embedding层工作原理浅析

  • 学习前言
  • 什么是Embedding
    • 一、为什么要有Embedding
    • 二、推荐系统中常见的Embedding处理方式
      • 1、字符串形式的输入
      • 2、连续值(特定范围值)的输入
    • 三、Embedding的注意点

学习前言

Embedding层是推荐系统特征转换的精髓,有必要简单了解一下他的原理。
在这里插入图片描述

什么是Embedding

一、为什么要有Embedding

在这里插入图片描述
Embedding技术是现代推荐系统的标配,它的主要作用是将稀疏向量转换成稠密向量。

简单来讲,Embedding就是用一个低维稠密的向量来表示一个对象,在推荐系统中,这个对象常常指的是一个特征(比如说价格、ID、种类等等),在推荐系统中,很多特征以文本的方式存在,我们可以使用哈希桶或者列表将文本转化成数字,但仅仅是数字是不利于矩阵处理的,如果使用One-hot对类别、Id型特征进行编码,导致样本特征向量极度稀疏,而深度学习的结构特点使其不利于稀疏特征向量的处理。

这个时候Embedding就发挥了非常好的作用,将数字特征转换成稠密向量,向量之间的距离反映了对象之间的相似性。相似性低的对象之间,距离一般较大。这个时候,Embedding后的稠密特征就可以很好的表示当前的特征。

二、推荐系统中常见的Embedding处理方式

1、字符串形式的输入

在这里插入图片描述
对于推荐系统而言,输入常常是字符串形式,因为不是矩阵,字符串本身无法被网络直接处理,在推荐系统中,字符串可以通过哈希桶的方式转化成单一数字(hash_bucket),对任意一个字符串,我们都可以将其转化成固定的数字,这个数字处于0到hash_bucket_size之间。

之后在代码中会建立一个可查询的embedding表,他的shape为:
(hash_bucket_size, embedding_dim)
这是一个hash_bucket_size行,embedding_dim列的矩阵,当我们通过一个字符串获得一个固定的数字后,我们会通过这个固定的离散值,获得离散值对应的行。

比如上图的例子中,我们假设hash_bucket_size等于5,embedding_dim等于32。如果输入的字符串为bicycle,我们获得的离散值等于0。我们此时就会获取embedding表的第0行,作为这个特征的embedding。

2、连续值(特定范围值)的输入

在这里插入图片描述
除去字符串形式的输入,有些值可能是连续值,比如一个特征的取值范围是1-10,此时连续值类特征可以先使用分箱组件+进行离散化,可以进行等频/等距/自动离散化,变成离散值,此时连续值就变成了存在于特定范围内的离散值。

如果有些值直接存在于特定范围内,那么我们可以直接将其进行规定,举个简单的例子,比如我们现在的物品主要是车辆,那么车辆的种类就可以规定为连续值(特定范围值)的输入。

我们直接就可以将车分为[自行车,越野车,小轿车,公交车,大货车],这里只说了五个,实际上不止这么多,此时,我们就可以设定自行车就是0,越野车就是1,小轿车就是2,公交车就是3,大货车就是4。这样就不会存在hash冲突的问题,几就是几。
如果是连续值,可以先进行离散化,同样是直接进行映射。

之后在代码中会建立一个可查询的embedding表,他的shape为:
(boundaries_size, embedding_dim)
这是一个boundaries_size行,embedding_dim列的矩阵,当我们获得某个个体的cat_id,就可以获得其中第cat_id行。

比如上图的例子中,如果输入的字符串为bicycle,在列表中它的序号为0,此时我们获得的离散值等于0。我们此时就会获取embedding表的第0行,作为这个特征的embedding。

三、Embedding的注意点

一般来讲,尽管Embedding层的工作原理类似于查表的形式,但Embedding表本身也是需要训练的,不训练的话无法保证同一特征的不同值距离较大,embedding的长度一般也不是随便取的,可以通过如下的公式进行计算。其中,x 为不同特征取值的个数:
KaTeX parse error: Undefined control sequence: \ at position 27: …_dim=8+x^{0.25}\̲ ̲
公式参考easyrec文档:
https://easyrec.readthedocs.io/en/latest/feature/feature.html

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

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

相关文章

盘点一下今年世界杯中国赞助商及联名入圈品牌

作为全世界的超级体育赛事,今年世界杯的ip流量无疑是值得期待的。虽然中国球队缺席,但中国赞助的热情是丝毫不减,中国官方合作伙伴(赞助商)分别是蒙牛、海信、vivo和万达。除了万达,其余三大品牌都是来自各…

护眼灯真的可以护眼吗?2022护眼台灯该怎样选择

或许很多人看过一些报道,认为护眼灯是智商税,并不能护眼,但是,我们并不能因为一两款劣质灯具的不行就否定整个行业的产品,真正高质量的护眼灯,并没有像相关报道说的那样不堪,相反其光线对人眼具…

微信小程序商城迅速流行的决定因素

随着互联网的不断发展壮大,许多人更倾向于线上购物,享受到足不出户就能送货上门的购物体验,这使得线上商城占据了优势。而微信小程序商城更是广受好评。 小程序商城的经营模式在很大程度上契合了当下的消费需求和消费心理。它的情感链接&…

JavaScript开发工具WebStorm入门教程:如何安装WebStorm

WebStorm是jetbrains旗下一款JavaScript 开发工具,被广大JS开发者誉为"Web前端开发神器""最强大的HTML5编辑器""最智能的JavaSscript IDE"。 本文给大家讲解WebStorm的安装教程,欢迎下载最新版产品体验! Web…

算法多重要你还不知道吗?字节大佬把LeetCode前400题的解答笔记都整理好了,头发大佬掉,我们跟着吃经验!

你知道现在LeetCode算法在大厂中的重要性吗? 前几天小编看了一个国内算法大神的短视频,他就在视频中指出了算法对当下无论是生活还是找工作中都是非常重要的! 没错这个人就是江湖人称“左神”的左程云老师 小编也简单看了一下一些比较知名互…

定语从句------六级

1.复合句/从句三大类 从句在整个句子中做什么成分,就叫什么从句。 形容词性从句:定语从句,带有谓语的完整的结构在另一个句子中做定语 名词性从句 副词性从句:状语从句 从句典型的标志,带有关系词2.定语从句&#xff1…

selenium⾃动化测试⾯试题及答案,看看你会多少?

说到UI自动化,可能大家和我一样,主要是用Selenium。毕竟Selenium可是UI自动化方面的王者。 而且Selenium 支持多平台,可以模拟真实浏览器,也支持多种浏览器,免费开源,对商业用户也没有任何限制&#xff0c…

分布式任务调度项目xxl-job

xxl-job简介 分布式任务调度项目xxl-job的官网:分布式任务调度平台XXL-JOB 大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c…

【2012】408联考数据结构真题整理

2012年 1 题目 解析 递归 2 题目 答案:A 解析 3 题目 解析 4 题目 答案:B 解析 T1:1T2:2T3:2 1 1 4T4:T3 T2 1 2 4 1 7T5:T4 T3 1 7 4 1 12T6:T5 T4 1 …

Mac M1 Datasophon 安装

Mac M1 Datasophon 安装 什么是 Datasophon DataSophon 是致力于自动化监控、运维、管理大数据基础组件和节点的,帮助您快速构建起稳定,高效的大数据集群服务。 网络要求 要求各机器各组件正常运行提供如下的网络端口配置: 组件默认端口…

PROFINET转EtherCAT网关方案设计

1 摘要 PLC控制器和远程IO通过通讯的方式在目前的生产现场中越来越频繁;有些现场是控制器和远程IO站是统一的通讯协议,而有些现场会出现远程IO站不用协议的情况,主要是来自不同厂家的产品受限。 1.1 解决方案 河南某现场控制器采用西门子1500…

Python之第十一章 面向对象 --- 三大特征

目录 Python之第十一章 面向对象 --- 三大特征 面向对象三大特征 --- 封装 1.在Python代码中,封装有两层含义: 2.封装中的私有属性和私有方法 3.私有属性的访问限制 4.私有属性设置与访问接口 5.私有方法 6.封装的意义 7.property装饰器封装 面…

SCADA系统架构、类型和应用

智能仪表和远程终端单元(RTU)/可编程逻辑控制器(PLC)的进步使得许多行业的过程控制都可以利用SCADA系统的优势轻松管理和操作。SCADA在多种应用中很受欢迎,如加工工业、石油和天然气、发电、配电和公用事业,水和废物控制、农业/灌溉、制造、运输系统等。…

RNN在图像压缩领域的应用-Variable rate image compression with recurrent neural networks

Variable Rate Image Compression with Recurrent Neural Networks RNN在图像压缩领域应用最经典的一篇,由Google的George Toderici提出。原文连接:Variable Rate Image Compression with Recurrent Neural Networks 文章提出了一种基于卷积和反卷积LSTM的RNN网络…

美食杰项目 -- 登录注册(三)

目录前言:具体实现思路:步骤:1. 展示美食杰菜谱大全效果在这里插入图片描述2. 引入element-ui3. 代码总结:前言: 本文给大家讲解,美食杰项目中 登录注册实现的效果,和具体代码。 具体实现思路&…

内网渗透神器CobaltStrike之钓鱼攻击(六)

一、HTA木马 简介 HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。就是一个html应用程序,双击就能运…

LeetCode-剑指57-II.和为s的连续正数序列

1、循环 我们可以一次循环每一个数,在⌊n2⌋\left \lfloor \frac{n}{2} \right \rfloor⌊2n​⌋的范围内循环检查添加新的数字后形成的数组和是否为target,若是则将当前数组加入结果当中;否则继续进行循环或跳出循环。 class Solution { pu…

VR,向「B」而生

VR仍是一门好生意,对于VR厂商而言,能否看到VR技术大规模普及的那一天,在于是否认清当下局势,即什么时间干什么事。毕竟在这个泡沫较多的领域,“脱虚向实”,活下去,专注技术与服务,更…

块级格式化上下文BFC

块级格式化上下文BFC创建格式化上下文BFC有哪些特性?特性一特性二特性三特性四BFC的特性可以解决哪些问题?高度塌陷margin塌陷包含塌陷BFC是前端日常开发中离不开的知识点,“块级格式化上下文”是格式化上下文中最常用的一种,格式…

iOS程序内语言切换使用小结

随着时代的发展,应用程序相继出现了不同语言的版本方案,中文,英文,法文,韩文等等;想在应用程序中实现语言的自由切换,需要配置多个语言的文件,根据用户的动态选择获取不同语言文件下…