分类与 AI

分类作为机器学习或深度学习的基础任务之一,相信任何一位算法工程师都能说得头头是道。不过,能深入思考其背后涉及到的认知过程和机理的就凤毛麟角了。本文涉及到的思考部分从我 2017 年一开始接触人工智能与 NLP 就开始萌芽了,这源于我的切入点与正常人不同。由于个人经历关系,我一开始是从认知科学这个角度开始自己的工程师生涯的,刚开始看的论文也更加偏向于思考如何构建真正的人工智能。比如,Few-Shot 或 One-Shot Learning、因果推理、快速思考、学习如何学习,甚至开始思考语言学以及究竟什么是智能。很自然地也熟知了图灵、冯诺依曼、维特根斯坦。直至现在依然对这些理论相当沉迷,这也是我当初下定决心从事 AI 领域的原因。虽然目前从事 NLP 研发工作,但我对自己的定位一直都是 AI 工程师,AI 不应该被割裂,他从来都是个整体,作为成年人,我们自然是都要。

More

Wide and Deep Learning for Recommender System 论文笔记

推荐系统可以看作是一个搜索排序系统,其中 input 是一组用户和上下文信息,output 是排好序的商品列表。推荐系统的一个挑战就是同时达到 memorization(记忆化)和 generalization(泛化)。

  • memorization:
    • 大致可定义为学习特征或商品的频繁共现关系并探索相关性
    • 与用户已经执行操作的商品直接相关
    • 可以通过使用稀疏特征上的交叉乘积变换(cross-product transformation)有效地实现,如 AND(installed_app=netfix, impression_app=pandora)
  • generalization:
    • 基于相关性的传递性探索之前很少出现或没出现过的新特征组合
    • 倾向于提高推荐结果的多样性
    • 可以通过使用不太精细的特征增加泛化,如 AND(installed_category=video, impression_category=music),一般需要人工进行特征处理

More

矩阵分解

本文主要介绍推荐系统中的矩阵分解技术。之前在协同过滤 | Yam中分别提到过基于用户和商品的方法,它们分别基于相似用户和相似物品完成推荐。但是协同过滤有个很大的问题就是数据稀疏,以一个电商网站为例,可能大部分的商品都只有很少的用户购买,而热门商品又有很多人购买。这导致的结果就是难以找到相似的用户(基于用户的协同过滤)或头部效应(基于商品的协同过滤)。这一问题是协同过滤算法的天然缺陷,表现出来的其实正是 2-8 定律和马太效应,再往深了想,从客观角度看是因为信息不对称,主观角度看则是因为羊群效应。所以,很自然的想法就是将稀疏表征稠密化。稠密化表示也就意味着特征的多元化,直观来看自然是表征能力和泛化能力更强。矩阵分解正是这样的技术。

More

建模调参

通过前面的 EDA特征工程探索,想必应该已经对数据有了比较深入的了解,那么接下来就是利用之前所学来建模看看实战效果了。因为之前是系统性学习,所以并不一定所有的技术都要用到,而且建模应该是个结合对数据已有了解的基础上进行重新思考的过程。

本文分为以下几个部分:

  • 重新思考梳理 Pipeline 流程
  • 建模
  • 调参

More

特征工程

常听一句话说 “你还能玩儿出花来”,我觉得特征工程就是这么个把那些看上去普普通通的 “数据” 玩儿出花的过程。如果用 DIKW 模型(Data Information Knowledge Wisdom)来理解,Data 显然就是原始的一个个数据值,Information 就是对数据进行分析、处理后得到的具有一定意义的东西。

严格的定义如下:特征工程是对原始数据进行一系列工程处理,将其提炼为特征根,作为模型的输入。它旨在去除原数据中的杂质和冗余,使得模型与预测值之间能够以此建立联系。

More