词袋模型和向量空间模型(NLP与推荐)

词袋模型

  • 词袋模型假设:
  • 文档由词组成
  • 词之间是相互独立,无序
  • 只保留词的次数(词频),丢弃其他信息

词袋模型可以做:

1、候选集召回:用关键词连接用户和物品

2、排序特征:直接用作模型特征

图片文字说明

  • 用户 --》 物品的相关性:用户与词的相关性 * 词与物品的相关性
  • 比如说item1和item2都含有‘电脑’


向量空间模型

问题:给定两个物品的描述,如何度量他们之间的关系

核心思想

  • 把一组对物品的描述向量化
  • 向量点乘(推荐系统的万能公式---余弦相似度(归一化的向量内积))
  • 点乘结果越大,表示相关性越强

图片文字说明

为什么q 【1,1】和d2【3,3.3】,余弦角度小,但是距离长,因为模大

有可能【1,1】这篇文章短一点,【3,3.3】这个长一点

万能的余弦公式:

  • 0-1值,连续值,离散值都可以用
  • 内容、行为也可以用
  • 可以调节,加维度计算或者惩罚系数等
  • 可解释性强(总体相关性等于分量相关性的叠加,向量内对应维度相乘
  • 且叠加方式可以调节(加权重)
  • 使得计算相关性变得算法模块化(1、找到物品描述。2、计算相关性)

TF-IDF 词袋模型的扩展

TF => TF(词频)-IDF(DF作inverse,将全局信息加入度量

TF的弊端:’的,了‘等词出现次数高,且相关性无。

TF-IDF:一个词对文档的重要程度:忠诚程度,只对我出现次数多,不在别的文档那出现

变种:


  1. 出现100次,和出现100000的相关性相差不大
  2. 归一化就是把文章长度进行缩放,词频最高的词频去做归一化,并不能因为一篇文章的长度更长就说出现次数多的词相关性高
  3. N-gram,特征变多但是空间变多了

图片文字说明

文本作模型特征:

  • one hot id :tf.feature_column.categorical_column_with_vocabulary_list
  • 控制id数量:tf.feature_column.categorical_column_with_hash_bucket
  • hash_buckets_size
  • 罕见词处理:1、忽略。2、局部降维:词性、归类

图片文字说明


词袋模型的问题:

  • 多义词:’羽绒服‘无法召回‘棉衣’
  • 纬度高,计算慢
  • 信息量小,一个词就这个大,不像句子表达的多。
  • 不稳定,和文本数据本身有关系

欢迎技术探讨