嵌入查找(Embedded Lookup)

简介: 嵌入查找(Embedded Lookup)是一种机器学习技术,它通过将输入数据映射到低维空间,然后在该空间中进行查找。这种技术可以提高搜索和匹配的速度,尤其是在大规模数据集上

嵌入查找(Embedded Lookup)是一种机器学习技术,它通过将输入数据映射到低维空间,然后在该空间中进行查找。这种技术可以提高搜索和匹配的速度,尤其是在大规模数据集上。嵌入查找通常用于以下场景:

  1. 词向量:将文本转换为数值向量,然后在词向量空间中进行查找。这可以用于词义消歧、词性标注等自然语言处理任务。
  2. 图像特征:将图像的局部特征映射到低维空间,然后在该空间中进行查找。这可以用于图像检索、目标检测等计算机视觉任务。
  3. 语音特征:将语音信号转换为数值向量,然后在该空间中进行查找。这可以用于语音识别、说话人识别等语音处理任务。
    要使用嵌入查找,需要进行以下步骤:
  4. 数据预处理:对输入数据进行预处理,例如文本数据需要进行分词、去停用词等操作,图像数据需要进行归一化等操作。
  5. 嵌入学习:使用深度学习模型(如词向量模型、卷积神经网络等)将输入数据映射到低维空间。这可以是一个连续的数值空间,也可以是一个离散的编码空间。
  6. 索引构建:在低维空间中构建索引,以便快速查找。这可以通过 k-d 树、FLANN(快速最近邻搜索)等方法实现。
  7. 嵌入查找:利用构建的索引,在低维空间中查找与给定查询数据最接近的数据。
    总之,嵌入查找是一种将输入数据映射到低维空间,并在该空间中进行查找的机器学习技术。它广泛应用于自然语言处理、计算机视觉和语音处理等领域。通过数据预处理、嵌入学习、索引构建和嵌入查找等步骤,可以实现高效、快速的搜索和匹配。

Ch 11: Concept 02
Embedding Lookup
Import TensorFlow, and begin an interactive session

import tensorflow as tf
sess = tf.InteractiveSession()
Let's say we only have 4 words in our vocabulary: "the", "fight", "wind", and "like".

Maybe each word is associated with numbers.

Word    Number
'the'    17
'fight'    22
'wind'    35
'like'    51
embeddings_0d = tf.constant([17,22,35,51])
Or maybe, they're associated with one-hot vectors.

Word    Vector
'the '    [1, 0, 0, 0]
'fight'    [0, 1, 0, 0]
'wind'    [0, 0, 1, 0]
'like'    [0, 0, 0, 1]
embeddings_4d = tf.constant([[1, 0, 0, 0],
                             [0, 1, 0, 0],
                             [0, 0, 1, 0],
                             [0, 0, 0, 1]])
This may sound over the top, but you can have any tensor you want, not just numbers or vectors.

Word    Tensor
'the '    [[1, 0] , [0, 0]]
'fight'    [[0, 1] , [0, 0]]
'wind'    [[0, 0] , [1, 0]]
'like'    [[0, 0] , [0, 1]]
embeddings_2x2d = tf.constant([[[1, 0], [0, 0]],
                               [[0, 1], [0, 0]],
                               [[0, 0], [1, 0]],
                               [[0, 0], [0, 1]]])
Let's say we want to find the embeddings for the sentence, "fight the wind".

ids = tf.constant([1, 0, 2])
We can use the embedding_lookup function provided by TensorFlow:

lookup_0d = sess.run(tf.nn.embedding_lookup(embeddings_0d, ids))
print(lookup_0d)
[22 17 35]
lookup_4d = sess.run(tf.nn.embedding_lookup(embeddings_4d, ids))
print(lookup_4d)
[[0 1 0 0]
 [1 0 0 0]
 [0 0 1 0]]
lookup_2x2d = sess.run(tf.nn.embedding_lookup(embeddings_2x2d, ids))
print(lookup_2x2d)
[[[0 1]
  [0 0]]

 [[1 0]
  [0 0]]

 [[0 0]
  [1 0]]]
目录
相关文章
完美简单永久解决WEKA中导入arrf文件(包含中文字符)出现“unable to determine structure as arff...”错误
完美简单永久解决WEKA中导入arrf文件(包含中文字符)出现“unable to determine structure as arff...”错误
320 0
完美简单永久解决WEKA中导入arrf文件(包含中文字符)出现“unable to determine structure as arff...”错误
|
3月前
|
传感器 人工智能 开发框架
LangChain 构建问题之tools列表中search_by_exact工具的添加如何解决
LangChain 构建问题之tools列表中search_by_exact工具的添加如何解决
14 0
|
开发工具 数据库 C++
Revit 2019 LookUp安装详解
Revit 2019 LookUp安装详解
Revit 2019 LookUp安装详解
|
BI
如何在. doc文件中动态嵌入table
如何在. doc文件中动态嵌入table
96 0
如何在. doc文件中动态嵌入table
ETL(四):LOOKUP查找转换组件的使用(一)
ETL(四):LOOKUP查找转换组件的使用(一)
ETL(四):LOOKUP查找转换组件的使用(一)
ETL(四):LOOKUP查找转换组件的使用(二)
ETL(四):LOOKUP查找转换组件的使用(二)
ETL(四):LOOKUP查找转换组件的使用(二)
|
机器人
Robot Framework(6)- BuiltIn 测试库常用的关键字列表
Robot Framework(6)- BuiltIn 测试库常用的关键字列表
257 0
Robot Framework(6)- BuiltIn 测试库常用的关键字列表
|
机器人
Robot Framework(14)- Variables 表的详细使用和具体例子
Robot Framework(14)- Variables 表的详细使用和具体例子
257 0
Robot Framework(14)- Variables 表的详细使用和具体例子
|
测试技术
三种属性操作性能比较:PropertyInfo + Expression Tree + Delega“.NET技术”te.CreateDelegate
  在《上篇》中,我比较了三种属性操作的性能:直接操作,单纯通过PropertyInfo反射和IL Emit。本篇继续讨论这个话题,我们再引入另外两种额外的属性操作方式:Expression Tree(这和IL Emit基本一致)和通过Delegate的静态方法CreateDelegate创建相应的委托进行属性的赋值和取值。
1112 0
|
测试技术
三种属性操作性能比较:PropertyInfo + Expression Tree + Del“.NET研究”egate.CreateDelegate
  在《上篇》中,我比较了三种属性操作的性能:直接操作,单纯通过PropertyInfo反射和IL Emit。本篇继续讨论这个话题,我们再引入另外两种额外的属性操作方式:Expression Tree(这和IL Emit基本一致)和通过Delegate的静态方法CreateDelegate创建相应的委托进行属性的赋值和取值。
1004 0