AI经营|多Agent择优生成商品标题

科技   2024-11-12 08:31   北京  

阿里妹导读


商品标题中关键词的好坏是商品能否被主搜检索到的关键因素,使用大模型自动优化标题成为【AI经营】中的核心能力之一,本文讲述大模型如何帮助商家优化商品素材,提升商品竞争力。

背景

商品标题中关键词的好坏是商品能否被主搜检索到的关键因素,如果编辑的够好,能帮助商品有效提升曝光,并且不用付出额外的费用。

对商品素材敏感的商家,会花很多心思在优化关键词引流上;例如每天到【生意参谋】中看最近有那些买家搜索多的词、行业热门的词,补充到自己相关的商品上;但做好这件事需要一个专业运营并投入很多精力。

有了大模型之后,自动优化标题就成为【AI经营】中的核心能力之一,帮助商家优化商品素材,提升商品竞争力。



(优化效果)

生成方案


1.0 - 直接基于LLM生成

基于同款优质品分词或热搜词、引流词生成候选词,使用LLM生成新的标题。



(LLM标题生成链路)



(生成示例)

结论:由于基于LLM生成标题的链路实验数据效果一般,产量不高,生成的标题也和原标题变化较大,商家接受程度低等原因,2.0设计了基于规则生成标题的技术方案。


2.0 - 基于规则生成流量词+多Agent择优

简单来说,就是生成多种类型的流量词,再让大模型多次判断哪个词最好最合适,最后加词或换词。

流量词生成

  • 加词来源
  • 近7日商品对应叶子类目下pv较高的query;
  • 从竞对商品标题中提取的卖点;
  • 商品本身的引流词;

  • 相关性度量
  • 现利用添加词汇与品类名、原标题本身的语义相似度加权计算;
  • 训练小模型衡量添加词与原标题的相关性,解决“圆领”“v领”等语义相似度无法排除的case;

  • 自定义分词词典:从平台alinlp工具对全量标题分词中筛选出词频>10的中文词汇加入,解决开源分词工具对“欧美风”“即食”“免煮”等词汇的误分,构建可人工维护词典。



(流量词生成链路)

最终生成以下几种类型的词:



基于近期买家高频搜索词生成CASE:

{  "titleList": [    {      "newTitle": "染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱",      "newWord": "绗绣",    },    {      "newTitle": "染色绣花花边亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱",      "newWord": "花边",    },    {      "newTitle": "染色印花绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱",      "newWord": "印花",    },    {      "newTitle": "染色绣花亮片立体叶子珠管绣盘花面料跨境童装婚纱礼服网布网纱",      "newWord": "盘花",    }  ]}
基于竞对商品卖点生成CASE:
{  "titleList": [    {      "newTitle": "染色绣花亮片立体叶子珠管面料跨境花边童装婚纱礼服网布网纱",      "newWord": "花边",    },    {      "newTitle": "染色绣花亮片立体泡沫绣叶子珠管面料跨境童装婚纱礼服网布网纱",      "newWord": "泡沫绣",    },    {      "newTitle": "染色绣花亮片立体叶子珠管面料跨境童装婚纱服饰礼服网布网纱",      "newWord": "服饰",    },    {      "newTitle": "染色绣花亮片棉线立体叶子珠管面料跨境童装婚纱礼服网布网纱",      "newWord": "棉线",    }  ],}

流量词择优

生成了很多流量词但没有优先级,无法确定哪一个词最适合这个品。

并且这些词可能与商品本身属性冲突。可以考虑基于商品实际情况+LLM来给出推荐词和推荐原因,此处参考了一种COT的思想【六顶思考帽】,使用链式思考提示来引导语言模型。

六顶思考帽思想:

1.白帽:专注于客观的事实和数据,分析现有的信息。
2.红帽:代表情感和直觉,表达个人的感受和情绪。
3.黑帽:用于批判性思考,找出潜在的问题和风险。
4.黄帽:象征乐观,寻找问题中的积极面和机会。
5.绿帽:代表创造性思维,鼓励提出新的想法和解决方案。

6.蓝帽:负责组织和控制思考过程,确保思考有序进行。

参考:Agent 从想法到实现之六顶思考帽

基于上述思想设计多Agent



生成标题 ,查询实际标题、属性、数据 (信息帽 - API接口)

现在有一个电商商品,有以下商品信息:商品当前的标题是【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱】;商品的属性有这些是成分及含量是【涤纶】、纱支是【按样】、克重【0.92(g/㎡)】、幅宽【125-135】、绣花工艺【亮片绣】、产地【广东】、具体用途【舞台服】、适用季节【春夏】、花型风格【精细花型】、品牌【HLE-DY】、流行元素【欧美】、主要下游平台【亚马逊】、主要销售地区【非洲】;

基于算法推荐择优选择(乐观帽 - API接口 + LLM)

prompt

现在有一个电商商品,有以下商品信息:商品当前的标题是【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱】;商品的属性有这些是成分及含量是【涤纶】、纱支是【按样】、克重【0.92(g/㎡)】、幅宽【125-135】、绣花工艺【亮片绣】、产地【广东】、具体用途【舞台服】、适用季节【春夏】、花型风格【精细花型】、品牌【HLE-DY】、流行元素【欧美】、主要下游平台【亚马逊】、主要销售地区【非洲】;
现在推荐有下面这些几种类型的关键词,例如近期买家高频的搜索词:【绗绣】、【花边】、【印花】、【盘花】,竞争对手的卖点词:【花边】、【泡沫绣】、【服饰】、【棉线】,需要基于商品信息从中选择1到3个最合适的关键词,添加到原标题中,来帮助商品获得更多搜索流量,输出推荐的词和即可;
输出
根据商品信息,我为您推荐以下关键词:【绗绣】:这个关键词与商品的绣花工艺相符合,能突出商品的独特性。【花边】:这个关键词与商品的具体用途(舞台服)相符,可以吸引对舞台服装有需求的买家。【盘花】:这个关键词强调了商品的精致工艺,有助于提升商品的吸引力。综合考虑,我建议将【绗绣】、【花边】和【盘花】这三个关键词添加到原标题中。这样可以更好地突出商品的特点,吸引更多潜在买家的关注,从而获得更多的搜索流量。最终的商品标题可以是:【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱 - 花边 - 盘花】。

在算法推荐上给予创新(创造帽 - LLM)

prompt

现在有一个电商商品,有以下商品信息:商品当前的标题是【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱】;商品的属性有这些是成分及含量是【涤纶】、纱支是【按样】、克重【0.92(g/㎡)】、幅宽【125-135】、绣花工艺【亮片绣】、产地【广东】、具体用途【舞台服】、适用季节【春夏】、花型风格【精细花型】、品牌【HLE-DY】、流行元素【欧美】、主要下游平台【亚马逊】、主要销售地区【非洲】;
现在推荐有下面这些几种类型的关键词,例如近期买家高频的搜索词:【绗绣】、【花边】、【印花】、【盘花】,竞争对手的卖点词:【花边】、【泡沫绣】、【服饰】、【棉线】,需要基于商品信息和推荐的关键词,创新出额外的3个词,词的长度不超过三个字,并给出原因;
输出
根据商品信息和推荐的关键词,我为您创新出了以下三个关键词:
【立体】:因为商品描述中提到“立体叶子珠管绣面料”,这强调了面料的立体感,所以这个关键词可以突出商品的独特性。
【轻薄】:商品的克重为0.92(g/㎡),表明面料轻薄,适合春夏季节穿着。这个词可以强调商品的透气性和舒适性。
【精美】:商品的花型风格被描述为“精细花型”,这个词可以用来强调商品的精致度和高质感,吸引消费者的注意。
请注意,关键词的选择需要根据您的目标市场和消费者群体来确定,以上仅为一种可能的方向。

风险判断(批判帽 - LLM + 风控接口)

prompt

现在有一个电商商品,有以下商品信息:商品当前的标题是【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱】;商品的属性有这些是成分及含量是【涤纶】、纱支是【按样】、克重【0.92(g/㎡)】、幅宽【125-135】、绣花工艺【亮片绣】、产地【广东】、具体用途【舞台服】、适用季节【春夏】、花型风格【精细花型】、品牌【HLE-DY】、流行元素【欧美】、主要下游平台【亚马逊】、主要销售地区【非洲】;
并且系统推荐了几个优化词【绗绣】:这个关键词可以突出商品的特色工艺,吸引对绗绣感兴趣的买家。【亮片绣】:这个关键词可以强调商品的绣花工艺,特别是亮片绣的高端感,吸引追求独特设计的买家。【舞台服】:这个关键词可以明确商品的具体用途,对于寻找舞台服装的买家来说非常具有吸引力。
AI推荐了几个优化词【立体】:因为商品描述中提到“立体叶子珠管绣面料”,这强调了面料的立体感,所以这个关键词可以突出商品的独特性。【轻薄】:商品的克重为0.92(g/㎡),表明面料轻薄,适合春夏季节穿着。这个词可以强调商品的透气性和舒适性。【精美】:商品的花型风格被描述为“精细花型”,这个词可以用来强调商品的精致度和高质感,吸引消费者的注意。
如果你是一个专业的电商行业运营,现在要给商品标题添加新的关键词,在贴合商品本身情况的前提下,以你的专业角度,你会排除这些推荐优化词的哪几个词;
输出
在添加关键词时,需要考虑商品的主要特点和目标市场。根据商品信息和推荐的优化词,我会排除以下几个关键词:
"绗绣":虽然这个关键词可以突出商品的特色工艺,但考虑到商品标题已经包含了"绗绣绣花亮片立体叶子珠管绣面料"这一完整描述,重复使用"绗绣"可能会使标题显得冗长且不够简洁。
"轻薄":虽然商品的克重较轻,但是根据商品用途(舞台服)和主要销售地区(非洲)推测,可能需要更厚重一些的面料来提供更好的支撑和保护。因此,"轻薄"这个词可能不是最贴切的描述。
"精美":虽然商品的花型风格被描述为"精细花型",但是这个词可能会让人联想到更加精致和高级的设计,而商品的其他描述并未体现出这一点。因此,"精美"这个词可能不太适合。
综合以上分析,我会排除"绗绣""轻薄""精美"这三个关键词。

规划调度并总结 (管理帽 - LLM)

prompt

## 思考帽的知识白帽:专注于客观的事实和数据,分析现有的信息。黑帽:用于批判性思考,找出潜在的问题和风险。黄帽:象征乐观,寻找问题中的积极面和机会。绿帽:代表创造性思维,鼓励提出新的想法和解决方案。
## 已知每个帽子的分析结果:白帽(信息帽)现在有一个电商商品,有以下商品信息:商品当前的标题是【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱】;商品的属性有这些是成分及含量是【涤纶】、纱支是【按样】、克重【0.92(g/㎡)】、幅宽【125-135】、绣花工艺【亮片绣】、产地【广东】、具体用途【舞台服】、适用季节【春夏】、花型风格【精细花型】、品牌【HLE-DY】、流行元素【欧美】、主要下游平台【亚马逊】、主要销售地区【非洲】;
黄帽(乐观帽)根据商品信息,我为您推荐以下关键词:【绗绣】:这个关键词与商品的绣花工艺相符合,能突出商品的独特性。【花边】:这个关键词与商品的具体用途(舞台服)相符,可以吸引对舞台服装有需求的买家。【盘花】:这个关键词强调了商品的精致工艺,有助于提升商品的吸引力。综合考虑,我建议将【绗绣】、【花边】和【盘花】这三个关键词添加到原标题中。这样可以更好地突出商品的特点,吸引更多潜在买家的关注,从而获得更多的搜索流量。最终的商品标题可以是:【染色绗绣绣花亮片立体叶子珠管绣面料跨境童装婚纱礼服网布网纱 - 花边 - 盘花】。
绿帽(创造帽)根据商品信息和推荐的关键词,我为您创新出了以下三个关键词:【立体】:因为商品描述中提到“立体叶子珠管绣面料”,这强调了面料的立体感,所以这个关键词可以突出商品的独特性。【轻薄】:商品的克重为0.92(g/㎡),表明面料轻薄,适合春夏季节穿着。这个词可以强调商品的透气性和舒适性。【精美】:商品的花型风格被描述为“精细花型”,这个词可以用来强调商品的精致度和高质感,吸引消费者的注意。请注意,关键词的选择需要根据您的目标市场和消费者群体来确定,以上仅为一种可能的方向。
黑帽(批判帽)在添加关键词时,需要考虑商品的主要特点和目标市场。根据商品信息和推荐的优化词,我会排除以下几个关键词:"绗绣":虽然这个关键词可以突出商品的特色工艺,但考虑到商品标题已经包含了"绗绣绣花亮片立体叶子珠管绣面料"这一完整描述,重复使用"绗绣"可能会使标题显得冗长且不够简洁。"轻薄":虽然商品的克重较轻,但是根据商品用途(舞台服)和主要销售地区(非洲)推测,可能需要更厚重一些的面料来提供更好的支撑和保护。因此,"轻薄"这个词可能不是最贴切的描述。"精美":虽然商品的花型风格被描述为"精细花型",但是这个词可能会让人联想到更加精致和高级的设计,而商品的其他描述并未体现出这一点。因此,"精美"这个词可能不太适合。综合以上分析,我会排除"绗绣""轻薄""精美"这三个关键词。
## 输出如果你是一个专业的电商运营,现在要给商品标题添加新的关键词来提升流量,在贴合商品本身情况的前提下,请根据思考帽的知识和帽子的分析结果来选择一个最佳的关键词并输出,不需要输出思考过程;

输出

【立体】

工程设计

设计过程中发现,思考过程事实上相邻agent之间并不是严格的上一个输出为下一个输入的关系,如黄帽和绿帽的输入是一样的,两者的输出共同成为黑帽的一部分;并且黑帽和蓝帽也会使用非上一个节点的输出。所以这并不是一个严格的链式结构,具体执行流程如下:



因此我们需要两个部分来实现多agent,其中一部分为agent类簇,其作用是向大模型请求并返回结果;另一部分是pipeline类簇,其作用是选择、排序或是组合agent,并且存储执行过程中的上下文。如下图所示:



Agent类负责向大模型请求并返回结果,其主要执行方法为:

  public Object execute(Object params, HashMap<String, Object> context) {    params = preExecute(params, context);    Object result = request(params);    return postExecute(result, context);  }
preExecute方法作用是处理参数,使其符合向大模型请求的要求;request方法是具体向大模型请求并返回结果;postExecute方法作用是后置处理,包括处理结果并且将其存储至上下文。当然这些方法都可以被子类重写以实现具体需求。

section类负责组合agent类,其主要执行方法为:

  public Object execute(Object params, HashMap<String, Object> context) {    if (CollectionUtil.isEmpty(agents)) {      return params;    }    return agentExecute(params);  }
其中agentExecute作用是执行该section中的所有agent,默认顺序执行,可修改为并发执行。

pipeline类负责编排section执行顺序并设置检查点,如果一个section被设置为检查点则会检查其返回结果,为null则整个流程结束。主要执行方法为:

  public Object execute(Object params) {    AgentSection now = head;    while (now != null) {      params = now.execute(params, context);      //检查点判断      if (checkPoint.contains(now.getName()) && (params == null)) {        return null;      }      now = now.next();    }    return params;  }
最终调用时,先初始化section并把相应的agent填充到其中,再通过pipeline对section进行排序即可,如下所示:
    //白帽    AgentSection whiteHat = new WhiteHatSection();    whiteHat.setAgents(Lists.newArrayList(AgentFactory.getAgent(CopilotAutomaticAgentEnum.TitleBaseInfoAgent.getCode())));    //黄帽和绿帽    AgentSection yellowAndGreenHat = new YellowAndGreenHatSection();    yellowAndGreenHat.setAgents(Lists.newArrayList(AgentFactory.getAgent(CopilotAutomaticAgentEnum.TitleLLMKeywordsAgent.getCode()), AgentFactory.getAgent(CopilotAutomaticAgentEnum.TitleSysKeywordsAgent.getCode())));    //黑帽    AgentSection blackHat = new BlackHatSection();    blackHat.setAgents(Lists.newArrayList(AgentFactory.getAgent(CopilotAutomaticAgentEnum.TitleExcludeAgent.getCode())));    //蓝帽    AgentSection blueHat = new BlueHatSection();    blueHat.setAgents(Lists.newArrayList(AgentFactory.getAgent(CopilotAutomaticAgentEnum.TitleSummaryAgent.getCode())));        //初始化执行流程    AgentPipeLine thinkingHats = new AgentPipeLine();    thinkingHats.add(whiteHat, true).add(yellowAndGreenHat).add(blackHat).add(blueHat);        //开始执行        thinkingHats.execute(params)
如果想只选择黄帽或是绿帽中的一个,可以在填充agent时进行设置;如果想在其他任务中使用六顶帽子框架,可以重新编写agent并填充到相应的section中。

本次设计虽然能通过section对agent进行组合从而能够应对一些复杂情况,但整体上仍属于链式调用的范畴,难以应对一些更加复杂的情况,后续可以通过引入一些重量级框架来解决复杂问题。


效果

prompt

现在有一个电商商品,有以下商品信息:商品当前的标题是:卡通家用水果削皮刀多功能厨房刨刀器便携去皮二合一;商品的种类是:日用餐厨饮具/厨房工具/刨子、削皮器商品的属性是:品牌:[KUCOCO];是否进口:[否];产地:[义乌];产品上市时间:[2022年春];货号:[YBJ-26500];加工定制:[是];加印LOGO:[可以];价格段:[5-10元];是否有专利:[无];适用送礼场合:[生日];材质:[ABS+PC+不锈钢201];
根据已有的系统算法推荐词进行筛选,获得优化词及其选择原因如下:刮皮:符合产品定位且为高频搜索词多用途:符合产品功能且为高频搜索词蔬果:符合产品使用范围且为高频搜索词收纳:符合产品附加功能且未与标题冲突南瓜:符合产品使用对象且为同行竞争对手卖点关键词根据商品已有信息,AI生成的优化词及选择原因如下:刮泥:提高曝光因为这是一个与削皮相关的实用功能描述,能够吸引目标消费者的注意便携:提高曝光因为它突出了产品的便捷特性,吸引更多用户的兴趣削片:提高曝光因为这是对产品功能的具体描述,增加搜索的相关性厨房:提高曝光因为它明确了使用的场景,有助于用户快速定位到所需商品多彩:提高曝光因为描述了产品的外观特点,吸引更多视觉敏感的消费者结合商品信息对上述筛选出的优化词排除,有被排除的关键词及其被排除的原因如下:刮泥:不符合产品实际功能描述,产品主要用于水果和蔬菜的削皮,而非刮泥削片:与现有标题中的“削皮”功能重复,无需再次强调厨房:与现有标题中的“厨房”场景重复,无需重复强调多彩:标题和属性中未提及产品颜色多样,无法确认是否符合实际情况 请注意,以上排除理由已考虑了不与商品属性冲突及避免与标题词汇大量重复的原则。如果你是一个专业的电商运营,现在要给商品标题在不添加其他内容的前提下添加新的关键词来提升流量,请你选择一个优化词并将其添加到标题合适的位置,不要添加任何其他内容。给你输入的信息包括商品基本信息、系统算法推荐的优化词、AI生成的优化词、上述两类优化词中被排除的优化词四个部分。请按一下要求选择最佳优化词:1. 将系统算法推荐优化词和AI生成优化词合并为候选集合2. 从候选集合中去除被排除的优化词3. 在贴合商品本身情况的前提下选择一个最佳优化词,将其添加到标题合适的位置以生成新的标题,请注意不要添加除了选择的最佳优化词以外的任何内容。请按上述过程思考但不要输出思考过程,输出是最终选择的一个优化词、该优化词能提高曝光的原因两部分内容,原因用一句话总结,两者用,分隔并按照上述顺序排列。请以纯文本不带包括markdown在内的任何格式输出

根据其过程可以看到大模型分别对算法推荐优化词进行了筛选、生成了新的优化词以及又针对以上两步的结果再次进行了筛选。现阶段尽管大模型在文字处理工作上已经卓有成效,但仍然有出错的可能,如上述AI生成的优化词出现了与商品标题重复或属性冲突的内容,特别是在输出时忽略思考过程的情况下;通过多agent设置思考框架进行处理能够有效降低这种状况,同时在算法未对优化词与商品属性作校验从而给出与商品属性矛盾的结果时,通过大模型也可以将其过滤。

输出

newWord=多用途,newWordType=m,optimizeReason=符合产品功能且为高频搜索词

数据

授权商家商均优化商品数10次,优化后被优化词搜索命中商家占比69%,商品占比33%;

优化商品曝光正向占比59.12%,其中显著增长占比58.63%;


































阿里云开发者
阿里巴巴官方技术号,关于阿里的技术创新均呈现于此。
 最新文章