基于图的上下文感知推荐系统详解
1. 上下文信息的表示
在基于内容和协同过滤的方法中,用户与物品的交互(如购买、点击、查看、评分、观看等)通常用二维矩阵(用户×物品,即 U x I 数据集)来表示,这种矩阵也能轻松用二分图表示,其中一组顶点代表用户,另一组代表物品,交互通过用户(事件主体)和物品(事件客体)之间的关系来建模。
但在上下文感知推荐系统中,每个交互事件包含更多信息。它不仅由用户和物品描述,还包括所有能为该行为提供上下文的环境信息。例如,用户晚上在家和孩子一起看电影,其上下文信息包括:
- 时间:晚上、工作日
- 同伴:孩子
- 地点:家
这只是描述“观看”事件的部分相关信息,其他信息还可能有使用的设备、用户的心情、观看者的年龄或场合(约会夜、派对、孩子睡前电影等)。有些变量是离散的(如设备和地点,有明确的值集),有些是连续的(如年龄这样的数值),对于连续变量,通常最好进行离散化处理,比如将年龄划分为 0 - 5、6 - 14、15 - 21、22 - 50 和 50 岁以上等区间,这取决于推荐引擎的具体需求。
最终的数据集作为推荐过程的输入,不能再用简单的二维矩阵表示,而需要 N 维矩阵,其中两维是用户和物品,其他维度代表上下文。在上述例子中,数据集是五维矩阵:dataset = 用户×物品×地点×同伴×时间。
每个交互或事件不能仅用两个元素及其关系来描述,在所有上下文信息都可用的最佳情况下,还需要另外三个元素。这意味着不能用二分图中的简单关系来表示事件,若要表示五个顶点之间的关系,需要超图,但在大多数图数据库(包括 Neo4j)中无法表示 n 顶点关系。
解决方案是将事件“实体
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



