广告主产品推词中的NLP

加词,加产品,调价是广告主的核心问题,为了解决广告主加词的问题在阿里巴巴以及速卖通的账户后台提供了加词利器——先知,一键解决广告主烦恼,从此不再为加词而忧愁。

一 引言

在目前付费搜索引擎中,买词和竞价成为广告主竞争流量的主要手段。因此在付费搜索引擎的广告主账户后台中,所有的功能都是围绕三个点在展开,第一:推广产品(product),第二:购买关键词(keyword),第三:关键词出价(bidprice)。在广告主加入新的产品时,第一诉求就是购买关键词。在目前国际B类电商平台上,广告主如何在网站千万级的关键词中选择适合该产品的关键词对于用户来说是一个艰难的任务。并且考虑到网站整体的检索质量,网站展示的广告必须和用户的搜索意图相符,所以在广告主购买关键词时必须要求购买的关键词和产品能够绑定,所谓绑定就是keyword和product的相关性分(mlrscore)必须保证在良及以上。千万级的keyword集合,挑选适合购买的关键词少之又少。如何给用户提供高效选词的渠道成为广告后台账户的重点。

在阿里巴巴国际站投放广告开始,广告后台就有了产品推词模块——先知。先知主要提供根据产品给用户推荐适合购买的关键词。在广告主进入后台进行买词时先知都会实时计算出广告主可以购买的关键词集合,为广告主提供高效的买词解决方案。

二 模块及算法设计

产品推词包含四个模块:

  1. QueryProcess模块,完成title中心短语的抽取。
  2. query特征抽取模块,为离线模块,抽取完特征后导入引擎,由引擎建立倒排索引。
  3. 检索引擎模块,完成匹配query的召回。
  4. mlrscore计算模块,完成offer和query的文本相关性计算。
模块间的调用关系如下图所示:

2.1 中心短语抽取

2.1.1 中心短语构造

TermWeight作为底层基础模块,完成query以及产品title中的term权重分析。TermWeight使用同session的点击query作为训练数据,使用GBDT模型进行训练,构建成query以及title的term权重分析的算法模块。

通过TermWeight分析后,term权重越高表明该term在title中的价值越大,因此通过分析后的weight排序,取top n的term作为title的核心短语。

在QP模块中,TermWeight分析后的term,取top50%的term为有用的term记为Tu,有用term的top50%为重要的term记为Ti如果term长度小于6,则所有的query都作为有用的term。如果term的长度大于16,最多取8个term为有用term。

使用重要term集合Ti和有用Term Tu进行两两组合,再组合时考虑term在title中的位置信息。考虑组合的位置信息,共有4种位置,分别如下:

  1. w1 w2型

表示在title中w1是出现在w2前面,所以组合的中心短语只有w1 w2一种。

  1. w2 w1型

表示在title中w2出现在w1前面,组合成w2 w1的中心短语。

  1. w1 w2 w1型

表示在title中w1即在w2前面出现,也在后面出现,所以组合的中心短语有两种,分别为:w1 w2和w2 w1。

  1. w2 w1 w2型

表示在title中w1前后都出现了w2。可以组合成w2 w1和w1 w2两种query。

根据上述四种组合并去重,得到title的初步组合中心短语。中心短语的权重使用组合的两个term中权重较高者表示。

2.1.2 中心短语语言模型处理

根据3.1.1中的方式初步构造出了title的中心短语,组合出的中心短语很多并不符合语法规范。在3.1.1中组合的只有bigram,所以使用bigram语法对组合的中心短语进行过滤。

bigram语法的线下训练方式如下:

bigram训练数据由网站所有offer的title和搜索query组成。bigram的权重使用在文本中出现的频率来表示是否符合语法,如果两个单词经常一起出现,则对应的频率也会比较高。

统计bigram的方法如下:

  1. 对每条文本进行归一化,然后进行切分。得到有序的word.
  2. 按照有序的方式分别统计bigram出现的次数以及每个单词出现的次数。
  3. 计算bigram的频率。P(xi,xj)=C(xi,xj)/C(xi)。C(xi,xj)是xi xj出现的次数,C(xi)是xi出现的次数。为了减小索引的大小在计算频率是过滤C(xi)<100的term。

3.1.1中得到的bigram经过语言模型处理,得到bigram的频率。结合bigram在termweight中的权重,得到bigram总的权重。总权重计算方式如下:

finalweight=0.4*(bi_weight/max_bi_weight)+0.6*(t_weight/max_t_weight)

其中bi_weight为当前bigram的语言模型频率,max_bi_weight为title的所有bigram中语言模型频率的最大值。t_weight为bigram的termweight权重,max_t_weight为title的所有bigram中termweight的最高权重。最后的结果再按照线性组合。

在上述语言模型中,对于未登录词在训练bigram时并没有进行平滑,所以在处理是如果是未登录词,则返回MIN_WEIGHT=0.000001的极小值。

2.2 线下Query特征抽取

为了满足产品推词的精准以及买词的合理性,需要对offer能够推荐的词进行筛选,所以需要对Query进行特征分析,检索时根据query的特征计算排序分。

Query特征抽取模块为线下模块,设计的特征主要为Query的预测类目,Query的中心词,Query的长度等。

2.3 检索引擎

QP获得的中心短语进行检索,使用query的特征和中心短语的特征计算整体检索的排序分,然后最终取top的检索结果作为offer推词的初步结果,然后在调用rs计算QSScore,根据QS分最为最终的推词结果。

 

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

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

相关文章

Android 动态设置 layout_centerInParent

RelativeLayout.LayoutParams rp new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);rp.addRule(RelativeLayout.CENTER_IN_PARENT);记录一下转载于:https://www.cnblogs.com/IWings/p/6097134.html

tidevice.exceptions.MuxServiceError: Could not start service: com.apple.testmanagerd.lockdown.secure

错误是在进行利用pycharm IDE和airtest框架进行苹果手机自动化测试遇到的 错误具体如下 [I 210715 10:32:34 _device:572] ProductVersion: 14.6 [I 210715 10:32:34 _device:551] Download https://tool.appetizer.io/iGhibli/iOS-DeviceSupport/raw/master/DeviceSupport/14…

机器人 工具坐标系的标定

概念 工具坐标系是把机器人腕部法兰盘所握工具的有效方向定为Z轴&#xff0c;把坐标定义在工具尖端点&#xff0c;所以工具坐标的方向随腕部的移动而发生变化。 工具坐标的移动&#xff0c;以工具的有效方向为基准&#xff0c;与机器人的位置、姿势无关&#xff0c;所以进行相…

Linux内核分析— —计算机是如何工作的(20135213林涵锦)

实验部分 &#xff08;以下命令为实验楼64位Linux虚拟机环境下适用&#xff0c;32位Linux环境可能会稍有不同&#xff09; 使用 gcc –S –o main.s main.c -m32命令编译成汇编代码&#xff0c; int g(int x){ return x 6;} int f(int x){ return g(x);} int main(void){ r…

apache域名跳转

①编辑虚拟主机配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf如下<VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName 111.comServerAlias www.example.com 2111.com.cnErrorLog "logs/111.com-error_log"CustomLog …

php 画图片2

<?php// 使用php操作gd库做图// 1. 创建一个画布资源$im imagecreatetruecolor(200, 50);// 2. 创建背景色// 2.1 得到背景颜色$bg_color imagecolorallocate($im, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));// 2.2 填充画布imagefill($im, 0, 0, $bg_c…

ABB机器人ROBOTSTUDIO中轨迹与二次开发的问答

问&#xff1a; 在视频学习里&#xff0c;robotstudio可以提取物体的某条轮廓来直接生成路径。请问&#xff0c;1.如果要提取的是模型两边的中心线&#xff0c;也能直接生成路径吗&#xff1f;2.robotstudio有二次开发的功能吗&#xff0c;比如对数据进行运算。我也不知道我说的…

【Python数据结构】——二叉平衡树AVL(查找、构建、删除、插入、打印、遍历)

#!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/7/28 20:57 # Author : linlianqin # Site : # File : 二叉平衡树专题&#xff08;创建、插入、查找&#xff09;.py # Software: PyCharm # description:二叉平衡树的特点&#xff1a;在二叉查找树的…

随笔速记

LVM增加与缩小Swap分区操作 http://blog.sina.com.cn/s/blog_5f2ca1ed0101ebw8.html Ubuntu删除多余内核 # dpkg --get-selections | grep linux # apt-get purge linux-headers-3.0.0-12 linux-image-3.0.0-12-generic # update-grub Ubuntu清理安装包、已卸载软件、已卸载软件…

【测试开发】测试用例讲解

文章目录 目录 文章目录 前言 一、测试用例的基本要素 二、测试用例的设计方法 1.基于需求的设计方法 对日历根据web界面的功能布局分析出的功能框图如下&#xff1a; 继续举一个例子百度云盘非功能测试的案例&#xff1a; 2.等价类 3.边界值 5.正交表 6.场景设计法 7…

Linux下进行Web服务器压力(并发)测试工具http_load、webbench、ab、Siege、autobench简单使用教程(转)...

一、http_load 程序非常小&#xff0c;解压后也不到100K http_load以并行复用的方式运行&#xff0c;用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工 具&#xff0c;它可以以一个单一的进程运行&#xff0c;一般不会把客户机搞死。还可以测试HTTPS类的网站请求…

【Python数据结构】——并查集的实现(查找、合并、集合、实例)

#!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/7/30 23:12 # Author : linlianqin # Site : # File : 并查集专题&#xff08;合并、查找、集合&#xff09;.py # Software: PyCharm # description: 并查集其实就是多个数组&#xff0c;每一个数组都…

如何实现ABB机器人与老式焊机的连接控制

问题&#xff1a; 请教一个机器人与老式焊机如何连接&#xff0c;如何设置。 我现在是用SET指令设DO为1再外接继电器来控制焊机工作的&#xff0c;用RESET指令来使焊机停止工作的。现在可 以焊接&#xff0c;但是如果中间停止或机器人报错停止不动&#xff0c;焊机始终处于工作…

gitlab 杂记

GitLab 编译部署 1&#xff0c;请尽量不要在国内主机上部署&#xff0c;中途天朝很有可能导致gem执行出现问题&#xff0c;以下在AWS上部署&#xff1b; 2&#xff0c;系统中必须要有swap分区&#xff0c;不然会出现500错误&#xff1b; 系统版本&#xff1a;CentOS 6.x x86_6…

Hadoop分布式系统的安装部署

1、关于虚拟机的复制 新建一台虚拟机&#xff0c;系统为CentOS7&#xff0c;再克隆两台&#xff0c;组成一个三台机器的小集群。正常情况下一般需要五台机器&#xff08;一个Name节点&#xff0c;一个SecondName节点&#xff0c;三个Data节点。&#xff09; 此外&#xff0c;为…

Windows线程调度学习(一)

前言 Windows 线程调度器的实现分散在内核各处&#xff0c;并且与许多组件都有关联&#xff0c;很难进行系统地学习&#xff0c;所以我打算写几篇文章来记录下自己学习过程中的思考和分析&#xff0c;同时也方便日后查阅&#xff0c;此文可以看作是《Windows内核原理与实现》中…

机器人的有效负荷

问题&#xff1a; 假如我想在程序里做多几个有效载荷,但在手动操纵画面上只能加一个,其它要怎样用?给个实际例子给我啊. 回答&#xff1a; 在搬运中&#xff0c;确实是有载荷发生变化的情况&#xff0c;如两抓(A B)的夹具&#xff0c;有三种载荷情况&#xff0c;1、A抓有载荷…

【Python生成readme文件】——Markdown语法

链接&#xff1a;https://www.cnblogs.com/wj-1314/p/8547763.html

编程之美2.13子数组的最大乘积

题目&#xff1a; 给定一个长度为N的数组&#xff0c;只许用乘法&#xff0c;不许用除法&#xff0c;计算任意&#xff08;N-1&#xff09;个数的组合中乘积最大的一个组&#xff0c;并写出算法的时间复杂度。 如果把所可能的乘积找出来&#xff0c;共有&#xff08;N-1&#x…

[SceneKit专题]11-Reference-Nodes引用节点

说明 本系列文章是对<3D Apple Games by Tutorials>一书的学习记录和体会 此书对应的代码地址 SceneKit系列文章目录 本文将完成一个完整的node节点,带有完整贴图,并将其导入其他场景中,成为其中的一个引用节点.这样可以更方便的组织场景,并能复用场景中的节点,正类似于面…