IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【工业界推荐算法】Embedding-based News Recommendation for Millions of Users -> 正文阅读

[人工智能]【工业界推荐算法】Embedding-based News Recommendation for Millions of Users

一、概述

本文提出了一个三层的基于embedding的分布式表示方法:

  1. 基于一种弱监督的降噪自编码器对文章进行embedding向量化;
  2. 利用用户的历史浏览信息作为rnn的训练数据生成用户的embedding向量;
  3. 直接利用文章embedding向量和用户的embedding向量做内积,匹配出用户最可能感兴趣的topN文章列表,并对该列表做去重。

日本雅虎团队将该推荐策略应用在来日本雅虎的智能手机主页推荐业务上。整个流程分为五部分:

  1. 识别:获得预先根据用户历史数据计算好的用户特征
  2. 匹配:使用用户特征从所有可用的文章中提取出候选文章集
  3. 排序:按照一定的排序规则算法对文章进行排序
  4. 去重:移除包含相同信息的文章
  5. 广告:必要时插入广告

以上这一系列动作都需要在用户的请求和显示推荐的文章这之间的几百毫秒内全部完成,但是每天能推荐的文章是一直在变的,有成千上万的文章被删除,也有成千上万的文章加进来,所以必须得提前将所有的文章emebdding和用户embedding计算好。然后再针对每个用户去选取候选的文章,选取的方式就是计算用户embedding和文章embedding的内积,根据内积的大小设置预测来选取一定数量的候选文章集。

有了候选文章集就可以继续利用其他的因素,来对文章进一步的精排序,比如文章的访问量,文章的新鲜度等等,这就需要进一步对文章,用户以及文章用户之间的上下文信息进行特征工程。

基于embedding可以对文章进行去重。本文作者采用的是利用贪心策略对推荐出的文章集合进行去重。分别计算推荐出的文章embedding的余弦相似度,当排序后更加靠前的文章和后面的文章余弦相似度超过一定阈值后,就把后面的文章认为和前面的文章重复,把后面出现的文章从推荐列表中去掉。

二、文章embedding的生成方法

利用降噪自编码器来生成embedding向量:
请添加图片描述
原始输入x,经过损坏函数q(x),破坏原始的输入x,生成了被损坏的 x ~ \widetilde{x} x ,然后经过全连接f(x)就可以隐层的表示h了,再通过同样的方式把h重建回原来的x;就是上图中的y。最终的损失函数就是要让重建的y和真实的输出x尽量一致。做q(x)的目的就是为了让学习出来的f(x)能更加的鲁棒。

但是自编码器只能将原始的输入进行编码,无法学习输入的文章是否是相同或者不同的文章,所以需要对降噪自编码器的损失函数做来一点修改,加入一点监督信息,让模型能学习到文章之间的差异和相似。即:
请添加图片描述
和原始的降噪自编码器对比一下就能发现,改动主要在损失函数,但是这里整体的网络结构是个三元组( x 0 , x 1 , x 2 x_0,x_1,x_2 x0?,x1?,x2?)。其中 x 0 x_0 x0? x 1 x_1 x1?来自同一类目, x 0 x_0 x0? x 2 x_2 x2?来自不同的类目。可以看出来主要的区别就是在损失函数中加入了对三个输出的隐层的度量,使得 h 0 h_0 h0? h 1 h_1 h1?的相似度能大于 h 0 h0 h0 h 2 h_2 h2?的相似度。从这部分损失就可以看出来,log(1+exp(x))要想最小化就需要exp(x)尽量等于0,那么x就要趋近于负无穷。这里的x就是 h 0 T h 2 ? h 0 T h 1 h_0^Th_2-h_0^Th_1 h0T?h2??h0T?h1?,要让 h 0 T h 2 ? h 0 T h 1 h_0^Th_2-h_0^Th_1 h0T?h2??h0T?h1?趋近于负无穷就是要让 h 0 T h 1 h_0^Th_1 h0T?h1?远大于 h 0 T h 2 h_0^Th_2 h0T?h2?

在这里插入图片描述

最后模型生成的h就是输入x的emebdding向量。

三、用户embedding向量的生成方法

用户u ∈ U 的浏览历史表示为: a u ∈ A t = 1 , ? ? ? , T u {a_u ∈A}_{t=1,···,T_u} au?At=1,???,Tu?? ,其中a是文章的分布式表示向量。
请添加图片描述
u t u_t ut?是取决于 a 1 u , . . . , a t u a_1^u, ..., a_t^u a1u?,...,atu?的用户状态, R ( u t , a ) R(u_t,a) R(ut?,a)是用户状态 u t u_t ut?和文章a之间的相关性。我们的主要目标是构造满足以下性质的用户状态函数F和相关函数R:
请添加图片描述
在考虑具有大流量的实际新闻发布系统的受限响应时间时,R必须是一个可以快速计算的简单函数。因为候选条目经常被替换,所以不可能预先计算所有用户以及所有文章之间的相关性得分。因此,有必要在很短的时间内进行计算。但是,我们有足够的时间计算用户状态函数F,直到下一个会话从浏览某些文章页面开始。

基于这些原因,我们将相关函数 R ( u t , a ) R(u_t,a) R(ut?,a)限制为一个简单的内积关系 R ( u t , a ) = u t T a R(u_t,a)=u_t^Ta R(ut?,a)=utT?a,并且只优化用户状态函数F。优化目标为:
请添加图片描述
由于存在偏差,在实践中,当文章被垂直排列时,点击概率取决于显示位置,我们使用以下目标,包括偏差项B(·,·),来纠正此类影响:
请添加图片描述

然后用GRU进行建模:
请添加图片描述

参考资料

  1. 【日本雅虎新闻推荐】:Embedding-based News Recommendation for Millions of Users(附开源代码)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:30:57  更:2022-01-17 11:31:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 21:46:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码