代码改变世界

随笔分类 - 算法

推荐系统实战

2012-09-26 12:02 by zhenjing, 11096 阅读, 收藏, 编辑
摘要:所有的推荐算法都可看成是基于特征向量空间和特征加权矩阵的推荐算法。 当特征向量的维度很大时,基于特征向量空间和特征加权矩阵的推荐算法计算复杂度将很大。常见的做法是采用降维技术,比如使用minhash(simhash)。另一种做法是先聚类,将N维的特征空间,转变成M维的特征空间(M<N)。比如在ItemCF算法中,可对物品聚类,然后采用M类的物品作为特征。当然降维后需要计算权值矩阵。 实际推荐系统通常采用多种推荐算法,并根据用户的实时行为反馈调整用户的特征向量(特征的加权系数),进而融合各个推荐算法的推荐结果,在此基础上过滤不要的推荐项,最后结合用户使用场景调整推荐结果排名,给出最终推荐结果。 阅读全文

散列冲突与作为特征值的散列

2011-06-09 09:26 by zhenjing, 2326 阅读, 收藏, 编辑
摘要:散列函数是一种从任何一种数据中创建小的数字“指纹”的方法。密码学上的 Hash 又被称为"消息摘要(message digest)"。简言之,“指纹”、“信息摘要”本质就是数据的特征值,即散列函数可用于提取数据的特征值。作为特征值,哈希可用于判断原始数据是否不同,但无法判断原始数据是否相同。这决定了哈希值无法唯一表征原始数据。常见的哈希表均需要通过判断原始数据来判断是否冲突,并引入相应的解决办法。哈希表最好的应用场合是有限输入的预构造集,如字典;哈希函数则适用于判断数据是否不同的场合,如分类、加密、校验等。 阅读全文

常见算法笔试或面试题

2010-10-18 10:12 by zhenjing, 46999 阅读, 收藏, 编辑
摘要:3年前,找完工作后,总结的算法笔试面试题,首次公开。共25道题,有些题曾在面试中多次被问过,算是经典题目。 阅读全文