张玉娟 周菁
(中国传媒大学 北京市 100024)
无论推荐系统如何更新迭代,其核心始终围绕when、where、who、what、why 这五个问题进行。但是推荐系统发展至今,主要集中于对前四个问题的研究,忽略了推荐模型的可解释性,即模型本身或者利用模型推荐系统给出推荐特定物品的理由。该解释性对上述“why”类问题进行了回答与研究。虽然早期Schafer 在电商领域对用户推荐的内容给予了相关解释:“您正在看的这个产品与您过去喜欢的其他产品相似”[1],但是并没有对“Why”在推荐系统领域的概念进行定义,直至2014年Zhang 正式提出了可解释性推荐系统(Explainable Recommendation)的概念[2]。与普通电商领域不同的是,如果一个推荐系统在个别场景中对结果提供可解释性,那么其说服用户接受结果的能力及可信度都将越高,比如在用户自身利益中产生较大影响的医疗领域,解释某些药品的作用或者解释指定药品在服用时需要一定顺序的原因。
基于顺序感知的推荐(Sequence-aware)主要根据用户历史行为输出有序的物品列表。一般而言,物品与物品之间会存在某种特定的关联[3]。比如电商领域,当一个用户买了iPhone 之后,他可能在短期之内继续购买iPhone 配套的耳机AirPods 的概率更大,而买其它品牌的手机的概率会更小[3]。又比如大学课程推荐领域,学生选择课程时,因为课程和课程之间存在关联,所以选择课程集合需要考虑先决条件,例如《线性代数》是《矩阵论》的先决条件。Xu等人以先决条件作为选课的基础,为大学生提供了在尽早满足毕业条件的要求下,绩点较高的推荐内容[4]。近年来,虽然越来越多的学者开始研究如何将深度学习和推荐系统更好的融合,但在推荐领域依旧存在数据稀疏、冷启动等问题。通过知识图谱技术所刻画的用户、物品画像,既可以直接用于推荐系统,也可以作为辅助信息结合深度学习方法进行推荐。该技术不仅能够有效地解决数据稀疏、冷启动等问题,其中,基于路径的知识图谱推荐算法还使得推荐结果具备一定的可解释性。
因此,我们以护肤品搭配为研究领域,着重考虑顺序推荐中物品与物品之间的约束信息,通过知识推理结合约束信息,对不同物品之间的搭配给予可行性答案,并给出推荐的依据和理由。
本文共分为五章,第二章知识图谱的设计,围绕构建知识图谱中信息约束和知识补充。第三章可解释性模块的设计,主要研究如何将信息约束融合知识推理对推荐可行性方案提供一定的解释。第四章实验,对可解释性模块进行了实验对比和分析,验证了我们提出方案的可行性。第五章结束语,包含对工作的总结以及对未来工作的展望。
我们将利用描述实体与实体之间关系的知识图谱技术,定义类与类、实例与实例之间的关系,该技术不仅能够通过描述实体间的关系来增强信息语义表达能力,还具备推理能力以及一定的可解释性。由于没有相关领域的开放知识图谱,因此本章利用当前技术自行设计并构建了一套完整的护肤品知识图谱。
知识图谱构建的流程如图1 所示。依据设计的本体,对目前Kaggle 网站公开的Sephora 数据集 的缺陷以及理想数据集需求进行了分析,本文设计使用深度爬虫策略进行信息获取和信息抽取,利用多标签文本分类技术对缺失的信息进行了补全。最终的数据集整理为嵌套字典类型的JSON 键值对格式,我们将物品名称作为Key,将其成分列表、适合的肤质等其余属性作为Value。字典类型不仅可以避免实体对齐,也可以在查询、读取数据时拥有较低的时间复杂度。最终所构建的数据集被分为了护肤品和成分数据集 两个JSON 文件,利用自动化脚本将其以资源描述框架(Resource Description Framework, RDF)的形式存储于Neo4j 图形数据库中。
为了更清楚地表达物品与物品之间存在的约束信息,描述护肤品和成分、功能之间的关系,除了数据集中本身存在的属性三元组中的关系,本文额外设计增强关系work well with 以及互斥关系in conflict with 来表示物品实例之间的约束信息。其中,work well with 表示该两种物品可以进行搭配并且具备良好的反应;in conflict with 表示物品之间的互斥关系。在避免因使用护肤品过程中出现不良反应的几率时,用户不仅需要了解成分的作用,还需要了解成分之间的搭配关系。如若忽略以上两种因素,可能会造成某种程度的损失,例如花费高昂的护肤品使用之后反而达不到预期效果,或者叠加产品的使用反而会让皮肤变得敏感脆弱等情况。
图1:知识图谱构建流程图
图2:不同类别物品之间的约束关系
表1:推理规则设计
表2:肤质影响搭配结果
表3:多类别不可搭配结果
通过人工采集知识的方式,我们对2.1 节已存在的成分实体、肤质实体,进行知识补充。主要包含成分之间关系添加和肤质关系添加两个维度。对于第一个维度,我们在视黄醇和维生素C、酒精和蛋白质等不能搭配使用的成分实例之间建立互斥关系,在视黄醇和烟酰胺等成分实例之间建立增强关系。对于第二个维度,考虑到成分表中当一些防腐剂、香精等危险系数较高的成份如果排序靠前,敏感性肌肤的人群需要谨慎选择,因此需要在甲基氯异噻唑啉酮等刺激性较强的防腐剂和敏感肌肤质中建立互斥关系。
基于上述思路,本文构建的知识图谱包含5252 个实体,5 种类别的关系,共计38841 条。类别关系包括:has ingredients 物品包含的成分关系、suits for 物品适合的肤质关系、has effect 成功功能关系、in conflict with 互斥关系和work well with 增强关系。
在护肤品顺序搭配的过程中,为确定搭配是否合理,本文研究设计了一套合理的算法,对知识图谱中的知识进行推理,并将推理的结果可视化输出,为用户提供解释功能。
在知识图谱构建的过程中,我们在成分实体之间建立了物品与成分之间的包含关系,以及互斥和增强关系。为了增强可解释性,我们提出关系的传递性,将该关系由成分传递到物品实体中。关系传递性指:如果用大写字母A、B 代表护肤品中某两种实体、小写字母a、b 表示成分实体,那么可以根据A 拥有成分a,B 拥有成分b,而a 和b 具备增强关系推理出:A 和B 也具备增强关系。互斥关系同理,如表1 所示。
在具备约束关系顺序推荐的过程中,物品间的约束关系尤其重要。所以需要在用户提供肤质信息的前提下,根据用户想要指定搭配的种类和名称,进行以下2 个步骤的推理,并以RDF 记录该约束信息。
3.2.1 物品与用户肤质间的互斥
肤质类型包括正常肌肤、油性肌肤、干性肌肤、混合型肌肤以及敏感型肌肤5 大类,我们考虑到正常肌肤、油性肌肤、干性肌肤、混合型肌肤两两互斥,而敏感肌除了和正常肌肤互斥外,和其余肌肤可以相交的性质,即肤质类型可以组合成干性肌肤和敏感肌肤混合类等。依据肤质性质,我们考虑搭配列表中的物品是否与肤质存在suits for 关系的路径,如果路径可达则保留该物品,否则,我们初步判定该物品不符合用户需求。此外我们需要利用已获取的知识帮助我们进行知识推理,如某个物品含有有种成分,该成分与用户肤质信息具备in conflict with 的互斥关系,我们可以则认为出:该物品并不适合此肤质类型的用户。
3.2.2 物品和物品之间存在的约束
在推理过程中,我们需要对不同类别的子集在知识图谱中进行约束关系查询,约束关系包括互斥关系和增强关系。本文利用反向推演的思想,当且仅当不同类别产品之间不存在in conflict with 的路径,我们则认为两种产品之间不会产品互斥影响,产品可以进行搭配使用。如若如果存在增强关系,则直接以RDF 记录该信息。
经过上一步,我们可以依据约束结果的RDF 信息,对搭配内容进行判定:当且仅当不存在任何互斥条件时,该搭配方案方能被认为具备可行性。对具备约束关系的方案进行可解释性输出时,需要结合3.1 中利用关系的传递性制定推理规则进行推理。如图2,假设用户目前的需要判断的种类包括:清洁产品、护肤水、面霜,物品名称依次为“Miracle Water Micellar Cleanser”,“The True Tincture Essence Chamomile”,“Active Moist Moisturizer”。
从图2 中我们可以看出,“Miracle Water Micellar Cleanser”拥有成分“Retinol”和“Niacinamide”,“The True Tincture Essence-Chamomile”包含成分“Niacinamide”,“Niacinamide”成分和“Retinol”具备增强关系,为此可以推理出清洁产品“Miracle Water Micellar Cleanser”和护肤水“The True Tincture Essence-Chamomile”具备增强关系,一起使用的效果会更好。而由于成分“Niacinamide”和成分“Di-c12-13alkymalate”互斥,所以可以推理出,护肤水“The True Tincture Essence-Chamomile” 和 面 霜“Active Moist Moisturizer”互斥。由于存在互斥关系,因此该方案不可行。虽然该洗面奶和护肤水具备增强关系,但是与面霜互斥,因此该方案仍为不推荐的方案。此外,通过对互斥和增强的相关成分三元组信息的输出,也可以帮助用户进行更好地理解推荐原因。
为了验证本文方法的可行性,假设用户属于干性敏感肌肤质,在指定护肤水是否可用的情况下进行测试,实验结果如表2 所示。可以发现,该护肤水中的成分”Diazolidinyl Urea”,敏感肌不适用,因此该搭配不可行。
针对清洁产品、护肤水、面霜三种不同类别的物品搭配,假设用户属于干性非敏感肌,实验结果如表3 所示。结果判定为该三种物品不能一起搭配,根据解释原因我们可以得到:虽然清洁产品和护肤水具备增强关系,但是护肤水和面霜存在互斥关系。因此在这种情况下,用户可以更换面霜,来搭配清洁产品和护肤水。
通过可解释性推理增加模型的可信度,用户可以更加清楚地了解模型判断的原因,从而更好地进行方案选择。在具备强烈约束关系的顺序推荐中,可以利用知识图谱技术,为推荐结果提供可解释性。后续的研究内容将围绕对解释语句进行权重分配调节的研究与设计,凝练输出内容。