對于獨熱編碼余弦相似度結果為0和詞向量解決了詞之間相似性問題的理解

文章目錄

  • 深入理解
  • 簡單案例
  • 結論
  • 詞向量(Word Embedding)簡介
  • 詞向量如何解決相似性問題?
  • 簡單案例:基于上下文的詞向量訓練
  • 總結

  • 對于獨熱表示的向量,如果采用余弦相似度計算向量間的相似度,可以明顯的發現任意兩者向量的相似度結果都為 0,即任意二者都不關,也就是說獨熱表示無法解決詞之間的相似性問題。

深入理解

  • 獨熱編碼(One-Hot Encoding)是一種將類別型變量轉換為二進制向量的方法。對于一個有NNN 個不同類別的特征,獨熱編碼會創建一個長度為NNN的向量,其中只有一個元素為 1(表示當前類別),其余元素為 0。例如,對于三個類別 “貓”、“狗”、“鳥”,其獨熱編碼可能分別為 [1,0,0][1, 0, 0][1,0,0][0,1,0][0, 1, 0][0,1,0][0,0,1][0, 0, 1][0,0,1]
  • 余弦相似度用于衡量兩個向量在方向上的相似性,其中 A?BA \cdot BA?B 是向量的點積,∣A∣|A|A∣B∣|B|B 是向量的模(歐幾里得范數)。計算公式為:
    余弦相似度=A?B∥A∥?∥B∥\text{余弦相似度} = \frac{A \cdot B}{\|A\| \cdot \|B\|} 余弦相似度=A?BA?B?

對于任意兩個不同的獨熱向量:

  • 點積A?B=0A \cdot B = 0A?B=0(因為獨熱向量只有一個 1,且不同向量的 1 位置不同)。
  • 每個向量的模 ∣A∣=∣B∣=1|A| = |B| = 1A=B=1(因為只有一個 1,其余為 0)。

因此,余弦相似度為:
余弦相似度=01?1=0\text{余弦相似度} = \frac{0}{1 \cdot 1} = 0 余弦相似度=1?10?=0

  • 這表明任意兩個不同的獨熱向量是完全不相關的(相似度為 0),無法反映它們之間可能存在的語義或實際關系。

簡單案例

假設我們有以下三個詞的獨熱編碼:

  • “貓”:[1,0,0][1, 0, 0][1,0,0]
  • “狗”:[0,1,0][0, 1, 0][0,1,0]
  • “鳥”:[0,0,1][0, 0, 1][0,0,1]

計算 “貓” 和 “狗” 的余弦相似度:

  1. 點積:
    [1,0,0]?[0,1,0]=(1?0)+(0?1)+(0?0)=0[1, 0, 0] \cdot [0, 1, 0] = (1 \cdot 0) + (0 \cdot 1) + (0 \cdot 0) = 0 [1,0,0]?[0,1,0]=(1?0)+(0?1)+(0?0)=0
  2. 模:
    ∥[1,0,0]∥=12+02+02=1∥[0,1,0]∥=02+12+02=1\|[1, 0, 0]\| = \sqrt{1^2 + 0^2 + 0^2} = 1 \\ \|[0, 1, 0]\| = \sqrt{0^2 + 1^2 + 0^2} = 1 [1,0,0]=12+02+02?=1[0,1,0]=02+12+02?=1
  3. 余弦相似度:
    01?1=0\frac{0}{1 \cdot 1} = 0 1?10?=0

計算 “貓” 和 “鳥” 的余弦相似度:

  1. 點積:
    [1,0,0]?[0,0,1]=(1?0)+(0?0)+(0?1)=0[1, 0, 0] \cdot [0, 0, 1] = (1 \cdot 0) + (0 \cdot 0) + (0 \cdot 1) = 0 [1,0,0]?[0,0,1]=(1?0)+(0?0)+(0?1)=0
  2. 模:
    ∥[1,0,0]∥=1∥[0,0,1]∥=1\|[1, 0, 0]\| = 1 \\ \|[0, 0, 1]\| = 1 [1,0,0]=1[0,0,1]=1
  3. 余弦相似度:
    01?1=0\frac{0}{1 \cdot 1} = 0 1?10?=0

計算 “狗” 和 “鳥” 的余弦相似度:

  1. 點積:
    [0,1,0]?[0,0,1]=(0?0)+(1?0)+(0?1)=0[0, 1, 0] \cdot [0, 0, 1] = (0 \cdot 0) + (1 \cdot 0) + (0 \cdot 1) = 0 [0,1,0]?[0,0,1]=(0?0)+(1?0)+(0?1)=0
  2. 模:
    ∥[0,1,0]∥=1∥[0,0,1]∥=1\|[0, 1, 0]\| = 1 \\ \|[0, 0, 1]\| = 1 [0,1,0]=1[0,0,1]=1
  3. 余弦相似度:
    01?1=0\frac{0}{1 \cdot 1} = 0 1?10?=0

結論

  • 通過計算可以發現,任意兩個不同詞的獨熱編碼的余弦相似度均為 0。表明獨熱編碼無法捕捉詞與詞之間的相似性(例如 “貓” 和 “狗” 都是動物,但相似度為 0)。
  • 這是獨熱編碼的局限性之一,因此在實際 NLP 任務中通常會使用更高級的詞表示方法(如詞嵌入 Word2Vec、GloVe 等)來解決這一問題。

詞向量(Word Embedding)簡介

  • 詞向量(Word Embedding)是一種將詞語映射到低維連續向量空間的技術,其核心思想是讓語義或用法相似的詞在向量空間中距離更近。與獨熱編碼不同,詞向量是稠密向量(非稀疏),每個維度表示詞的某種潛在語義或語法特征(如“性別”、“動作”、“情感”等)。

關鍵特點:

  1. 低維稠密:通常維度為 50-300(遠小于獨熱編碼的維度)。
  2. 語義可計算:通過向量運算可以捕捉詞的關系(如“國王 - 男 + 女 ≈ 女王”)。
  3. 相似性量化:余弦相似度可以反映詞之間的語義相關性。

詞向量如何解決相似性問題?

獨熱編碼的相似度恒為 0,而詞向量通過以下方式解決:

  1. 相似詞向量接近:通過訓練(如預測上下文),模型會使得“貓”和“狗”的向量方向接近。
  2. 連續空間表示:向量的每一維對應某種潛在特征,例如:
    • 維度1:動物性(貓=0.9,狗=0.8,汽車=0.1)
    • 維度2:家用性(貓=0.7,狗=0.6,汽車=0.3)

簡單案例:基于上下文的詞向量訓練

  • 假設有一個小型語料庫和簡化的詞向量(維度=2):句子:"貓 吃 魚", "狗 吃 肉"
  • 初始隨機向量(訓練前):
    • 貓: [0.2, 0.4]
    • 狗: [0.3, 0.1]
    • 吃: [0.5, 0.5]
    • 魚: [0.1, 0.6]
    • 肉: [0.2, 0.2]

  • 目標:通過訓練(如Skip-gram模型),調整向量使得共享上下文的詞(如“貓”和“狗”都鄰近“吃”)在向量空間中接近。

訓練步驟(簡化):

  1. 輸入“吃”,預測上下文“貓”或“狗”。
  2. 計算“吃”的向量與“貓”的向量點積,通過Softmax得到概率。
  3. 根據預測誤差反向傳播,更新“吃”、“貓”、“狗”的向量。

訓練后可能結果(假設):

  • 貓: [0.8, 0.5]
  • 狗: [0.7, 0.4]
  • 吃: [0.6, 0.6]

此時,“貓”和“狗”的向量更接近。


計算相似度(訓練后)
余弦相似度公式:
相似度=A?B∥A∥?∥B∥\text{相似度} = \frac{A \cdot B}{\|A\| \cdot \|B\|} 相似度=A?BA?B?

  1. 貓 vs 狗:
    • 點積:0.8×0.7+0.5×0.4=0.56+0.20=0.760.8 \times 0.7 + 0.5 \times 0.4 = 0.56 + 0.20 = 0.760.8×0.7+0.5×0.4=0.56+0.20=0.76
    • 模:∣A∣=0.82+0.52≈0.94|A| = \sqrt{0.8^2 + 0.5^2} \approx 0.94A=0.82+0.52?0.94,∣B∣≈0.81|B| \approx 0.81B0.81
    • 相似度:0.760.94×0.81≈0.99\frac{0.76}{0.94 \times 0.81} \approx 0.990.94×0.810.76?0.99

  1. 貓 vs 肉(無關詞):
    • 假設“肉”向量為 [0.2, 0.2]
    • 點積:0.8×0.2+0.5×0.2=0.260.8 \times 0.2 + 0.5 \times 0.2 = 0.260.8×0.2+0.5×0.2=0.26
    • 相似度:0.260.94×0.28≈0.99\frac{0.26}{0.94 \times 0.28} \approx 0.990.94×0.280.26?0.99

詞向量的典型應用

  1. 詞類比任務: 國王?男+女≈女王\text{國王} - \text{男} + \text{女} \approx \text{女王}國王?+女王
  2. 文本分類:將詞向量求和/平均作為句子表示。
  3. 語義搜索:用向量相似度匹配查詢詞和相關文檔。

總結

詞向量通過將詞映射到連續空間,使得:

  • 語義相似的詞向量距離接近。
  • 支持向量運算捕捉復雜關系(如類比關系)。
  • 解決了獨熱編碼無法表示相似性的缺陷。

實際中,Word2Vec、GloVe等模型通過大規模語料訓練,自動學習這種分布式表示。

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

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

相關文章

數據結構·數狀數組(BIT)

樹狀數組(Binary Index Tree) 英文名:使用二進制下標的樹結構 理解:這個樹實際上用數組來存,二進制下標就是將正常的下標拆為二進制來看。 求x的最低位1的函數lowbit(x) 假設x的二進制表示為x ...10000,…

uniapp video視頻全屏播放后退出,頁面字體變大,樣式混亂問題

uniapp官方的說法是因為頁面使用rpx,但是全屏和退出全屏自動計算屏幕尺寸不支持rpx,建議使用px。但是因為uniapp端的開發都是使用rpx作為屏幕尺寸計算參數,不可能因為video全屏播放功能就整個全部修改,工作量大,耗時耗…

重復頻率較高的廣告為何一直在被使用?

在日常生活中,重復評率較高的洗腦廣告我們時常能夠碰到。廣告的本質是信息傳遞,而重復頻率較高的廣告往往可以通過洗腦式的傳播方式來提升傳播效率。下面就讓我們一同來了解下,為何這類廣告一直受到企業的青睞。一、語義凝練高頻率廣告的內容…

內容管理系統指南:企業內容運營的核心引擎

內容管理看似簡單,實際上隨著內容量的激增,管理難度也逐步提升。尤其是在面對大量頁面、圖文、視頻資料等數字內容時,沒有專業工具的支持,效率與準確性都會受到挑戰。此時,內容管理系統(CMS)應運…

文獻查找任務及其方法

1. 必備網站: 谷歌學術 Web of Science Engineering Village CNKI翻譯助手 科研通 2. 任務 學術上的一個調研,自動駕駛 3d 目標檢測 方向的近7年的方法,模態(相機/雷達/相機雷達 等),及其使用的數據集&a…

鴻蒙的NDK開發初級入門篇

初級必備的知識: NDK開發在什么時候用? 答::NDK 開發在幫助應用提升性能的情況下使用,比如游戲開發,和硬件交互的場景中。 還有一個公司已經有標準的C或C庫,不想在開發ArkTS的代碼前提下。 開發…

Unity發布Windows平臺后通過Advanced Installer制作安裝包

Unity發布Windows平臺后是一堆庫資源,以及一個可執行的exe文件,并不是一個安裝包,如果需要制作成安裝包,需要再進一步打包,本篇文章介紹一個Advanced Installer的軟件,專門用來制作Windows平臺的安裝包的。…

代數基本定理

代數基本定理 多項式 f(z)anznan?1zn?1?a1za0f(z) a_n z^n a_{n-1} z^{n-1} \cdots a_1 z a_0f(z)an?znan?1?zn?1?a1?za0?(其中 n>1n > 1n>1 且 an,a0≠0a_n,a_0 \neq 0an?,a0?0)在復數域內有根。 約定 以 ttt 為參數的閉曲…

springboot快速集成對接本地Ollama里的Deepseek-R1

書接上回,我們在本地安裝了一個Ollama,然后下載了一個deepseek-r1:7b,傳送門 本次目標:使用springboot對接ollama,完成簡單api對接 1.創建一個項目,選擇JDK17,Spring Boot版本3.5.3&#xff0c…

Docker部署私有倉庫

環境信息 centos7:docker26.1.4 IP:192.168.12.134 部署harbor wget https://github.com/goharbor/harbor/releases/download/v2.13.1/harbor-offline-installer-v2.13.1.tgz curl -L "https://github.com/docker/compose/releases/download/1.29.2…

張藝興探班RED女團一周年舞臺,見證21歲的夢想落地生根

從青澀的男團偶像,到如今獨當一面的音樂制作人、公司老板,張藝興的每一步都踏得堅定有力,他的故事充滿了熱血與夢想的色彩。而最近,他探班RED女團一周年舞臺現場的舉動,又一次成為粉絲和大眾熱議的焦點,也讓…

網絡編程 JAVA

一.網絡編程1. 什么是網絡編程?網絡編程是指利用計算機網絡實現程序之間通信的一種編程方式。在網絡編程中,程序需要通過網絡協議(如 TCP/IP)來進行通信,以實現不同計算機之間的數據傳輸和共享。2. 三個基本要素①IP …

UE5中的cesium

官方Fab地址(https://www.fab.com/zh-cn/),每月可下載免費素材 在UE5中添加插件cesium for unreal, 知識點一:服務器部署.b3dm地形數據 通過在線鏈接訪問數據目錄tileset.json,在cesium for unreal添加空白…

持續優化小程序排名,穩定獲取搜索流量

一、建立動態關鍵詞管理機制周期性關鍵詞迭代每月通過平臺搜索分析工具(如微信小程序后臺)抓取用戶搜索詞趨勢,淘汰搜索量下降的關鍵詞,補充行業熱點詞與長尾需求詞。按 “核心詞 季節 / 場景詞” 動態調整名稱與簡介&#xff08…

MyBatis 進階:連接池、動態 SQL 與多表關聯查詢

MyBatis 作為一款靈活的持久層框架,除了基礎的 CRUD 操作,還提供了連接池管理、動態 SQL 以及多表關聯查詢等高級特性。本文將從連接池原理出發,深入講解動態 SQL 的常用標簽,并通過實例演示一對多、多對多等復雜關聯查詢的實現&a…

反射型跨站點腳本(XSS)漏洞中網絡安全防火墻(WAF)被繞過進行內容植入與遠程劫持機制分析

在一次安全測試中&#xff0c;我發現目標站點在錯誤處理頁面對用戶輸入的查詢參數名未做任何轉義&#xff0c;當參數名中包含 <script> 標簽時&#xff0c;頁面會原樣渲染并執行其中的 JavaScript。本文將從實戰角度&#xff0c;詳細講解如何定位該反射型 XSS 漏洞、通過…

RAG實戰指南 Day 15:多語言與領域特定嵌入技術

【RAG實戰指南 Day 15】多語言與領域特定嵌入技術 引言 歡迎來到"RAG實戰指南"系列的第15天&#xff01;今天我們將深入探討多語言與領域特定嵌入技術——這是構建全球化、專業化RAG系統的關鍵技術。在現實業務場景中&#xff0c;我們經常需要處理多種語言的文檔&a…

無鉛PCB和無鹵pcb有什么區別?

在電子制造領域&#xff0c;環保法規的升級催生了多種特殊工藝的PCB產品。其中&#xff0c;無鉛PCB與無鹵PCB作為兩大主流方向&#xff0c;雖同屬綠色制造范疇&#xff0c;卻在技術路徑與應用場景上存在本質差異。環保指向的根本區別無鉛PCB的核心在于焊接材料的革新。傳統PCB采…

基于51單片機的貪吃蛇游戲Protues仿真設計

目錄 1 系統設計目的 2 系統實現功能 3 系統硬件設計 3.1系統設計框圖 3.2 液晶顯示模塊LCD12864 3.3 按鍵輸入模塊 3.4 時鐘電路和復位電路 4 系統軟件設計 4.1系統軟件流程 4.2 游戲引擎模塊程序設計 4.3 顯示模塊程序設計 4.4 輸入處理模塊程序設計 5 系統仿真…

HTML+CSS

一、HTML相關內容- <img> 標簽&#xff1a;- 用于在網頁中嵌入圖像&#xff0c; src 屬性指定圖像的路徑&#xff0c;可以是絕對路徑&#xff08;如 D:\Git\java115_java116\課堂代碼\前端代碼\pic\cat.jpg &#xff09;、相對路徑&#xff08;如 ./pic/cat.jpg &#x…