zoukankan      html  css  js  c++  java
  • 推荐系统公平性论文阅读(三)

    这几天我的主要任务是调试和运行之前根据论文《Learning Fair Representations for Recommendation: A Graph-based Perspective》所编写的代码,然后测试该模型的效果并记录。以下分数据集描述、模型评估策略、超参数调整、测试结果记录四个部分来描述我的工作。

    数据集描述

    MovieLens-1M 是一个推荐系统的基准数据集,这个数据集包括6040个用户对于近4000部电影的近1百万条评分信息。用户具有三个类别型属性,包括性别(2种类别),年龄(7种类别)和职位(21个类别)。效仿之前的基于公平性的推荐系统,我们在测试时按照9:1的比例划分训练集和测试集。
    Lastfm-360K是一个音乐推荐数据集,包括了来自音乐网站Last.fm的用户对音乐制作人的评分。这个数据集包括大约36万个用户对29万个音乐制作人的1700万条评分信息。我们将用户播放音乐的次数做为用户的评分值。因为评分的值可能在一个大的范围内,我们先对进行log对数变换,然后将评分规范化到1和5的范围之间。用户有着自己的用户画像,其信息包括性别属性(2种类别)、年龄属性(7种类别)。和许多经典推荐系统的数据划分策略一样,我们将训练集、验证集、测试集划分为7:1:2。

    模型评估策略

    为了评估推荐系统的表现,我们使用均方根误差(RMSE)。为了有效度量我们算法的公平性。我们计算了20%测试用户的公平性表现。
    因为二值型特征(比如性别)在各数据集上都不平衡,有着70%的男性和30%的女性,我们使用AUC度量来度量二分类的表现。对于多值型属性,我们使用micro-averaged F1来测量。
    AUC或者F1能够被用于测量是否敏感的性别信息在表示学习的过程中被暴露。这个这个分类的度量值越小,则说明系统的公平性越好,泄露的敏感信息更少。
    因为我复现的这篇论文中的模型是“上游模型不可知”的(也就是说为了增强其泛用性,将上游模型看做黑盒模型来处理),并且能够被应用于许多多属性的推荐场景,故我们按照不同的模型评价设定设计了许多测试。
    首先,我们选择了目前最先进的(state-of-the-art)图卷积网络(GCN)的推荐模型做为我们的基准模型。因为基于GCN的推荐模型最开始被设计成基于排名的损失函数,我们将其修改为基于评分的损失函数,并在图卷积的过程中添加了更详细的评分值来方便我们的设置。

    超参数调整

    在实际的模型实现中,我们选择多层感知机(MLP)做为每个过滤器和判别器具体的架构,过滤器的embedding size被设置为(D=64)
    对于MovieLens数据集,每个过滤器网络有3层,其中隐藏层的维度分别是128和64。判别器有4层,隐藏层的维度分别是16和8和4。
    对于Lastfm-360K数据集,每个过滤器网络有4层,隐藏层维度分别为128,64,32。每个判别器
    有4层,隐藏层维度分别是16,8和4。
    我们使用LeakyReLU做为激活函数。在MovieLens数据集上将平衡参数(lambda)设置为0.1,在Lastfm-360K数据集上将平衡参数设置为0.2。所有目标函数中的参数都是可微的。我们使用Adam优化器,将初始学习率调整到0.005。

    测试结果记录

    下面的两张表是我们对模型的测试结果。在测试的过程中,为了简单起见,我们采取了简单的自中心图结构表示,并用一阶加权集成。根据模型的测试结果我们可以看出,GCN模型如果直接考虑敏感信息过滤器会将推荐系统的表现降低5%到10%,因为我们需要排除任何对于打分有用的隐向量维度,但是可能会暴露敏感信息。
    在MovieLens-1M数据集上的训练过程如下:

        ga0--train-- 383.52958726882935
        epoch:1 time:383.5  train_loss f:-192.2718 d:19.5616val_loss f:-192.8258 d:19.2919
        val_rmse:0.9045  test_rmse:0.895 
        train data is end
        ga0--train-- 360.9422023296356
        epoch:2 time:360.9  train_loss f:-191.72 d:19.4652val_loss f:-200.0517 d:20.0125
        val_rmse:0.7063  test_rmse:0.6894
        train data is end
        ga0--train-- 363.16574025154114
        epoch:3 time:363.2  train_loss f:-200.8263 d:19.2499val_loss f:-203.8944 d:20.4799
        val_rmse:2.8324  test_rmse:2.8068
        train data is end
        ga0--train-- 355.92360401153564
        epoch:4 time:355.9  train_loss f:-189.3184 d:19.3741val_loss f:-180.7054 d:18.0778
        ga0 clf_age/4
        no model save path
        val_rmse:0.7821  test_rmse:0.7787age f1:0.4683	0.4683 0.4683 0.4683 
        train data is end
        ga0--train-- 356.7487156391144
        epoch:5 time:356.7  train_loss f:-198.0661 d:19.8271val_loss f:-190.4692 d:19.0536
        ga0 clf_age/5
        no model save path
        val_rmse:0.7407  test_rmse:0.7326age f1:0.469	0.469 0.469 0.469 
    

    对于不同的自中心结构的不同摘要网络在数据集MovieLens-1M上的表现,这里的“常数”表示恒定的局部的函数聚集,“可学习的”表示参数可学习的聚集。

    敏感属性 RMSE AUC/F1
    性别 0.8553 0.8553
    年龄 0.8553 0.3948
    职业 0.8553 0.1556

    在Lastfm-360K数据集上的训练过程如下:

        ga0
        --------training processing-------
        train data is end
        ga0--train-- 380.44703578948975
        epoch:0 time:380.4  train_loss f:-200.3726 d:19.7304val_loss f:-193.2152 d:19.3319
        val_rmse:0.9439  test_rmse:0.9304
        train data is end
        ga0--train-- 383.52958726882935
        epoch:1 time:383.5  train_loss f:-192.2718 d:19.5616val_loss f:-192.8258 d:19.2919
        val_rmse:0.9045  test_rmse:0.895 
        train data is end
        ga0--train-- 360.9422023296356
        epoch:2 time:360.9  train_loss f:-191.72 d:19.4652val_loss f:-200.0517 d:20.0125
        val_rmse:0.7063  test_rmse:0.6894
        train data is end
        ga0--train-- 363.16574025154114
        epoch:3 time:363.2  train_loss f:-200.8263 d:19.2499val_loss f:-203.8944 d:20.4799
        val_rmse:2.8324  test_rmse:2.8068
        train data is end
        ga0--train-- 355.92360401153564
        epoch:4 time:355.9  train_loss f:-189.3184 d:19.3741val_loss f:-180.7054 d:18.0778
        ga0 clf_age/4
        no model save path
        val_rmse:0.7821  test_rmse:0.7787age f1:0.4683	0.4683 0.4683 0.4683 
        train data is end
    

    以下是在Lastfm-360K上的表现。

    敏感属性 RMSE AUC/F1
    性别 0.7358 0.5642
    年龄 0.7358 0.4953

    参考文献

    • [1] Wu L, Chen L, Shao P, et al. Learning Fair Representations for Recommendation: A Graph-based Perspective[C]//Proceedings of the Web Conference 2021. 2021: 2198-2208.
    数学是符号的艺术,音乐是上界的语言。
  • 相关阅读:
    为什么你改了我还看不见?
    一条SQL更新语句是如何执行的?
    一条SQL查询语句是如何执行的?
    为什么学习mysql
    读书并不只是向一个方向前进——《代码之外的生存指南》
    RabbitMQ在C#中的使用
    RFID技术与条形码技术的对比
    射频识别技术RFID
    通过IIS不能连接远程数据库的问题
    老板不断加需求、改需求的四种应对方法
  • 原文地址:https://www.cnblogs.com/lonelyprince7/p/15374094.html
Copyright © 2011-2022 走看看