自动化构建产品图谱
知识图谱是以灵活方式捕获数据间关系的数据结构,能够提高信息检索的精确度,并揭示大型数据集中先前未知的关系。手动组装知识图谱极其耗时,因此研究人员长期研究自动化生成技术。在电影信息等关系类型较少且结构化数据源丰富的领域,该方法已取得成功。但在零售产品领域,自动化构建知识图谱更为困难,因为数据类型关系本质上无边界(如服装的颜色、糖果的口味、电器的功率等),且大量有用信息存储在自由格式的产品描述、客户评论和问答论坛中。
AutoKnow框架
知识图谱通常由实体(图的节点,通常用圆圈表示)和实体间关系(连接节点的线段)组成。例如,“饮料"实体可能通过"包含"关系与"咖啡"实体相关;“咖啡袋"实体可能通过"具有体积"关系与"16盎司"实体相关。
在电影信息等狭窄领域,实体类型(如导演、演员、编辑)和关系数量(执导、参演、编辑等)都有限,且电影源通常提供明确列出演员和工作人员的结构化数据。而在零售领域,产品类型数量随着图谱扩展而增长,每个产品类型都有自己的一组属性(如颜色和纹理与电池类型和有效范围完全不同),且产品的关键信息(如咖啡杯过热无法手持)可能隐藏在评论或问答部分的自由格式文本中。
AutoKnow通过五个基于机器学习的处理模块应对这些挑战,每个模块都建立在前一个模块的输出基础上:
- 分类扩展:增加图谱中的实体类型数量
- 关系发现:识别产品属性、属性可能的值范围(如不同口味或颜色),以及哪些属性对客户重要
- 数据插补:使用先前模块发现的实体类型和关系,确定与产品相关的自由格式文本是否包含图谱中缺失的信息
- 数据清理:筛选现有和新提取的数据,检查是否有任何数据在源文本中被错误分类
- 同义词查找:尝试识别具有相同含义的实体类型和属性值
技术实现
分类扩展模块
该模块使用机器学习模型对源目录中产品标题的子字符串进行标注。例如,在产品标题"Ben & Jerry’s black cherry cheesecake ice cream"中,模型将子字符串"ice cream"标注为产品类型。同一模型还标注表示产品属性的子字符串,用于关系发现步骤。在这种情况下,它会将"black cherry cheesecake"标注为口味属性。该模型根据手工工程的分类法对已分类产品描述进行训练。
分类扩展模块还根据上位词(它们所属的更广泛产品类别)对新提取的产品类型进行分类。例如,冰淇淋属于上位词"冰淇淋和新奇品”,后者又属于上位词"冷冻品"等。上位词分类器使用客户交互数据,例如客户在单个查询后查看或购买了哪些产品。
关系发现模块
该模块根据两个标准对产品属性进行分类:首先是属性是否适用于给定产品(例如口味属性适用于食品但不适用于服装);其次是属性对特定产品购买者的重要性(例如品牌名称对零食购买者比农产品购买者更重要)。两个分类器都分析提供商提供的数据(产品描述)和客户提供的数据(评论和问答)。
数据插补与清理
数据插补步骤查找产品描述中可能适合先前步骤识别的新产品和属性类别但尚未添加到图谱中的术语。该步骤使用嵌入技术,将描述性术语表示为向量空间中的点,相关术语分组在一起。
数据清理步骤使用基于Transformer架构的机器学习模型。模型的输入是文本产品描述、属性(口味、体积、颜色等)和该属性的值(巧克力、16盎司、蓝色等)。根据产品描述,模型决定属性值是否分配错误。
同义词处理
最后分析产品和属性集以查找应在产品图谱单个节点中组合的同义词。首先使用客户交互数据识别在同一查询中查看的项目;它们的产品和属性描述是候选同义词。然后使用编辑距离(两个字符串相似度的度量)和神经网络等技术组合过滤候选术语。
性能成果
通过AutoKnow系统,某中心的消费品图谱(包括杂货、美容、婴儿和健康类别)中的事实数量增加了近200%,产品类型识别准确率达到87.7%。系统的五个模块(执行产品类型提取和异常检测等任务)与现有系统相比,性能全面提升,通常提升显著(产品类型提取改进超过300%)。
在持续的工作中,研究团队正在解决许多悬而未决的问题,例如如何处理具有多个上位词的产品(在产品层次结构中具有多个"父级"的产品)、在训练模型之前清理数据,以及使用图像数据和文本数据来提高模型性能。