Transformer——詞向量

詞向量

在自然語言處理任務中,模型的輸入大多為單個字或者詞。但是字詞都是自然語言的表述,對于以二進制為處理語言的計算機來說,其并不認識這個字詞。所以需要將字詞轉換為計算機認識的數據

轉換的方法有很多,我們接下來將介紹其中最簡單的一種:獨熱編碼,這是一種將字詞轉換為計算機可以識別的數字向量的方式。

注:為什么不可以使用Unicode編碼?其不也是唯一的嗎?
Unicode編碼是表示單個字的編碼方式,但是在預模型中,很多詞向量表示的是一個詞,比如:“我” “有” “一只” “貓”
其中“一只”是一個詞,其如果用Unicode編碼表示,其長度維度和其他字詞不一致。

One-Hot 獨熱編碼

獨熱編碼是一種將離散型(可以劃分為n個類別)的數據轉化為計算機能夠理解的方式,其基本思想是在 n n n維向量空間中,使用 n n n個單位向量,每個單位向量代表一個類別。也就是說,如果我們有 n n n個類別,那么我們就會有一個長度為 n n n的向量,其中有一個元素為1,其余元素為0。這個1的位置就代表了這個類別在向量中的位置。

下面是“我” “有” “一只” “貓”的獨熱編碼表示:

詞語一只
1000
0100
一只0010
0001

獨熱編碼雖然可以表示一個字詞,但是假如說我的詞庫非常大。為了讓每一個字詞都在其中有著唯一的表示,我每個字詞的表示就都是 n n n維的,這會帶來極大的存儲成本。同時,在獨熱編碼中,每個單詞都是由一個完全不同的向量表示的。這意味著相似的單詞,其向量表示完全不同。這就導致我們在計算獨熱編碼兩兩的相似度時,得到的歐氏距離都是相同的。

注1:詞庫:
也稱為詞匯表或字典,是用于自然語言處理(NLP)的基本工具之一。它是一個包含所有可能單詞的集合,每個單詞都有一個與之對應的索引。

注2:總結:獨熱編碼在高緯度計算語義信息表示上面有缺陷。

為了解決這個問題,我們需要引入一個新概念:詞向量

詞向量

詞向量是一種用來表示單詞的向量,它比獨熱編碼更高級。詞向量的長度通常比詞庫的大小要小得多,例如,我們可以用一個200維的向量來表示所有的單詞,而不是使用一個100,000維的向量。此外,詞向量可以捕捉到單詞之間的語義關系,例如,“貓”和“狗”的詞向量可能在向量空間中非常接近。

注:詞向量的語義關系捕獲
在自然語言處理(NLP)中,常見的詞向量訓練方法有Word2Vec、GloVe和FastText等。

  • 在Word2Vec算法中,它通過學習預測上下文,使得語義相近的詞在向量空間中靠得更近。
  • GloVe算法則是通過利用全局統計信息(即詞共現矩陣)來生成詞向量。這種方法可以捕獲到更豐富的詞語共現信息,因此可以更好地表達詞與詞之間的關系。
  • FastText算法則是通過考慮詞的上下文信息以及詞內部的字母級信息,從而更好地處理形態豐富的語言,以及處理詞典中沒有的詞。

詞向量是獨熱編碼的一種改進和優化,其可以由獨熱編碼 w x w_x wx?乘以權重矩陣 Q Q Q得到,公式如下:
w x ? Q = c x ( 詞向量 ) w_x*Q=c_x(詞向量) wx??Q=cx?(詞向量)
上面的例子,可能會得到如下的詞向量表示:

詞語維度1維度2維度3
0.10.30.2
0.20.40.1
一只0.40.10.3
0.30.20.4

注:權重矩陣Q
權重矩陣Q是通過模型訓練過程中的優化算法得到的。 以深度學習模型為例,權重矩陣Q是模型中的參數,通過反向傳播和梯度下降等優化算法,不斷調整這些權重,使得模型在訓練數據上的預測誤差最小。

word2vec

Word2Vec是Google于2013年提出的一種用于生成詞向量的兩層神經網絡模型。它的目標是根據給定的語境預測單詞或根據單詞預測語境。其主要用CBOW(Continuous Bag of Words)Skip-Gram模型來做預測語境。

  • Skip-Gram:輸入是一個詞,輸出是該詞周圍的一些詞。模型的目標是最大化給定單詞的情況下,其上下文詞出現的概率。適用于處理大型語料庫,因為它對罕見詞的處理效果比較好。
  • CBOW:和Skip-Gram模型剛好相反,輸入是某個詞的上下文,輸出是這個詞。模型的目標是最大化給定上下文的情況下,中心詞出現的概率。這種模型訓練速度更快,但對罕見詞的處理效果不如Skip-Gram。

假設我們有一個句子:“我有一只貓”,我們使用Skip-Gram模型,并設定窗口大小為2,那么對于每個詞,我們都會考慮它前后各兩個詞。
以詞"一只"為例,它前面兩個詞是"我"和"有",后面兩個詞是"貓"。那么,我們的訓練樣本就是(“一只”,“我”),(“一只”,“有”),(“一只”,“貓”)。在訓練過程中,我們的模型需要學習到這樣的信息:當"一只"出現的時候,“我”,"有"和"貓"是可能出現在它周圍的詞。

from gensim.models import Word2Vec# 訓練文本
sentences = [["我", "有", "一只", "貓"]]# 訓練模型
model = Word2Vec(sentences, min_count=1, window=2)# 打印"一只"的詞向量
print(model.wv["一只"])

注:我們的例子只有一個很短的句子,在實際應用中,Word2Vec通常需要在大量文本數據上進行訓練,才能得到有用的詞向量。

詞向量的局限性

詞向量雖然能夠捕獲詞與詞間的語義關系,但也存在一些局限性。例如,傳統的詞向量模型無法處理一詞多義的問題,因為它們都是為每個詞分配一個固定的向量。然而,最新的預訓練模型(如BERT、GPT等)通過引入動態詞向量的概念,成功解決了這個問題。在這些模型中,一個詞的向量表示會隨著其上下文的變化而變化,從而能夠捕獲到詞的多義性。

參考

  1. chat-gpt4
  2. 預訓練語言模型的前世今生

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718520.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718520.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718520.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Matlab深度學習】詳解matlab深度學習進行時間序列預測

🔗 運行環境:Matlab 🚩 撰寫作者:左手の明天 🥇 精選專欄:《python》 🔥 推薦專欄:《算法研究》 🔐#### 防偽水印——左手の明天 ####🔐 💗 大家…

bat文件的外部參數

bat執行時有兩種獲得參數的方法,一種是執行時在命令行中輸入,一種是運行時從鍵盤輸入。 從命令行輸入參數,使用兩個%中間包含數字表示,數字從1至9,命令行參數最多為9個。示例: echo off echo show %1%鍵盤…

力扣——盛最多水的容器

題目描述: 給定一個長度為 n 的整數數組 height 。有 n 條垂線,第 i 條線的兩個端點是 (i, 0) 和 (i, height[i]) 。 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 返回容器可以儲存的最大水量。 說明:…

最短路徑(2.19)

目錄 1.網絡延遲時間 弗洛伊德算法 迪杰斯特拉算法 2. K 站中轉內最便宜的航班 3.從第一個節點出發到最后一個節點的受限路徑數 4.到達目的地的方案數 1.網絡延遲時間 有 n 個網絡節點,標記為 1 到 n。 給你一個列表 times,表示信號經過 有向 邊的…

day32貪心算法 part02

貪心系列的時候,題目和題目之間貌似沒有什么聯系,是真的就是沒什么聯系,因為貪心無套路,沒有個整體的貪心框架解決一系列問題,只能是接觸各種類型的題目鍛煉自己的貪心思維。貪心只是一類題的統稱,并沒有什么固定套路。 122. 買賣…

Android NDK底層BUG,記錄:connect、socket(AF_INET, SOCK_STREAM, 0) 等系統套接字接口函數崩潰問題。

在 Android NDK 之中,看上去調用 connect、socket 函數是不會崩潰的,但這是否定的,它在特定的情況下存在必定的崩潰的問題。 但是這種情況放到MACOS、LINUX、WINDOWS都不會崩潰,而它崩潰的點出現在操作系統底層。 人們需要參考這…

香橙派企業信用問題-勸一個是一個,別買!!!

1. 背景 香橙派推廣旗下AI PRO 開發板,在B站做直播,一場直播兩個直播間,分別抽取一名觀眾,宣傳是場場送AI PRO開發板!!! 2. 收到獎品與宣傳不符合 3.咨詢群主:態度很傲慢&#xff0c…

MES的生產計劃管理與ERP的生產計劃管理到底有什么不同?

在制造業信息化的道路上,ERP系統和MES系統是兩個非常重要的信息化管理工具。大多數制造業企業往往首先考慮上ERP系統,經過一段時間的深度使用后,再引進MES系統進行報工或數采。但我們可以發現,這兩個系統都能進行生產管理&#xf…

數學建模團隊分工建議

文章目錄 引言數學建模概述數學建模團隊的組成與角色定位一、團隊組成與角色定位1.1 團隊成員1.2 角色定位 二、團隊協作方式 分工方案分工原則分工策略 按照任務流程分工數據收集與處理分工模型建立與優化分工結果分析與報告撰寫分工用代碼來表示這個過程 總結模塊目錄模塊一&…

詳細了解網絡通信流程、協議組成、編碼方式、數據傳輸方式和途徑、Http 協議的編碼、cookie的使用和提取路徑

詳細了解網絡通信流程、協議組成、編碼方式、數據傳輸方式和途徑、Http 協議的編碼、cookie的使用和提取路徑。 一、網絡通信簡介 現代的網絡傳輸介質以以太網鏈路居多,完整的網絡數據報結構大致如下。傳輸層及其以下的機制由操作系統內核提供,應用層由用戶進程提供,應用程…

上位機圖像處理和嵌入式模塊部署(qmacvisual學習1)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing 163.com】 雖然我們前面學習了很多的知識點,比如說在windows這邊,用qt寫界面,用opencv寫圖像處理代碼;在linux…

二維碼門樓牌管理系統技術服務:構建智慧城市的基石

文章目錄 前言一、標準地址設置規則二、門樓牌作為標準地址的法定載體三、二維碼門樓牌管理系統技術服務的優勢與應用前景 前言 在智慧城市建設的浪潮中,二維碼門樓牌管理系統技術服務以其高效、便捷的特性,逐漸成為城市管理的重要工具。本文將深入探討…

一張草圖直接生成視頻游戲,谷歌推出生成交互大模型

谷歌DeepMind的研究人員推出了,首個無需數據標記、無監督訓練的生成交互模型——Generative Interactive Environments,簡稱“Genie”。 Genie有110億參數,可以根據圖像、真實照片甚至草圖,就能生成各種可控制動作的視頻游戲。Ge…

項目可行性方案:人臉識別實現無感考勤的項目技術可行性方案

目 錄 1.引言 1.1編寫目的 1.2背景 2.可行性研究的前提 2.1要求 2.2目標 3.對現有系統的分析 3.1系統改進示意圖 3.2改進之處 3.3技術條件方面的可行性 4.結論 1.引言 1.1編寫目的 本報告編寫的目的是探究學校里對教室和辦公室內教師的人臉進行識別從而…

Linux --- 應用層 | HTTP | HTTPS

前言 前面寫的TCP/UDP客戶端在訪問服務端的時候,需要輸入ip地址和端口號才可以訪問, 但在現實中,我們訪問一個網站是直接輸入的一個域名,而不是使用的ip地址端口號。 比如在訪問百度 https://www.baidu.com/的時候, …

RocketMQ - 深入研究一下消費者是如何獲取消息處理以及進行ACK

1. 消費者組到底是個什么概念 消費者組的意思就是讓你給一組消費者起一個名字,比如有一個Topic叫“TopicOrderPaySuccess”,然后假設有庫存系統、積分系統、營銷系統、倉儲系統他們都要去消費這個Topic中的數據。 此時我們應該給這四個系統分別起一個消費組的名字,比如sto…

Linux:管道文件及相關API

目錄 前言一、管道文件1、基本概念2、匿名(無名)管道3、命名(有名)管道4、管道的特點5、思考:何時只能使用無名管道,何時又只能用有名管道?無名管道(匿名管道)適用的情況:有名管道(命名管道&…

2024最新AI系統ChatGPT網站源碼, AI繪畫系統

一、前言說明 R5Ai創作系統是基于ChatGPT進行開發的Ai智能問答系統和Midjourney繪畫系統,支持OpenAI-GPT全模型國內AI全模型。本期針對源碼系統整體測試下來非常完美,那么如何搭建部署AI創作ChatGPT?小編這里寫一個詳細圖文教程吧。已支持GP…

CVE-2024-23334 AIOHTTP 目錄遍歷漏洞分析

漏洞描述: aiohttp 是一個用于 asyncio 和 Python 的異步 HTTP 客戶端/服務器框架。使用aiohttp作為Web服務器并配置靜態路由時,需要指定靜態文件的根路徑。此外,選項“follow_symlinks”可用于確定是否遵循靜態根目錄之外的符號鏈接。當“f…

css樣式元素的相對定位,絕對定位,固定定位等元素定位運用技巧詳解

文章目錄 1.相對定位 relative2.絕對定位 absolute3.固定定位4.display 轉換元素5.float浮動6.float產生內容塌陷問題7.overflow CSS樣式學習寶典,關注點贊加收藏,防止迷路哦 在CSS中關于定位的內容是:position:relative | absolute | static…