内容相似度

包含的算法:

  • Items with Similar Attributes

在该类算法中,如果两个项目的名称和文本描述在语义上相似,则认为两个项目相关。 与大多数必须使用行为数据源的推荐算法不同,内容相似度算法使用产品目录中的元数据来推导项目之间的相似度。 因此,Target能够在所谓的“冷启动”场景中推动推荐,在这种场景中,未收集到任何行为数据(例如,在Target活动开始时)。

虽然Target的内容相似度算法的模型服务和内容交付方面与其他基于项目的算法相同,但模型训练步骤却截然不同,涉及一系列自然语言处理和预处理步骤,如下图所示。 相似度计算的核心是利用修改后的tf-idf向量余弦相似度来表示目录中的每个项目。

显示内容相似度流程流的图表

这些步骤的详情如下:

  • 输入数据:如前所述,此算法完全基于目录数据(通过目录馈送、实体API摄取到Target,或来自页面更新

  • 模型训练

    • 属性提取:在应用常规静态筛选器、目录规则和全局排除项后,此算法将从实体架构中提取相关文本字段。 Target自动使用实体属性中的名称、消息和类别字段,并尝试从自定义实体属性中提取任何字符串字段。 通过确保该字段的大部分值不可作为数字、日期或布尔值分析,可完成此过程。

    • 词干和停用词删除:为了更精确的文本相似度匹配,请谨慎地删除不会显着改变项含义的非常常见的“停用词”(例如,“was”、“is”、“and”等)。 同样,词干是指将具有不同后缀的单词缩减到其根单词的过程,根单词具有相同的含义(例如,“connect”、“connecting”和“connection”都具有相同的根单词:“connect”)。 Target使用Snowball词干器。 Target首先执行自动语言检测,并且最多可以删除50种语言的停止词,并为18种语言生成词根。

    • n-gram创建:在前面的步骤之后,每个单词都被视为一个令牌。 将令牌的连续序列组合成单个令牌的过程称为n-gram创建。 Target的算法考虑的量最多为2克。

    • tf-idf计算:下一步涉及创建tf-idf矢量以反映项描述中令牌的相对重要性。 对于项目i中的每个令牌/术语t,使用的目录D |D| 项,首先计算项频率TF(t,i)(项出现在项i中的次数)以及文档频率DF(t,D)。 实质上,存在令牌的项目数。 则tf-idf度量为

      显示tf-idf度量的公式

      Target使用Apache Spark的​ tf-idf ​功能实现,该实现将每个令牌散列为218个令牌。 在此步骤中,还通过根据标准中指定的设置调整每个矢量中的词频来应用客户指定的属性升序和埋葬。

    • 项相似度计算:最终项相似度计算使用近似余弦相似度进行。 对于包含向量tA和tB的两个项目​ A ​和​ B,余弦相似度定义为:

      显示项目相似度计算的公式

      为了避免计算所有N x N项之间相似度的巨大复杂性,tf-idf ​矢量被截断为仅包含其最大的500个项,然后使用此截断矢量表示计算项之间的余弦相似度。 与其他近似最近邻(ANN)算法相比,该算法对稀疏向量相似度计算具有更好的鲁棒性。

    • 模型服务:此过程与上一节中介绍的项目项协同筛选技术相同。

多键建议

算法包括:

  • 基于购物车的推荐
  • Recommended For You

对Target推荐算法套件的最新添加为Recommended For You和一系列基于购物车的推荐算法。 这两种算法都使用协同过滤技术来形成基于项目的个人推荐。 然后,在服务时,用户的浏览历史记录(对于Recommended For You)或用户当前购物车(对于基于购物车的推荐)中的多个项目用于检索这些基于项目的推荐,然后将这些项目合并以形成推荐的最终列表。 请注意,存在多种风格的个性化推荐算法。 多键算法的选择意味着,当访客有任何浏览历史记录后,即可立即使用推荐,并且推荐可以更新以响应最新的访客行为。

这些算法基于在基于项目的推荐部分中描述的基本协同过滤技术构建,并且还结合超参数调整来确定项目之间的最佳相似度量度。 该算法对每个用户的行为数据执行时间顺序分割,并在试图预测用户稍后查看或购买的项目时训练关于较早数据的推荐模型。 然后选择生成最佳平均平均精度的相似性度量。

模型训练和评分步骤的逻辑如下图所示:

显示模型训练和评分步骤逻辑的图表

这些步骤的详情如下:

  • 输入数据:这与项 — 项协同筛选(CF)方法相同。 Both Recommended For You和基于购物车的算法使用行为数据,其形式为当您实施Target或从Adobe Analytics中收集的用户查看和购买。

  • 模型训练

    • 数据清理和采样:这再次与协作过滤方法相同,后者应用回顾窗口将行为数据过滤到适当的日期范围,然后应用目录规则和全局排除。 与超过1,000个项目交互的访客仅考虑其最近的1,000个使用情况。
    • 训练测试拆分:为每个用户执行使用情况的按时间顺序拆分,将其使用情况的前80%分配给训练数据,其余20%分配给测试数据。
    • 项目相似度模型训练: Recommended For You和基于Cart的算法的核心项目相似度计算在构建候选项目向量的方式上有所不同。 对于Recommended For You,项向量具有维度NUsers,其中每个条目表示该项用户的隐式评级之和 — 为项购买赋予的权重是该项查看次数的2倍。 对于基于购物车的推荐,项目矢量具有二进制条目;如果只考虑会话内行为,则每个会话都有一个新条目。 否则,每个访客在此项目矢量中都有一个条目。

    训练步骤计算几种类型的向量相似度:这里讨论的LLR相似度(🔗)、余弦相似度(以前定义)和规范化的L2相似度(定义为:

    显示训练计算的公式

    • 项目相似度模型评估:模型评估是通过采用上一步中生成的建议并对测试数据集进行预测来完成的。 通过按时间顺序排序测试数据集中的每个用户的项目使用情况,然后为排序的项目子集提出100个推荐,以尝试预测随后的查看和购买,来模拟在线评分阶段。 信息检索量度平均平均精度用于评估这些推荐的质量。 此量度会考虑推荐的顺序,并有利于在推荐列表中排名较高的相关项目,这是排名系统的重要属性。
    • 模型选择:离线评估后,选择具有最高平均精确度的模型,并为其计算所有单个项推荐。
    • 脱机筛选:模型训练的最后阶段是应用任何适用的动态筛选器。 执行此步骤后,预先计算的推荐将缓存在全局中以可供服务。
  • 模型服务:与以前的算法不同,以前的算法服务推荐涉及为检索指定单个键,然后应用业务规则,Recommended for You和基于Cart的算法采用更复杂的运行时过程。

    • 多键检索和合并:对于基于购物车的推荐,最多将购物车中传递的10个项目视为检索的键,并且每个推荐的权重相等。 对于Recommended for You,最多可以将最近五个唯一查看的项目和最近五个唯一购买的项目视为检索键,其中来自购买项目的推荐的权重是来自查看项目的推荐的两倍。 在合并推荐时,如果一个项目出现在多个推荐的单个列表中,则会添加其加权相似度分数。 此阶段的最终推荐列表是随后合并的重新加权推荐列表,按降序排列。
    • 正在筛选:下一步,将应用筛选规则,例如删除以前查看和/或购买的项目,以及其他动态业务规则。

下图说明了这些流程,其中访客查看了项目A并购买了项目B。系统会使用每个项目标签下显示的离线相似度得分来检索各个推荐。 检索后,将推荐与加权相似度得分相加。 最后,在客户已指定必须过滤掉以前查看过的和购买过的项目的场景中,过滤步骤将从推荐列表中删除项目A和B。

显示多键算法处理的图表