作者简介

携程AI内容化团队,负责携程内容产品的NLP,NLG支持,产品包括热点自动投放平台,点评分析服务,产品特色标签和推荐理由抽取,命名实体识别与链接,机器翻译等。

前言

从2017年开始,携程用户搜索时使用的关键词发生了一些有趣的变化:虽然传统的热门目的地词如“上海、北京”依然占比很高,但是大量长尾词如冷门景点、新兴景点也开始在搜索热词榜上占据一席之地。

对此团队进行了相应的数据分析,发现这些长尾词的急剧上升与一些外部热点如微博热搜,抖音网红,小红书热门文章等呈现正相关关系。对这个问题深入研究后发现,随着互联网用户的年轻化,网民们探索问题的热情明显变高,认知闭合(cognitive closure)度高的用户数量开始快速上升,他们在外部媒体获取到了目的地的热点和信息后,有意愿来专业旅游网站获取更多的目的地资讯,减少不确定性。因此大量用户会搜索长尾词。

这种趋势的存在使得热点内容运营的重要性大大提升。为此,携程计划建立起一套能半自动地探知热点,检索相关站内内容产品并实时自动投放的系统。

整套系统分为四个部分:第一部分资讯分析,目标是挖掘时令的旅游热点;第二部分为检索模型,基于第一部分输入的变量(主题、poiid、关键词等)打捞相关度足够高的文章建立召回池;第三部分通过点击率预估,在召回池中选择最合适投放的产品;最后,利用NLG和图文匹配技术对文章的标题和展示图片进行优化,生成卡片,提高用户感知和点击率。之后的章节我们将逐一介绍各部分的具体架构和算法。

一、资讯分析,找到适合推荐的主题topic

当前各大门户、资讯平台、电商app、内容app都在显著位置或者板块展示热门内容或者商品,用以抓住眼球,吸引用户注意。快速获取大众在搜什么、在看什么,在关注什么话题是众多内容平台需要挖掘的点。信息流应用能否快速发现热点、引流用户阅读热点,是影响用户体验的重要因素。内容平台能否引导用户放大扩散优质热点、改写热点,是扩大内容营销、扩展内容生态的关键。本节简单介绍OTA平台旅游热点挖掘相关工作。

1.1 热点探知

a.OTA平台旅游热点资讯来源多样,数据时效性也不同步,使用数据适配层构建多源异步数据处理对象,解决不同时间段不同接入源的标准化输出问题。

b.构建主题知识库,使用特定的关键词作为触发词将每天的每个新闻来源分类到不同的主题下,得到每个主题下的主题簇,以主题簇大小衡量主题热度。统计近半月内主题热度的梯度变化用以衡量主题热度攀升指数。

c.利用语言检索模型提取新闻标题的语义特征,使用语义特征和莱文斯坦比结合评价标题与标题的语义相似度;以标题作为节点,标题与标题间的语义相似度为节点间的权重构建无向连接图;使用Infomap社区发现算法获取主题簇下的群组,达到话题聚类的效果。(Infomap 的双层编码方式把群组识别同信息编码联系到了一起。一个好的群组划分,可以带来更短的编码。所以,如果能量化编码长度,找到使得长度最短的群组划分,那就找到了一个好的群组划分。)

d.以话题簇大小衡量话题热度,结合主题热度,主题热度攀升,话题热度,新闻本身点击热度等综合因素,得到话题的综合热门排序,取话题中表述完整优美的标题作为话题标题展示。

图1 话题簇聚类分析:构建图节点权重

图2 最终效果:花博会主题下的两个话题及话题热度

1.2 旅游相关分析

即分析热点与旅游是否有相关性,如何实施,实际效果如何。

是否旅游相关主观性较强,新闻来源差异较大,标题简练,可用信息量少等因素是旅游信息过滤的难点,构建靠谱的旅游信息分类模型是旅游热点获取的关键因素之一。通过细化主题类型,将信息来源细分为娱乐/汽车/体育/游戏/旅游/文化/其他等多个类别,使用开源语言模型搭建多分类下游任务,预测多个类别,如果类别中包含旅游标签且大于一定阈值,则认为该新闻为旅游相关。

建立完善的快速迭代模型训练流程:

a. 人工标注部分。以标签的数据作为训练语料,训练初始模型,预测线上数据,之后通过人工查验badcase,打上确定标签。

b. 使用文本检索模型提取海量新闻、文章数据的语义特征作为检索库,提取有标签badcase的语义特征作为query feature,计算query feature 与检索库中的每一个特征的相似度,并设置相似度阈值,取相似度高的检索标题,自动打上badcase标注过的标签作为伪标签与原始有确定标签的训练集混合,重新训练模型。

伪标签构建模型的损失函数如下:

其中n为batchsize,C为类别数,损失函数的第一项是有标签数据的损失,第二项是无标签数据的损失。在无标签数据的损失中,y' 为无标签数据预测得到的伪标签,即直接取模型对无标签数据的预测的最大值作为标签。其中 α(t) 决定着无标签数据的损失在模型更新上的作用,选择合适的 α(t) 很重要,太大性能退化,太小提升有限。

二、挖掘与topic相关的文章

检索模型

根据给定的热点文本,检索模型用于在携程用户和创作者发布的文章(即携程旅拍社区)中打捞内容相关的结果。该场景下内容相关的具体定义包括:热点中出现的景点、城市、酒店,与打捞结果的景点、城市、酒店的一致性;热点主题、关键词等内容与打捞结果的相关性。

考虑到本场景下有监督数据较少,本系统基于预训练模型和自定义任务层进行了检索模型的构建。同时考虑到打捞目标为携程旅拍产品池表,以及旅拍文章标题与内容的天然一致性,本系统利用旅拍文章进行了检索模型训练集的构造,并以强化POI重要性、主题重要性、主题集中度、POI与主题关联性为目标,结合NER、BM25、词法分析、无监督匹配等工具对训练集进行清洗与增强。具体构造方式如下所述。

在正样本的构造上,旅拍文章标题与正文具备天然的内容一致性,因此可以作为检索模型的正样本,同时为了避免可能出现的文不对题的情况,本模块也会利用NER、BM25及无监督匹配对伪造数据进行清洗:首先利用NER判断标题与正文中出现的POI是否一致,其次在对标题中POI做mask之后,计算标题与文本的BM25分数与语义得分,用以保证标题与正文主题、内容上的一致性。

在负样本的构造上,常见的文本匹配方式在负样本构造时,大多是从其他非匹配文本对中随机采样构成一对负样本,这种负样本构造方式易于实现,但存在很大的弊端:随机采样得到的负样本往往和query区别较大,学习难度小、非常易于分辨,然而在实际场景中,模型往往需要从粗筛后的、一系列复杂、相似的候选中选取相似的样本,因此和训练时模型所面对的匹配压力、难度完全不匹配,导致模型在封闭测试集中与实际场景中的性能偏差较大。

本模块在进行样本构造时,通过数据增强对负样本难度进行了强化,以提高模型对负样本的辨识能力。首先随机选择一对正样本,通过NER技术将标题中出现的POI替换为正文中未出现过的POI实体,利用以此得到的负样本强化模型对POI不匹配情况的分辩能力;其次选取标题中出现相同POI的2个正样本对,互换二者内容后得到两对负样本,以此强化模型对主题的辨识能力;之后随机选取标题中出现相同POI的2个正样本对,将内容中与标题最相关的一句话互相插入到彼此的内容中,用以强化对主题占比、集中度的分辨能力。通过以上的负样本构造方式,能够极大提高模型对于噪音样本的辨识能力,提高模型在实际场景下的检索效果。

本系统基于伪造的266万条训练样本对检索模型进行了训练,并在测试集上达到了约87.31%的F1分数。

三、点击率预估

 

3.1 背景

对于一个旅拍产品,其具有的特定内容以及文本表达方式将直接影响在线上的曝光点击率,因此在将旅拍投放到线上的时候,需要对旅拍的内容进行筛选,过滤掉倾向于获得低曝光点击率的产品并选出易获得高曝光点击率的产品。对此,我们使用NLP技术对旅拍的曝光点击率从文本内容角度进行建模。

3.2 方法

基于内容的曝光点击率预估的具体流程如下图所示,

首先分析特定词语在各个月份对旅拍曝光点击率是起正向作用还是负向作用,并构建关键词卡方词典。这一步我们主要使用改进版的卡方检验来进行分析,卡方检验就是统计样本的实际观测值和理论推断值之间的偏离程度来衡量变量之间的相关程度,实际观测值和理论推断值之间的偏离程度决定了卡方值的大小,卡方值越大,二者偏差程度越大。

正常的卡方计算因只需要考虑偏离程度,在对观测值和期望值算差值后会进行平方操作,而在我们的场景下,需要探究特定词语对曝光点击率是起正向作用还是负向作用,因此在最终计算的时候我们去掉了平方操作。

具体地,对于每一个旅拍产品,计算其在12个月份里面的曝光点击率,并根据线上统计阈值将其划分为高曝光点击率和低曝光点击率两类产品。因旅拍在12个月份的每个月份里都会获得高点击率或低点击率,故我们定义24个档位,将每篇旅拍标题切词后统计每个关键词在24个档位下的频次并按照上述改进后的卡方算法计算每个关键词在每个档位下的卡方,卡方值为正数且越大,表明该关键词在该月份对旅拍的曝光点击率起到较大的正向作用,卡方值为负数且越小,表明该关键词在该月份对旅拍的曝光点击率起到较大的负向作用。

根据关键词卡方词典训练轻量级端到端点击率预估模型。对于每一条旅拍的文本样本,对文本进行切词,然后根据词和月份在词典里查询其对应的高档位点击率和低档位点击率进行特征构建,主要特征包括:文本包含关键词高档位卡方和与低档位卡方和,高低档位卡方差的和,命中词的个数,切词后的总词数以及在卡方词典中命中词的数量和总词数的占比。以此构建特征集训练多层感知机即得到基于文本内容的曝光点击率预估模型。

四、标题生成及图文匹配

当文章打捞工作全部完成,投放目标已经确定,对文章做适当的美化包装能很好的提升用户感知,提高相关产品的点击率。热点系统提供了标题自动生成及头图自动适配两种功能支持文章包装。

4.1 标题自动生成模型

热门内容挖掘出来,除了可用于旅游热门类似话题推送,还可以用于热门路线推荐,挖掘出来的热点、热门话题多为新闻式表达,往往精炼短小,信息凝练,述事性强,缺乏内容营销所需的情感带入,如诗意性、煽动性、震撼性等吸睛式的表达。这类标题作为热点路线标题推送给用户往往起不到提升用户点击意愿效果。当文章打捞工作全部完成,投放目标已经确定,对文章做适当的美化包装能很好的提升用户感知,提高相关产品的点击率。热点系统提供了标题自动生成及头图自动适配两种功能支持文章包装。

根据携程社区携程官方号“旅小拍”发布的旅拍视频《内容发布指南:标题取的好,点击少不了》中所述技巧:

a. 突出亮点

b. 疑问和感叹句

c. 活用数字

d. 善用标签等

人工改造部分新闻标题作为部分训练集:

news

title

河北沧县千亩桃花盛放

@河北人,河北沧县千亩桃花盛放

朱鹮飞过油菜花海

美得像画!朱鹮飞过油菜花海

阳春三月,连州桃花开

春风春雨春潮涌 连州山水桃花红

墨西哥城,满城开遍蓝花楹

相约墨西哥城,一起沉醉在蓝花楹的梦幻世界!

黄河古村梨花开

绝美!黄河古村梨花开,错过等一年!

清洗、改造旅拍、游记等其他来源的数据,以正文作为输入,原有改造后的标题作为输出,利用transformer结构训练文本生成模型。Encoder模块,用于编码输入文本,Decoder部分结合Encoder的输入状态,Context向量,以及Decoder的历史输入,预测当前输出对应于词典的概率分布。使用beam search获得生成的标题。

输入文本生成文章标题,是标准的seq2seq任务。使用transformer结构,利用超大规模预训练模型的先验知识作为base 模型,能够充分理解文本用词表达,文风格式,结合旅游垂域中特定的主题,关键实体,特有性表达等特殊信息元,融合垂域知识特征构建垂域知识库的策略能够带来更多收益。

值得注意的是,近年来,90后、00后逐步成旅游行业主力消费群体,携程平台数据显示,“90后”在今年“五一”出游人群中占比达37%,成为绝对出游主力;“80后”位列第二,占比达27%。值得一提的是,在携程平台上,“00后”在这个“五一”黄金周中表现亮眼,占比达21%,旅游消费直追“80后”。为迎合新生代能用表情不用文字的表达习惯,我们希望生成路线标题能体现年轻活泼的特点,以一种特殊的语言方式与新生代沟通对话,建立连接。因此,我们构建文本emoji转换词典,以一定概率随机替换训练样本集标题中的文本,如将樱花替换为樱花????,将拍照替换为????等,希望最终训练模型输出的标题体现严肃活泼,大方得体又不失准确的特点。

图3 行程频道上线热点路线

4.2 图文匹配

图文匹配模块用于在给定文本时,从候选图片中挑出与文本描述一致的图片。本模块由BERT、RESNET两个预训练模型构成,训练数据包括图文匹配公开数据集与领域内数据集。由于图文匹配公开数据集基本为英文-图片数据,因此本系统通过携程自研机器翻译接口,对英文文本数据进行了翻译、质量评估与过滤。

在进行模型构建时,首先基于大量主题数据分别对BERT、RESNET进行文本分类微调与图文分类微调,保证BERT具备不同主题及细节的文本的区分性,使两个预训练模型具备特征空间对齐的基本前提。之后取两个预训练模型最后一层输出的特征向量,并分别通过线性变换矩阵投影到相同的特征空间,利用对比学习的思想最大化相似图文之间的距离、最小化不匹配的图文之间的距离。

具体的,本系统在计算图文匹配loss时使用了infoNCE的目标函数,每个batch在mask可能匹配其他图文pair的情况下,同时计算以图检文和以文检图的loss,以最大化正负样例之间的距离。目前使用改进后的CLIP算法可达到准确率86.9%。

五、总结

该套系统已经在携程稳定运作相当长时间,经过不断的优化迭代,相关产品的点击率提升了50%以上,并在首页及社区频道持续输出优质热点内容,提高了用户的回访率和访问时长。

【推荐阅读】

  • NLP在携程机票人工客服会话分类中的应用

  • 10分钟给上万客服排好班,携程大规模客服排班算法实践

  • 携程酒店推荐模型优化

  • “深耕内容”背景下,携程如何做景酒优质内容的挖掘

 “携程技术”公众号

  分享,交流,成长

干货 | 挖掘旅游热点吸引年轻人,携程自动热点投放系统的背后玩法相关推荐

  1. 国内旅游业务全面复苏 携程后疫情时代如何深耕旅游市场?

    [TechWeb]10月28日是携程21周岁生日.21岁的携程,今年却遭遇了成长以来最大的困难--受疫情影响,全球旅游业遭遇重创. 然而,凭借携程全球45000名员工的努力,在国内疫情基本得到控制的环 ...

  2. 干货 | 深度学习是如何帮助携程机票客服提高对话效率的

    作者简介 李元上,携程机票研发部高级数据分析师,擅长结合业务经验设计模型方案.目前负责携程值机选座算法设计.机票客服会话机器人的模型开发工作,关注新技术在项目中的应用价值. 一.背景介绍 作为一家&q ...

  3. 干货 | “深耕内容”背景下,携程如何做景酒优质内容的挖掘

    作者简介 莱灵图髯客,携程高级算法工程师,主要负责自然语言处理领域相关工作,对半监督学习.自然语言生成.实体识别.文本分类及检索等领域有浓厚兴趣. 一.背景介绍 伴随信息时代的快速发展,消费者的消费观 ...

  4. 干货 | 数据治理落地难?携程度假数据治理需求设计实践

    作者简介 Leon Gu,携程数据仓库专家,负责度假数据中台和数据仓库等工作,专注于大数据.数据仓库.数据治理等领域. 一.前言 携程度假包含跟团游.自由行.玩乐.门票.用车等十多条业务线,业务涵盖线 ...

  5. 干货 | 携程度假智能客服机器人背后是这么玩的

    作者简介 雷蕾,携程度假研发部资深算法工程师,负责智能客服算法工作. 鞠剑勋,携程度假研发部算法经理,负责智能客服.知识图谱.NLP算法等工作. 随着人工智能的发展,人机交互技术愈发成熟,应用场景也越 ...

  6. 干货 | 每天上百万通话,携程电话系统性能测试实践

    作者简介 Mario ,携程资深测试工程师,负责携程呼叫中心测试. 一.背景 作为全球领先的在线旅游企业,携程注重服务质量,并拥有全球最大的旅游呼叫中心,分别部署在国内自建系统.国内和国外第三方云服务 ...

  7. 干货 | 快速融入云原生,携程开源 Dubbo for Go 版本

    作者简介 何鑫铭,携程基础中台研发部技术专家,dubbo-go 主要作者.目前专注于 Golang & Java.中台架构.中间件与区块链等技术. *本文来自开源中国对何鑫铭的采访,首发于开源 ...

  8. 干货 | 如何构建系统优化成本,携程出海云原生实践

    作者简介 马孟起,携程后端开发专家,对操作系统和网络技术有浓厚兴趣. 一.背景 随着携程国际化战略的开展,为了给海外用户提供更好的服务,携程国际机票有很大一部分数据来源于世界各地的海外供应商和平台,在 ...

  9. 干货 | 从47%到80%,携程酒店APP流畅度提升实践

    作者简介 Jin,携程高级研发经理,专注移动技术开发:Dan,携程测试开发经理,关注数据挖掘以及数据在系统质量提升中的应用:Lanbo,携程软件技术专家,专注移动技术开发. 一.背景 APP性能提升一 ...

  10. 干货 | 五大实例详解,携程 Redis 跨机房双向同步实践

    作者简介 Nick,携程软件技术专家,关注分布式数据存储以及操作系统内核. 前言 在<携程 Redis 跨 IDC 多向同步实践>一文曾和大家分享过携程在 Redis 双向同步方面的心得, ...

最新文章

  1. 109. Convert Sorted List to Binary Search Tree
  2. ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式)
  3. 读《分布式一致性原理》JAVA客户端API操作3
  4. Go的结构体对接受者函数的传递
  5. 自旋锁、互斥锁和信号量
  6. event.target【转载】
  7. GNU make manual 翻译(四十三)
  8. 线程 协程 python_在Python 的线程中运行协程的方法
  9. delay在java中有什么用_java中DelayQueue的使用
  10. “405 – 不允许用于访问此页的 HTTP 谓词。”的解决方案
  11. SpringBoot启动错误 If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
  12. python爬虫篇:为了追个漫画我居然用上爬虫,别人说我不讲武德
  13. 几种常用的视频接口(端子)
  14. 金蝶k3cloud安装时,k3cloudmanager没有,该如何处理
  15. “扣哒杯” AI世青赛全国决赛落幕 集体奖和一等奖附加赛名单揭晓
  16. Java生成word表单|勾选框
  17. SpringBoot 启动类 @SpringBootApplication 注解 以及执行流程
  18. 【建模算法】基于遗传算法求解TSP问题(matlab求解)
  19. 两位数的加减乘除计算器
  20. 令人感动的电影---虎兄虎弟

热门文章

  1. nod32 lic 99用户授权文件可以用到2015年4月的许可证下载
  2. Flash游戏开发技术分析(下)
  3. 嵌入式linux指纹识别项目,基于嵌入式应用平台的指纹识别系统设计
  4. 2022年智慧城市行业概括及现状
  5. 《国家网络空间安全战略》发布
  6. CodeMeter:软件加密的“木桶定律”
  7. 十大自动化软件测试工具
  8. java自己写一个消息队列_Java语言快速实现简单MQ消息队列服务
  9. 19.敏捷项目管理流程实例 - 变更管理
  10. Spark入门到精通