摘要: Python技法3:匿名函数、回调函数和高阶函数 本章我们讲述匿名函数、回调函数和高阶函数在Python中的各种应用。我们会讨论在Python的回调函数的使用中可能遇到的各种陷阱和难点,同时也会介绍如何functools包中的partial函数来修改回调函数的参数个数,该方法广泛应用于Python的各大库和框架中。 阅读全文
posted @ 2021-10-20 09:51 lonelyprince7 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 数值最优化:一阶和二阶优化算法(Pytorch实现) 最优化问题指的是找出实数函数的极大值或极小值,该函数称为目标函数。 由于定位f(x)的极大值与找出-f(x)的极小值等价,在推导计算方式时仅考虑最小化问题就足够了。极少的优化问题,比如最小二乘法,可以给出封闭的解析解(由正规方程得到)。然而,大多数优化问题,只能给出数值解,需要通过数值迭代算法一步一步地得到。按照不同分类标准,可分为有约束和无约束优化、线性和非线性规划、 凸优化和非凸优化等。 阅读全文
posted @ 2021-10-17 20:41 lonelyprince7 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 数值分析:矩阵奇异值分解(Numpy实现) 矩阵的奇异值分解在矩阵分析中有大量应用,特别适用于压缩目的的矩阵分析。奇异值分解还充分应用于数据降维,即将数据投影到低维空间。在推荐系统中,奇异值分解可用于得到用户和物品的隐向量,不过传统奇异值分解不适用于解决大规模稀疏矩阵的矩阵分解,此时梯度下降法成为了矩阵分解的主要方法,这部分内容我们会在推荐系统专栏中进行讲解。 阅读全文
posted @ 2021-10-16 22:58 lonelyprince7 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 数值分析:幂迭代和PageRank算法(Numpy实现) 计算矩阵特征值是一个经典数值计算问题,而很多相关方法都是基于幂迭代的基。如该思想的一个复杂版本被称为QR算法,可以计算出典型矩阵所有的特征值。幂迭代的动机是与矩阵相乘可以将向量推向主特征值向量的方向,其在工业界的一大应用就是PageRank算法。PageRank算法作用在有向图上的迭代算法,收敛后可以给每个节点赋一个表示重要性程度的值,该值越大表示节点在图中显得越重要。 阅读全文
posted @ 2021-10-14 11:28 lonelyprince7 阅读(122) 评论(2) 推荐(0) 编辑
摘要: Python技法2:函数参数的进阶用法 本文主要介绍Python参数的一些进阶用法。包括位置参数和关键字参数的概念、接受任意数量的参数、keyword-only参数及其在项目中的运用、可选参数(带默认值的参数)等。并介绍了一些使用中的陷阱和误区,帮助大家写出更pythonic的代码。 阅读全文
posted @ 2021-10-13 12:08 lonelyprince7 阅读(235) 评论(0) 推荐(1) 编辑
摘要: 统计学习3:线性支持向量机(Pytorch实现) 上一章我们所定义的“线性可分支持向量机”要求训练数据是线性可分的。然而在实际中,训练数据往往包括异常值(outlier),故而常是线性不可分的。这就要求我们要对上一章的算法做出一定的修改,即放宽条件,将原始的硬间隔最大化转换为软间隔最大化。该问题最终可以写成无约束优化的形式,目标函数由合页损失函数和正则项构成。合页损失函数处处连续,此时可以采用基于梯度的数值优化算法求解(梯度下降法、牛顿法等)不过,此时的目标函数非凸,不一定保证收敛到最优解。 阅读全文
posted @ 2021-10-12 21:08 lonelyprince7 阅读(130) 评论(0) 推荐(0) 编辑
摘要: Python技法1:变长和定长序列拆分 Python中的任何序列(可迭代的对象)都可以通过赋值操作进行拆分,包括但不限于元组、列表、字符串、文件、迭代器、生成器等。不过如果我们想从可迭代对象中分解出$N$个元素,但如果这个可迭代对象长度超过$N$,则会抛出异常"too many values to unpack"。针对这个问题的解决方案是采用"*"表达式。 阅读全文
posted @ 2021-10-09 22:12 lonelyprince7 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 因果推断-解决推荐系统公平性的新思路 近年来推荐系统公平性成为新的热点,在所有解决公平性问题的方法中,因果推断显得格外靓眼。我们以论文《Recommendations as treatments: Debiasing learning and evaluation》[1]做为引入,来看看因果推断是怎么应用在推荐系统公平性研究中的。该论文的思想如下:从因果推断的角度看待推荐问题,我们可以认为在推荐系统中给用户曝光某个商品类似于在医学中给病人施加某种治疗方式。 阅读全文
posted @ 2021-10-09 08:13 lonelyprince7 阅读(297) 评论(0) 推荐(1) 编辑
摘要: 推荐系统公平性论文阅读(六) 做为最后一篇论文阅读记录,我决定对我目前为止粗读和精读的论文进行一次总结,然后陈述一些个人对该研究领域的见解和想法。首先,总结一下论文,推荐系统中的偏差和不公平现象是随着推荐算法的诞生就与生俱来的,而不是人为故意产生的。目前我读过的论文中包括的一些典型的偏差和其主要的解决方案包括:人口平等(Demographic parity)、位置偏差(Position bias)、曝光偏差(Exposure bias)、选择偏差(Selection bias)、曝光偏差(Exposure bias)、流行度偏差(Popularity bias)。 阅读全文
posted @ 2021-10-08 22:35 lonelyprince7 阅读(22) 评论(0) 推荐(1) 编辑
摘要: 推荐系统公平性论文阅读(五) 这几天我的主要任务是对论文《Towards Long-term Fairness in Recommendation》中所描述的算法进行编程实现,然后测试该算法的效果并记录。以下分模型算法细节实现、数据集、模型评估准则、测试结果记录四个部分来描述我的工作。 由论文描述可知,论文算法最核心的部分就是一个带约束优化问题的求解,该问题被论文作者称为约束策略优化问题。论文中提到该问题具体的求解算法可参考另一篇论文《Constrained policy optimization》。我查阅了另一篇论文,该论文中详细地论证了这类问题的求解方法。 阅读全文
posted @ 2021-10-08 16:21 lonelyprince7 阅读(159) 评论(0) 推荐(0) 编辑