标签 href 怎么拼接_【微信】用户-标签的兴趣建模

108dcd5fad3d0bec928f2d5fde4ae98f.png

这一篇分享的是CIKM2020微信的learning to build user-tag profile,主要介绍了微信看一看("Top Stories")中,如何进行用户-标签的兴趣建模,提升推荐效果。

1、背景

看一下微信看一看场景下的推荐流程:

a717f960605b298053b560a1bfeb414e.png

它整个推荐系统主要有四部分:新闻画像层(news profile layer),用户画像层(user profile layer),召回层(recall layer)和排序层(rank layer)。

在新闻画像层,对新闻相关的特征如文章标签,类别等进行提取。在用户画像层,对用户的基本信息和行为信息进行建模。这里很重要的一个特征是用户标签。随后是召回层,有多种召回方式;最后是排序层,可以使用更复杂的模型对召回层得到的结果进行精确的排序,最后展示给用户。

因为用户画像和召回层、排序层的模型非常相关,所以有必要建立一个准确的用户画像。论文主要讲了对用户对文章标签的偏好的建模,提出了User Tag Profiling Model。

构建user-tag profile的时候,对每个user,会收集他阅读历史中点击过的新闻的标签,并在模型训练步骤中计算出用户对这些标签的偏好。在新闻推荐系统中,通常将点击过的新闻作为正样本,浏览过但是没有点击的新闻作为负样本。但是直接将这个方法用于标签,会使点击过的新闻的标签都是正样本,这是有问题的。因为用户点击新闻也许只是对其中一个标签感兴趣。

基于这些考虑,文章提出了两个问题:

RQ1: 如何自动选择有用的特征?并且学习到同一个field和不同field之间的特征的相互作用?

RQ2:怎么从用户点击过的新闻中学习到用户对不同标签的偏好?

2、论文主要贡献

(1)提出了user-tag profiling model,这个模型可以利用用户信息的多个field,并且适用于其他用户画像任务;

(2)在模型中引入了 multi-head attention 机制,共享 query vector;

(3)提出了一个改进的基于FM的交叉特征层;

(4)设计了联合损失来学习用户标签的偏好。

3、UTPM模型整体结构

e17f153897c3631467b3d71044e7b83b.png

它分为5层:feature input layer,attention fusion layer,cross feature layer,fully connect layer,predicting layer

3.1 Feature input layer

b5f32d84bd9484574c5b4e40425c3ca2.png

在特征输入层,输入特征,主要包含两部分:人口统计信息:如年龄、性别等和用户历史阅读信息,用户阅读过的新闻对应的标签集合、类别集合等。

所有的特征都是离散特征,每个特征对应一个field。同时部分是多值离散特征,如点击过的标签集合和类别集合。离散特征通过embedding层转换成相同长度的embedding向量。

3.2 Attention-fusion layer

e7c13a6f1c9d9e1fb8180a2e4a9289f9.png

接来下是Attention-fusion层,在这一层解决提出的问题一:如何自动选择有用的特征?

在这一层有几个field,包括性别,年龄,tag,category等。其中如tag,categogy有不止一个离散特征。首先对多值离散特征进行处理:通过multi-head attention(论文里使用two-head attention),为每个特征计算权重,然后加权求和,得到两个向量输出。

2f74b0b4e22fef5af581f8e5ed0a6e3e.png

以tag为例:假设第k个field有H个tag feature,

f5ba0f2d41b4bbfb3ea66cf2b716b1e7.png

文中使用的是two-head attention,以第一个attention为例:这H个tag向量,会通过加权相加,得到一个embedding向量f,更有用的tag有更高的权重。

ed340dfc5cb2faa83246e837ecb65e0d.png

权重通过softmax计算, 其中q是query向量:

475ef8105273dfa93deed21f887ddcc5.png

这里所有的field共用query向量q1,但参数矩阵 W 是不同的field有不同的参数。这样每个field 的输出都得到了:对于单值离散特征,直接通过embedding层得到对应的embedding。对于多值离散特征,则通过这个计算得到embedding向量。

接下来,对这M个field,用同样的方法进行加权相加得到最终的embedding向量(这里query vector还是共享的)。

论文认为这种共享query向量的方式鲁棒性更好,效果也更好。然后类似的,再进行第二个attention的计算。这样就得到了两个embedding向量,把他们拼接(concatenate)起来给下一层。

3.3 cross feature layer

b94ca271960c21284a22a97f1e86bad5.png

接下来是cross feature layer,进行特征交叉。在这一层进一步解决提出的问题一:怎么学习到不同field之间的特征相互作用?

b24df1e5a92c9ea54f577171befc9cc6.png

上一层输出的embedding向量记为x,做两种处理:一是把输入x作为线性部分直接传到下一层;二是对x的不同维度进行特征交叉:x里面的每一维xi,都对应一个隐向量vi,对x的不同维度xi,xj两两组合,计算得到

a587c28b2691c984becf8485f55cea6f.png

表示特征相关性权重。

这里,交叉得到的值直接都保留了,不像FM是相加起来的。

3c27634306b105dbf846f8e14f65ded3.png

假设x的长度为E,这部分特征交叉得到的长度就为

3.4 Fully connect layer

7a3acf98bb3b54f03a01f0a8d27c250d.png

将attention fusion layer的输出x和cross feature layer的输出c进行拼接,经过两个全连接层得到最终的user embedding。

3.5 Predicting layer

f9117b7636363aa21e0b290a6098538e.png

在这一层解决提出的问题2:怎么从用户点击过的新闻中学习到用户对不同标签的偏好?一种做法是把所有用户点击过的新闻中的标签集合作为正样本,把曝光未点击的标签集合作为负样本。但用户点击某个新闻,并不一定是对这篇新闻所有对应的标签都感兴趣,有可能仅仅对其中部分的标签感兴趣。

因此这篇论文将新闻是否点击作为label,预测值的计算过程如下:

首先,对于某篇新闻,其对应的所有标签,(假设N个)转换成与用户向量u相同长度的向量;

然后,用户向量u与所有的标签向量ti进行内积计算并求和,再通过sigmoid得到预测值。

1f2fc71ff98a5fa6079e9626836d111c.png

最后,损失函数采用logloss

ab3d7496aa719a2f39e19d4a37e177b1.png

这样,用户对不同标签i的偏好分别计算,可以使用户更感兴趣的tag有更高的内积值。

【模型部分就这么多啦】

接下来是论文的实验部分。

1ff378575a43a4923c6a428e3162550a.png

好了,本文就到这啦。

感兴趣的同学可以下载论文看看噢,欢迎跟我一起讨论~

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

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

相关文章

【算法设计与分析】05 有关函数的渐进的界的定理

上一篇文章学习了函数的渐近的界定义,本篇文章继续学习函数渐近的界定理。这些定理的证明,用到了函数渐近的界的定义。点击查看上一篇文章:【算法设计与分析】04 函数的渐进的界 文章目录1. 定理11.1 证明定理11.2 估计函数的阶1.3 一些重要的…

一般窗体的设计方式

一般窗体的设计方式: 包含有(搜索框、数据列表框、分页框)、由搜索返回的数据列表中是否包含“当前页码”、“页数量”的名称来决定显示分页功能。 如果你的搜索框经常性出现大于10个字段的搜索的话,那么应该采用HashTable的参数传…

hive 如何将数组转成字符串_教你如何将Power Logic的原理图转成Orcad的原理图

1、使用Power Logic软件打开pads的原理图(此处使用的是PADS9.5版本的);2、执行菜单命令:File->Export->在弹出的对话框中点击“保存”按钮,然后选择“Select All”,并选择PADS Logic2005的版本输出,最后点击“OK…

【算法设计与分析】06 几类重要的函数

本篇文章中会用到上一篇文章的定理:【算法设计与分析】05 有关函数的渐进的界的定理 主要学习常见的一些函数的阶 1. 基本函数类 以下按阶的高低排序: 至少指数级: 2n, 3n, n!, …多项式级: n, n2, nlogn, n1/2, …对数多项式级…

【算法设计与分析】07 算法的数学基础

接下来的几篇文章将是学习算法的数学基础内容。 具体的文章包括(持续更新):

【算法设计与分析】08 序列求和的方法

本篇文章学习数列求和的一些方法。这些方法对后面学习算法的时间复杂度非常有帮助。 文章目录1. 数列求和公式1.1 二分搜索的时间复杂度求解2 估计和式上届的放大法3 估计和式渐近的界4 总结1. 数列求和公式 下面这几个数列求和公式都是高中学过的公式。 等差、等比数列和调和…

【算法设计与分析】10 差消法化简高阶递推方程

上一篇文章使用递推方程的方法求解了插入排序和二分归并的时间复杂度,本文来求解快速排序的时间复杂度,同样是利用了递推方程法,但是求解该递推方程的方法与以前不一样:差消法 文章目录1. 快速排序的时间复杂度求解2. 总结1. 快速…

python xpath定位打印元素_python基础教程:8种selenium元素定位的实现

前言selenium是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到元素定位了,在HTML中都有着不同的标签和属性,selenium根据它们来确定你的意图,每个方式都对应两个方法8种方式1.通过 id 定位2.通过 name 定位…

【算法设计与分析】11 递归树

当前面所学习的迭代法、差消法等不太好解决的问题,可以使用递归树,来很方便的解决。 文章目录1. 递归树的概念1.1 迭代在递归树中的表示2. 递归树的生成规则2.1 递归树生成实例2.2 递归树应用实例3. 总结1. 递归树的概念 递归树是迭代计算的模型递归树的…

【算法设计与分析】12 主定理及其应用

主定理是一个非常有用的定理,前面我们学习的所有知识都可以用主定理来求解,而不必要使用复杂的计算方法来求解 文章目录1. 主定理1.1 主定理的应用背景1.2 主定理内容2. 主定理的应用2.1 求解递推方程 例12.2 求解递推方程 例22.3 求解递推方程 例33. 总…

迪普交换机清空配置_交换机环路详解

“ The more you know the more you know you dont know”背景近期在交换机配置中发生了一次接线错误导致交换机环路,从而引发广播风暴的一个例子。所以特意花时间了解一下交换机产生广播风暴的原理,并整理了此篇文章,一来可以梳理自己的知识…

前端学习(342):进制只能介于2-36之间Uncaught RangeError: toString() radix argumen

The error is: Uncaught RangeError: toString() radix argument must be between 2 and 36 Just trying to format the date 只能介于2-36之间

1400协议是什么和28181区别_1400张拆解案例,够你PPT拆解学习好几遍了!

本文作者:执生若梦简介:「拆P教室」小伙伴、个人公众号「君梦幻灯」指导:优卡优卡大大前段时间开启了一个新栏目,图解计划。拆解一张图片,向其中学习PPT制作技巧。我一直在收集音乐banner图,现在已经达到了…

【算法设计与分析】13 分治策略的设计思想

算法中很多方法都是可以采用分治策略进行设计与优化,那么什么是分治策略?如何使用分治策略进行算法的设计与分析? 文章目录1. 分治策略的基本思想1.1 二分检索的设计思想1.2 二分归并排序的设计思想1.3 Hanoi塔的递归算法2 小结1. 分治策略的…

字段 新增hive_Hive分区表 | 每日五分钟学大数据

数据分区的一般概念存在已久。其可以有多种形式,但是通常使用分区来水平分散压力,将数据从物理上转移到和使用最频繁的用户更近的地方,以及实现其他目的。Hive中有分区表的概念。我们可以看到分区表具有重要的性能优势,而且分区表…

【算法设计与分析】14 分治算法的一般描述和分析方法

本文主要描述分治算法的一般描述和分析方法。衔接上一篇文章:【算法设计与分析】13 分治策略的设计思想 文章目录1 分治算法的一般性描述1.1 分支算法的时间分析1.2 两类常见的递推方程与求解方法2 总结1 分治算法的一般性描述 设分治算法为:Divide-and…

呼呗电销机器人_为什么企业销售电销都用电销外呼智能机器人

电销行业“痛点”明显,成为企业发展桎梏在电销企业中,运营成本占据了很大的资金比例,呼叫中心搭建和后期维护、销售人员的薪酬、培训、学习成本等都需要大量的投入,导致企业发展后劲不足。挂断、拒接常有,谁来拯救电销…

知识管理系统Data Solution研发日记之十二 网页数据抓取Fetch,呈现Render,导出Export...

这篇文章是对第四篇文章《知识管理系统Data Solution研发日记之四 片段式数据解决方案》的补充,提供一套完整的解决方案。请先阅读那一篇文章来了解它的原理。 Rule Editor抓取数据 这里,主要的工作是设定目标地址,正则表达式规则。我生活在深…

【算法设计与分析】15 分治策略:芯片测试

上一篇文章学习了【算法设计与分析】14 分治算法的一般描述和分析方法 文章目录1. 芯片测试1.1 一次测试的过程1.2 如何测试一块芯片的好坏1.3 蛮力算法1.4 分治算法设计思想1.41 分治算法的正确性证明1.42 时间复杂度分析2. 总结本篇文章借助具体的例子来学习分治策略。这个例…