【1】序列化点击率

2018DIN

3】如何建模用户历史序列和候选集之间的关系?局部激活单元

(1)以前的方法:Embedding&MLP范式,首先将大规模稀疏输入特征映射为低维嵌入向量,然后以分组的方式转化为固定长度向量,最后拼接在一起馈送到全连接层(也被称为多层感知器,MLP),学习特征之间的非线性关系。与常用的逻辑回归模型[19]相比,这些深度学习方法可以减少大量的特征工程工作,大大提高模型的能力。为简便起见,本文将这些方法命名为Embedding&MLP,它们目前已成为CTR预测任务中的常用方法。

(2)Embedding&MLP缺点1:由于表示的向量维度有限,Embedding&MLP范式不能很好表达用户广泛的兴趣。例如:用户在访问电子商务网站时,可能会同时对不同种类的商品感兴趣,也就是说,用户的兴趣是多样化的。Embedding&MLP方法通过将用户行为的嵌入向量转化为一个固定长度的向量来学习某一用户所有兴趣的表示,这限制了Embedding&MLP方法的表达能力。

(3)Embedding&MLP缺点2:没有必要将某个用户的所有不同兴趣压缩到同一个向量中,因为只有部分用户的兴趣会影响他/她的行为(点击或不点击)。例如:一个女性游泳者会点击推荐的泳镜,主要是因为她买了泳衣,而不是她上周购物清单上的鞋子。

(4)改进:设计了一种新的深度兴趣网络(DIN),该网络引入局部激活单元。考虑用户历史行为的相关性来自适应计算用户兴趣的表示向量。DIN通过引入局部激活单元,对历史行为的相关部分进行软搜索,关注相关用户兴趣,并采用加权和池化的方法得到用户对候选广告的兴趣表示。与候选广告相关度高的行为具有较高的激活权重,主导用户兴趣的表现。

(5)其他:

1,局部激活单元没有进行softmax归一化,是为了保留用户兴趣的强度

2,小批量感知正则化

3,DIce激活函数

2018DIEN

2】如何建模用户历史序列?GRU

3】如何建模用户历史序列和候选集之间的关系?AUGRU

(1)DIN缺点:只利用了用户的行为,并未挖掘行为背后的兴趣。还有,用户的兴趣是不断变化的,捕获兴趣的动态变化对兴趣表示也很重要。

(2)改进:包括兴趣抽取(提取)层和兴趣演化层。兴趣抽取层,使用GRU网络从用户的历史行为中提取用户的兴趣,此外,引入辅助损失函数去监督每一步的兴趣抽取。兴趣进化层,找到与候选集相关的那部分兴趣的演化过程,判断下一时刻对该兴趣“感兴趣”的程度。捕获与目标项相关的兴趣进化过程与DIN使用局部激活单元不同,DIEN使用改进后的AUGRU考虑到用户行为序列背后的顺序性质。

2019BST

2】如何建模用户历史序列?Transformer

(1)以前模型的缺点1:在WDL中,他们只是将所有的特征连接起来,而没有捕获用户行为序列中的顺序信息,忽略了用户历史的行为序列特征。在DIN中,他们提出使用注意机制来捕捉候选项目与用户之前点击的项目之间的相似性,而没有考虑用户行为序列背后的顺序性质。

(2)以前模型的缺点2:GRU等方式的一大缺点是对用户历史序列进行串行计算,耗时相对来说还是较高一些。

(3)改进:用Transformer的方式,来实现用户历史序列的并行计算。最后使用注意力机制,计算与候选集相关程度。

2019DSIN

2】如何建模用户历史序列?Transformer+Bi-LSTM

(1)以前忽略的问题:如何从用户的行为序列中捕捉用户动态的、不断发展的兴趣是点击率预测中一个持续研究的课题。然而,现有的大多数研究忽略了序列的内在结构:序列由会话组成,其中会话是由发生时间分隔的用户行为。我们观察到用户行为在每个会话中都是高度同构的,并且是异构的跨会话。

(2)改进:提出深度会话兴趣网络,该模型利用用户行为序列中的多个历史会话。我们首先使用带有bias编码的自注意机制来提取用户在每个会话中的兴趣,自我注意可以捕捉会话行为的内在交互/相关性,进而提取用户对每个会话的兴趣。这些不同的会话兴趣可能相互关联,甚至遵循顺序模式,因此,在第二部分中,我们应用双向LSTM来捕捉用户不同历史会话兴趣的交互和演变。由于不同的会话兴趣对目标项的影响不同,最后我们设计了局部激活单元,将它们与目标项聚合,形成行为序列的最终表示。

2020SIM

1】如何提取用户的历史序列?GSU

3】如何建模用户历史序列和候选集之间的关系?ESU

(1)现有方法的缺点:丰富的用户行为数据已被证明对点击率预测任务有很大的价值,特别是在推荐系统和在线广告等工业应用中。阿里巴巴提出的基于记忆网络的模型MIMN[8],通过学习算法和服务系统的协同设计实现了SOTA。然而,当用户行为序列的长度进一步增加(例如增加10倍或更多)时,MIMN无法精确地捕捉给定特定候选条目的用户兴趣。这一挑战在以前提出的方法中广泛存在。

(2)改进:基于搜索的兴趣模型。包括GSU和ESU。通用搜索单元GSU,从原始和任意长序列行为数据中进行通用搜索,并结合候选项的查询信息,获得与候选项相关的子用户行为序列。精确搜索单元ESU,模拟候选项目与用户行为序列之间的精确关系,我们利用多头注意力来捕捉不同的用户兴趣。

2020DMIN

2】如何建模用户历史序列?Mutil-head Self-Attention

3】如何建模用户历史序列和候选集之间的关系?多个注意头与局部激活单元

(1)现有方法的缺点:现有的一些研究进一步基于用户历史行为序列对用户表示进行建模,以获取动态发展的兴趣。例如:在DIN中,利用基于注意的方法从用户行为序列中获取与候选项目相关的相对兴趣。但是,它忽略了用户行为序列的顺序。DIEN进一步使用了特别设计的GRU结构来捕捉用户兴趣的演变。DSIN通过将行为序列划分为会话,引入了行为序列的分层视图。然后用自我注意网络对每个会话进行建模,以捕获多个用户的兴趣。我们观察到,用户通常同时具有多个兴趣,潜在的主导兴趣是通过历史行为来表达的。潜在主导兴趣的转变是由于历史行为改变了。因此,建模和跟踪潜在的多兴趣将是有益的。

(2)改进:包括行为细化层和多兴趣提取层。行为细化层,使用多头自注意机制用于细化用户行为序列中项目的表示zt,然后再使用辅助损失函数。多兴趣提取层能够捕获潜在的多个兴趣,引入另一个多头自注意层和局部注意单元来提取多个兴趣。

总结

序列推荐的点击率预测,主要考虑三个个问题:如何提取用户的历史序列?得到历史序列后,如何建模用户历史序列?最后,如何建模用户历史序列和候选集之间的关系?

(1)第一个问题:

(2)第二个问题:

(3)第三个问题:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,接下来我们需要初始化RFID模块。这里我们假设你已经按照我们之前提供的接线图连接好了模块和Arduino板子。 首先,我们需要在Arduino IDE中安装MFRC522库。打开IDE,点击菜单栏的“工具”->“管理库”,在搜索栏中输入“MFRC522”,找到相应的库并安装即可。 然后,我们可以使用以下代码来进行初始化: ``` #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); //创建MFRC522实例 void setup() { Serial.begin(9600); //初始化串口通信 SPI.begin(); //初始化SPI通信 mfrc522.PCD_Init(); //初始化MFRC522模块 } void loop() { //主循环代码 } ``` 在上面的代码中,我们定义了MFRC522库所需的引脚,然后创建了一个MFRC522实例。在setup函数中,我们初始化了串口通信、SPI通信和MFRC522模块。 现在,你可以将代码上传到Arduino板子上,并打开串口监视器。如果一切正常,你应该能够看到一系列的初始化信息,表示RFID模块已成功初始化。 接下来,我们就可以开始读取RFID卡片的信息了。 ### 回答2: 在上面的问题中,我们讨论了如何初始化RFID模块的一部分过程。接着我们继续编写初始化RFID模块的剩余步骤。 第四步是设置串口通信参数。我们可以使用串口通信与RFID模块进行数据传输。要与RFID模块进行通信,我们需要设置正确的波特率和数据格式。首先,我们需要确定我们的主控制器(如Arduino)和模块之间的波特率。我们可以使用适当的函数(如Serial.begin())设置波特率。然后,我们还可以设置其他通信参数,例如数据位、停止位和校验位。 第五步是发送初始化命令。在这一步中,我们将向RFID模块发送初始化命令以启动模块,并将其配置为我们所需的模式。通常,我们需要发送字节序列或命令来配置模块的各种参数,例如阅读范围、数据格式和访问控制等。我们可以使用串口发送这些命令。 第六步是等待响应。在向RFID模块发送初始化命令后,我们需要等待模块的响应。模块可以发送响应字节序列,以指示其已成功接收并执行命令。我们可以使用串口接收模块的响应,并对其进行解析和处理。根据响应,我们可以确定初始化是否成功,并根据需要采取进一步的操作。 最后一步是确保RFID模块已成功初始化,并准备好与其他设备进行通信。为了确保模块正常工作,我们可以尝试使用读卡器来读取附近的RFID标签。如果读取到标签的数据,并且数据与预期的格式和内容匹配,那么我们可以确认RFID模块已成功初始化。 以上是初始化RFID模块的剩余步骤。通过正确配置通信参数、发送初始化命令、等待响应并验证模块操作,我们可以确保RFID模块正常工作,并准备好进行后续的RFID读写操作。 ### 回答3: 初始化RFID模块是指在使用RFID模块前,对其进行一系列配置和设置的过程。下面介绍一下如何继续进行RFID模块的初始化。首先,连接RFID模块至开发板或其他设备的串口或I2C接口。确保连接稳定可靠。接下来,打开开发环境或者编程软件,并导入RFID模块所需的相关库文件。然后,通过代码设置串口波特率或I2C地址等通信参数,以便与RFID模块进行数据交互。接着,发送初始化命令至RFID模块。一般而言,RFID模块提供一种或多种初始化指令,可以设置模块的工作模式、功率、读写器区域等。根据具体情况,选择合适的初始化指令并发送给模块。等待RFID模块回应初始化完成的确认信号。最后,对RFID模块进行功能测试,验证模块是否正常工作。例如,可以通过发送读取指令,读取附近标签的ID信息,并在开发环境中打印输出。通过这些步骤,就可以成功初始化RFID模块,并确保其能够正常运行。当然,在实际应用中,还需要根据具体需求对RFID模块进行进一步的配置和参数设置,以满足特定应用场景的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值