基于知识的推荐系统
一些物品如地产、房屋的的推荐上,用户没有足够的评分,基于知识的推荐系统以一种交互的方式向用户推荐符合其要求的物品。
适用场景:
- 用户提供需求
- 物品过于复杂无法获取足够的评分
- 时间敏感的
基于限制的推荐系统
用户在这样的推荐系统中指出他们对于物品属性的需求、限制,在用户输入一定的需求后,推荐系统将这些需求根据知识转化为规则,并根据这些规则返回满足的物品。
推荐系统需要一些额外的规则,将用户需求与物品描述匹配。
以用户购买房屋为例,
- 用户定制的属性可能为,婚姻状态、城市还是郊区、卧室数目、卧室最大尺寸、最高价格。
- 这些属性一部分反应了用户自身的属性(人口统计学特征),另一半反应了用户对于物品的需求,。
- 这些需求一般是在用户与系统的交互对话框完成的。
- 过滤条件,将用户需求转化为规则与物品描述匹配
- 城市还是郊区 = 城市 =》位置 = {相关位置}
- 婚姻状态 = 诞生 =〉最小卧室 〈= 5
返回相关物品
- 规则转化,在知识库中查找激活的相关规则并转化
家庭规模≥5→最小卧室≥3(1)
家庭规模≥5→最小卧室≥2(2)
最小卧室≥3→卧室≥3(3)
最小卧室≥3→卧室≥2(4)
最小卧室≥3→价格≥100000(5)
- 将规则结合,形成数据库查询
(卧室)≥3∩(卧室)≥2∩(价格≥100000)∩(编码=10485)
不同用户输入相同的条件,将会得到相同的结果
返回物品排序
最简单的排序算法是按照某一数值属性进行排序,如按照价格进行排序,这种简单排序算法忽略了其他属性。
加权算法
U(V)=∑j=1dwj⋅fj(vj)(6)
基于用例的推荐系统
在基于用例的推荐系统中,用户在键入属性之后,系统不会去严格意义上的寻找满足要求的物品,而是通过相似函数返回相关物品。
排序函数:
f(T,X)=∑i∈SwiSim(ti.xi)∑i∈Swi(7)
wi
衡量了了属性i的重要性
相似函数:
Sim(ti,xi)=1−|ti−xi|maxi−mini(8)
Sim(ti,xi)=max(0,1−|ti−xi|3σi)(9)
越大越好的属性
Sim(ti,xi)=max(0,1−|ti−xi|maxi−mini)+α⋅I(xi>ti)⋅|ti−xi|maxi−mini(10)
越小越好的属性
Sim(ti,xi)=max(0,1−|ti−xi|maxi−mini)+α⋅I(xi<ti)⋅|ti−xi|maxi−mini(11)