查看原文
其他

淘宝Push智能文案生成

方砚 大淘宝技术 2022-07-13

本文主要介绍了2021年笔者在智能文案生成项目所做的工作。



业务背景


Push是淘宝重要促活手段之一,运营同学通过投放各类营销、产品Push以达到唤端、促活目的。Push素材通常由人群、商品或者活动、文案构成,与用户有直接沟通的便是Push文案,优质的素材文案吸引用户点击起到正向促活作用,而劣质内容不仅可能影响用户体验,更甚者可能引发用户关闭通道。淘宝Push团队构建了统一投递平台方便各个业务方创建任务投放Push,为业务引流。通常业务同学在创建投放任务前进行Push文案创作,任务上线稳定投放后基本处于维护状态极少进行文案更新。Push业务整体文案多样性低,现有素材库内容同质且单一,基本基于电商视角出发,缺少创新和个性化突破;文案人工创作成本高,当前基本由平台与业务手动创建,依据个人文案创作能力进行输出,缺少丰富文案参考与创意输入;Push平台缺乏对文案的统一沉淀和推荐。历史优秀文案无法及时反馈到文案创建环节,缺乏算法智能化的文案创意。


基于以上问题,业务同学联合淘宝Push算法提出了智能文案生成项目,期望通过文案智能化生产和文案推荐,赋能文案创作、管理、实验、优化各个环节,提升文案丰富程度和更新频率,辅助提升 Push 点击率。


问题定义&思考


素材是Push的基本单元。当一条新素材产生时,用户被新奇的文案吸引点击,素材点击率也随之提升。而随着素材上线时间推移,用户对素材文案疲劳,文案长期得不到更新则素材效果越来越差。而业务方在填写 Push 文案时,也不知道当前场景下什么样的文案是更优的、其预计或历史点击效果如何,不敢贸然更新。如此恶性循环,对整个Push发展非常不利。


现阶段,NLP技术已经有了长足发展, 尤其是Bert、Unilm等等大规模预训练模型的出现,使得从技术层面自动生成高质量内容成为可能。另外,Push平台本身也积累了大量文案数据,可以用于训练文案生成模型,也可以提供给用户作为参考。基于此,我们设计出Push智能文案生成模块,帮助解决以上问题。


智能文案生成V1.0-智能生成模块


  整体架构


一期智能文案生成模块由算法通过TPP服务在线上提供统一交互接口,用户选择合适业务场景的文案生成方式(话术模板生成or关键字生成)并输入关键词,TPP服务根据用户选择调用相应的二方服务生成内容并返回结果。其中,话术模板生成由模板精准匹配、生成文案质量高。关键字生成通过海量数据训练模型、生成内容丰富度高。



内容生成模块: 用户输入关键词如: 活动、场景、利益点等等, 就可以生成大量文案。辅助运营进行文案创作,提升文案多样性,同时也降低了创作成本。

文案检索模块: 将Push平台历史积累的文案处理后开放给用户。用户通过关键词检索,找到符合业务场景的素材文案,根据历史文案的点击,也能预估当前素材的点击率, 做到心中有底。



  智能文案生成算法


  • 话术模板生成模块(模板生成)


模板生成主要依赖人工处理数据、构建模板,成本较高。由于上线时间紧凑和资源限制等问题,我们采用NLP工具挖掘模板的方式构造初版模板。这种处理方式的主要动机是运营创作文案时,通常包含一些基本属性,比如时间季节、人群、地点、活动、利益点等等,如: 一大波#品类#来袭,#人群#健康饮食....可以通过内容聚合技术挖掘这类具有统一属性的话术模板。因此话术模版生成的主要处理流程总结如下:


将获取到的Push文案数据经过低质内容过滤、删除重复项、统一规格等方式进行数据清洗,然后通过AliNLP平台提供的各类自然语言处理工具识别出文案中的关键属性,利用统一占位符${风格}、${人群受众}、${材质}等等内容填充,设定阈值过滤阈值对内容进行数据聚合,最终生成模板。


  • 关键字生成模块(模型生成)


模型生成部分主要分为两大类,营销类Push文案以及商品个性化Push文案。由于计算资源有限,利用预训练好的模型框架,在此基础上进行fine tuning是现阶段工业界内容生成常用的做法。我们调研对比了包括Bert、Unilm、GPT等等使用范围较广的内容生产框架。简单介绍如下,Bert及其衍生的各类算法框架以Transformer为基础, 通过Masked部分内容, 学习全局信息更新参数, 该类模型更适合于文本理解相关工作。Unilm作为Bert衍生模型通过Position Embedding+单向Masked方式突破Bert内容生成质量不佳的限制。而GPT是主结构为self-Attention的单向语言模型,模型参数超过15亿、训练耗时长,其离线对比生成效果与Unilm不相上下。因此,最终我们选择了Unilm作为基础框架。同时使用Push文案样本数据作为输入对模型进行fine tuning。模型框架如下:


在Unilm框架中,前一层的输出通过参数矩阵,,线性映射到(querys),(keys),(values)元组,隐层矩阵决定当前词语对是否可以互相“关注”。最后计算出self-attention head:

tricks:
Unilm模型通常以“字”作为基本输入单元,因为“字”的数据规模小、意义丰富, 模型泛化能力更强。但是, 我们在实验中发现中文内容生成常常会遇到生成不完整的问题,如“秋冬季新款女装,宽松直筒休闲裤,显瘦,修身,不起球,不掉” 这里应该是不掉色, 我们使用了“字”作为基本单元, 模型泛化能力强了, 但是生成效果有所下降。因此,我们构建了结合“字”与“词”的模式, 使得输入embedding变短,处理速度更快, 同时在文本生成任务上, 缓解了Exposure Bias问题。词义的不确定性更低,降低建模复杂度, 提升生成质量。

  • 实验结果评估


我们在调研了多个业界内容生成工具评估指标后,结合淘宝Push智能生成业务总结了以下几个方面的评估指标:

  1. 表达相关性。主要看生成内容是否与切题,是否与用户输入标签相关。该指标可借鉴机器翻译常用评估指标BLEU进行评估。BLEU计算生产文本与关键词中共同n-gram数量计算两者相似度。

  2. 表达通顺性。生成内容是否通顺,是否与人工生成内容质量齐平。该指标主要通过人工评估文案质量,构建相应质量打分模型进行评估。

  3. 表达创新性,评估生成内容与训练样本的重合度。其中,与表达丰富度对应的主题相关 n-gram多样性实验结果如下。(M*代表不同模型,bs表示beam search的beam大小),数字越大表示内容丰富度越高。

model config
distinct 1-gram
distinct 2-gram
distinct 3-gram
M0,bs=3
72
312
474
M1,bs=1
25
43
58
M2,bs=2
38
69
103
M3,bs=3
52
91
135

  优化迭代


  • 文案生成重复问题


生成模型一般由编码器和解码器两部分构成,编码器主要用于分析输入序列抽取隐层表达,解码器用于生成输出序列。其中beam_search是常用的内容生成解码方法之一。但是,由于beam search在解码过程中不断缩小搜索域范围,虽然能够大大减少计算开销,但是也存在很多明显弊端,比如数据下溢、倾向于生产短序列、生产内容单一、容易出现重复等等。我们通过采用分组生成同时加入惩罚项的方法优化算法--Diverse Beam Search。将beam再分组,引入累积多样性保留每个时间步使用的相同单词的数量,表明总体上的差异。该方法有效缓解了生产内容重复问题。


通过引入惩罚项可以增强文本多样性,但不能完全解决生成重复问题。而SimHash是一种快速估计两组数据相似程度的技术,Google抓取工具使用该算法来查找附近重复的页面[4]。因此我们在生成结果后又加入了SimHash方法去重,该方法通过为两个文案生成向量指纹再比较两个指纹的海明距离。可以有效去除重复文本。

离线试验对比结果表明,通过实现batch beam search算法,使得生成模型可并行解码离线解码时间从3s降低0.7s,同时加入多样性惩罚项Disverse beam search和Simhash去重,最多可同时生成225+条可用文案内容。

  • 解码“迷失”


我们在解码过程中发现当一个商品输入关键词过多时,通常生产效果非常不好。如输入内容:“普通望远镜 户外 袖珍 单筒 迷你 高清”,生成的结果是“迷你袖珍单筒,高清防水,防水防紫外线,防水防雾”。造成此类问题的主要原因是输入关键属性过多,模型注意力无法集中在某些重要属性,出现解码“迷失”,生成内容异常。针对此类问题,我们的主要解决方法是:在离线构造样本时,通过将输入内容规范化为特定几个属性输入,使得模型训练时能够聚焦于其中的重要属性。线上部署时,利用NLP工具将用户输入关键词进行拆解。提升输入丰富度同时减少解码“迷失”。


通过该方式,有效提升生成结果多样性以及采纳率,采纳率由85%,提升至90%+。


  • 长尾商品训练不足


众所周知,由于“头部效应”影响往往少数几个类目能够获取大量关注与流量,而运营同学更偏向于为大众化的品类创作文案。统计发现10%的头部类目如连衣裙、T恤等有充足文案数据, 占据训练样本的80%以上。而大量长尾商品存在训练数据少或基本无可用素材。导致模型无法学习该到该商品特定内容,模型生成的文案质量差。


我们通过结合商品父类目、规范类目属性提升模型泛化能力。如加入 商品关联一级类目、商品叶子类目属性等等。进一步提升长尾商品文案生成质量。


  总结


在智能文案一期工作中,我们完成了智能文案生成项目从0至1的搭建工作,包括算法方案设计、离线模型搭建、二方服务部署、Tpp服务开发、算法优化迭代等等,整体项目顺利上线。从业务角度出发主要解决如下几个问题:


  1. 解决了Push文案生成多样性不足问题。通过模板生成和模型生成方式,提供大量优质生成文案。线上平均单个素材文案条数提升17%。辅助运营同学进行文案创作,降低人工创作成本。与用户一对一调研中反馈显示2/3用户采纳智能文案生成模块生成内容并应用于线上。

  2. 构建统一的文案管理和沉淀平台。智能文案生成模块使得历史的优秀文案及时反馈到在线文案创建环节,同时提供算法智能化的文案创意。

  3. 提升Push点击。文案生成线上AB实验结果显示,算法组相对提升10.16%


智能文案生成V2.0-淘宝Push文案层


智能文案一期主要围绕辅助用户创作这一目标进行,在整体模块设计中主要关注营销类Push文案的生成,包括模板话术生成、关键字生成。这两个模块在项目上线后都取得了不错的成果,然而在深入推广过程中也遇到了很多困难。Push素材更新本身频率较低,虽然有智能文案生成模块这一创作利器,仍然无法全面调动用户更新积极性。另一方面,用户在使用智能文案生成模块辅助内容创作时,多数时候会对文案进行修改且不会主动反馈,这使得我们的埋点追踪变得愈加困难,没有正向反馈的生成模型优化迭代非常有限。同时,我们也发现在淘宝Push中存在大量商品个性化推荐素材,其发送量约占总体发送的60%以上。由于此类个性化素材商品池庞大,通常运营同学会配置简单模板作为Push文案。为了适应所有商品,这类模板通常是欢迎语+商品标题的形式,整体投放量大但吸引力不足、点击率低。如果能为这类商品推荐素材提供个性化内容生成能力,将会对提升Push点击率有极大帮助。且自有文案投放可以精确埋点,感知用户反馈,灵活优化模型。


这些原因促使我们对智能文案生成做进一步的升级优化,由此设计出智能文案生成2.0版本-淘宝Push文案层。我们在淘宝Push算法推荐链路的召回、粗排、精排、重排最后加入文案层做多文案优选。文案层整体链路如下:


智能文案生成V2.0-淘宝Push文案层链路


淘宝Push文案层优化链路主要由数据源收集、数据处理、物料库更新、内容生成、内容排序、线上服务部署等几个模块构成,其中数据处理、内容生成等模块复用一期沉淀的能力,并将多渠道数据分别处理方式抽象为统一处理组件。下面重点介绍我们在物料库建设以及内容排序模型优化探索的一些工作。


  物料库构建


数据决定模型上限,优质丰富的文案内容是训练高质量生成模型的基石。为此,我们收集了多个渠道、不同风格的个性化商品文案。加入文案物料库中以供后续内容生成模块使用,对于适合作为Push投放文案的数据加入文案池中,作为候选文案在线上与生成文案一起排序打分。


文案渠道来源主要有人工创作和模型生成。人工创作文案质量高但数据量有限,模型生成渠道主要是在淘宝不同场景下由算法生成风格各异的文案,此类文案数据丰富但是质量不高。所有渠道文案经过数据处理模块清洗后更新文案物料库 。由于资源限制,自有生成模型日产出数据量有限,且文案风格较为固定。物料库建设极大扩展了商品个性化文案数据量。丰富多样的文案素材为后续文案排序优选和生成模型迭代奠定基础。


  内容排序模型


文案物料库建设极大扩展了淘宝Push自有素材文案规模,不同渠道或模型生成文案风格各异,如微淘渠道文案多为商家自行创作内容,文案风格贴近广告。而达人渠道文案偏向从淘宝用户角度描述商品视觉效果、使用体感等等。模型生成内容从商品细节切入描述,如商品材质、风格等等。单个商品候选文案数量提升随之而来的便是如何针对不同用户选择具有吸引力的文案。针对这个问题,我们探索实验了不同类型的排序模型并针对Push场景文案优选进行优化,最终在Push推荐链路上线了文案优选层。

文案内容排序与商品推荐排序任务类似,都是对单一候选序列经过特征工程、模型构建拟合样本分布预测是否点击该Push。因此文案排序可以抽象为文案点击率预估模型,以曝光的文案内容、商品基本信息、用户信息为输入样本,预测目标为用户是否点击。商品推荐排序关注商品本身以及端内用户与商品交互信息,而文案排序阶段已有明确投放目标,因此文案优选层更关注当前内容的文风是否符合用户偏好以及是否突出用户关注“卖点”。以下列用户浏览商品轨迹为例:

  1. 【旗舰店】森海塞尔MOMENTUM真无线二代主动降噪蓝牙耳机官网

  2. sony索尼wf1000xm4真无线蓝牙主动降噪耳机入耳式降噪豆1000xm3

  3. B&O Beoplay EQ真无线蓝牙主动消噪耳机入耳式运动耳塞bo降噪豆eq

  4. Bose博士消噪耳塞真无线蓝牙降噪耳机麦主动降噪运动耳机大鲨鱼鳍

  5. .....


可以看到该用户浏览的商品中均出现了“降噪”属性,如果模型能够学习到用户这一偏好,选择突出该“卖点”的文案曝光,对吸引用户点击一定有提升作用。因此我们在设计模型时主要考虑用户文案风格偏好、“卖点”偏好信息的提取。模型输入特征由三部分组成:

  1. 商品基础特征,主要是商品一级类目、二级类目、叶子类目、商品标题内容切分等等。

  2. 文案特征,主要由文案内容切分、文案来源、关键属性信息等等组成,

  3. 用户特征,由一般社会学统计特征、用户端内行为特征、长短期类目偏好特征、浏览行为序列组成。这里用户浏览序列特征与一般构造商品浏览序列不同,序列内部主要突出商品文案以及属性信息。模型主体结构如下:



为了提升模型捕获文案风格信息的能力,我们在base结构基础上加入了文案self-Attention结构,并通过用户的浏览商品的文案属性序列增强模型对Push场景下用户个性化偏好信息以及场景上下文信息的学习。同时,其他诸如商品基础类目信息、用户偏置信息映射为Embeddding向量一并拼接到模型输入。

  小结


本节从智能文案生成项目一期上线后遇到的种种困难出发,阐述了我们从智能文案生成模块升级到淘宝Push文案层链路所做的一系列工作,并重点叙述了我们在文案层链路设计、数据处理模块升级、物料库建设、排序模型优化探索等等几个重要节点的工作细节。文案层链路建设促进了淘宝Push整体商品个性化文案质量提升,取得线上点击率效果平均提升10.03%的成果。


总结


本文主要介绍了2021年笔者在智能文案生成项目所做的工作。首先,基于淘宝Push存在的文案多样性低、创作成本高、缺乏统一沉淀等等问题设计并实现了智能文案生成模块、沉淀优质文案素材。模板话术生成模块通过挖掘模板、精准匹配方式生成高质量候选文案,关键字生成模块以淘宝Push历史数据为样本训练模型生成风格各异的文案内容,为运营同学创作素材提供灵感。而文案库搜索模块为运营同学预估文案质量提供数据依托。在项目上线后遇到调用量不够、数据回收困难等问题后,考虑自有素材文案生成方向,将现有模块升级为淘宝Push文案层链路,进一步完善文案生成能力并沉淀文案物料库,其中文案物料库已推广至同组其他项目中。而针对Push场景的文案层排序模型优化进一步提升了个性化商品推荐素材点击,提升了文案多样性和丰富度。

当然,现有工作还存在很多不足,比如内容生成模型仍然是离线训练方式,而作为整个链路的一部分生成模型无法感知文案质量对最终点击的影响,后续我们将致力于探索在线生成对抗学习在淘宝Push智能文案生成的应用,将线上反馈传播到生成模型本身,以提升生成模型对Push场景用户偏好语义风格的学习能力。另外,淘宝Push本身是一个非常大的对外投放通道,所受到的外部关注相对更高,不良Push文案所产生的舆情风险影响不可估量。而内容生成模型存在的解码不可控问题也限制了智能文案大范围推广,敏感词实时监控反馈、生成模型解码控制是我们接下来要优化的主要方向之一。


参考文献


  1. Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
  2. Dong L, Yang N, Wang W, et al. Unified language model pre-training for natural language understanding and generation[J]. Advances in Neural Information Processing Systems, 2019, 32.
  3. Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training[J]. 2018.
  4. https://en.wikipedia.org/wiki/SimHash


团队介绍


我们是来自淘宝智能部的用户增长算法团队,团队定位于为淘宝平台用户运营业务提供算法服务,我们的工作内容包括RTA/RTB站外广告投放、新客潜客站内承接、PUSH推送优化、权益智能分发等。我们是一支正在快速成长中的学习型团队,在计算广告/推荐引擎/运筹优化/自然语言处理等算法领域深耕多年,创造业务价值的同时也关注个人技术成长,欢迎感兴趣的小伙伴加入。简历投递至kena.gkn@alibaba-inc.com


✿  拓展阅读

作者|方砚
编辑|橙子君

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存