# 章節包:自然語言處理(NLP)W3(9/24)第 04 章「GloVe、FastText 與向量檢索」 影片 1:28:24–1:46:39,YouTube ID g0QE6O17BWE。Notion 章節頁 https://app.notion.com/p/3e6fc631b03081c5b27ce6cbad0d3d3a(頁 ID 3e6fc631b03081c5b27ce6cbad0d3d3a),頁面標題「04 GloVe、FastText 與向量檢索(1:28–1:46)」。 ## 1. 第一行(直接照抄,不要改) [自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W3(9/24)](https://app.notion.com/p/3e6fc631b03081ff9776f36fab3e6e50) › 04|影片 [1:28:24–1:46:39](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5304s)|投影片 W1_NLP_brief_v2 p.91–95|上一章 [03 word2vec 的訓練方式(1:02–1:28)](https://app.notion.com/p/3e6fc631b03081f1b4bfe71efbd2cd7a)|下一章 [05 作業一說明(1:46–2:02)](https://app.notion.com/p/3e6fc631b03081e59d87d1d5fa01e936) ## 1b. 最後一行(直接照抄,放在 Self-check 後面,當全頁最後一行) 讀完了嗎?下一章:[05 作業一說明(1:46–2:02)](https://app.notion.com/p/3e6fc631b03081e59d87d1d5fa01e936)|回到週頁:[W3(9/24)](https://app.notion.com/p/3e6fc631b03081ff9776f36fab3e6e50) ## 2. 各段標題(照順序;每段一個 ## 標題,直接照抄連結) - `## [1:28:24](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5304s) GloVe:從局部到全域統計` 老師講什麼:word2vec 只看 context window,範圍很 local;GloVe 用整個語料的共現統計(global)。老師只點到為止,細節請自己看論文。 - `## [1:29:49](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5389s) FastText:拆成字元片段` 老師講什麼:FastText 從字元層級學,所以能拼出沒看過的字(OOV),例如靠字首、字尾組成的醫學用字。中文比較難拆,多半用比較大的 n-gram,另外也有以筆畫為基礎的版本。 - `## [1:32:08](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5528s) 該用哪一種向量、怎麼評估` 老師講什麼:各有利弊,老師說一般認為 GloVe 比 word2vec 好。以前常拿自己的語料再訓練或微調,來減少 OOV。評估可以用人工標好相似度的 WordSim353,但它很小、也很舊。 - `## [1:33:42](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5622s) BM25 仍是強基準` 老師講什麼:介紹一篇向量資料庫公司技術長寫的心得。老師說第一句對大家很重要:BM25 用稀疏向量比對關鍵字,到現在還是很強的 baseline(比較基準)。 - `## [1:35:00](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5700s) 為什麼句子向量會糊掉` 老師講什麼:「我今天去上 NLP 課」和「我今天去上機器學習課」大部分的字都一樣,整句的向量會把關鍵字沖淡。句子越長,概念越擠在一起、越難區分;例如叫 AI 用一句話摘要每週課程,可能每週都一樣。 - `## [1:38:38](https://www.youtube.com/watch?v=g0QE6O17BWE&t=5918s) MTEB 排行榜` 老師講什麼:MTEB 是很常被引用的 embedding benchmark,依語言、任務、領域分類。想比較自己做的 embedding,可以到排行榜上看。 - `## [1:40:45](https://www.youtube.com/watch?v=g0QE6O17BWE&t=6045s) 靜態與上下文向量、相似不等於相關` 老師講什麼:word2vec、GloVe 是 static embedding(同一個字不管在哪都是同一個向量),之後會講 contextual 的 BERT。還有 768 維或 1536 維的取捨。「修水龍頭」和「買廚房水龍頭」用字很像,意圖卻不同。向量搜尋對打錯字很敏感。 - `## [1:43:49](https://www.youtube.com/watch?v=g0QE6O17BWE&t=6229s) OOV 與 OOD、RAG 與總結` 老師講什麼:字典裡沒有的字(OOV)和沒見過的領域(OOD),在技術上遇到的問題很像。做 RAG 一定要做檢索比對。最後總結:傳統 NLP 這段只留下「怎麼學字的表示」,W2 從這裡接下去。 ## 3. 老師強調/會考/不考的地方(原句已驗證;寫進筆記時 ASR 錯字要改正) - (1:34:36) [強調] 「其實第一句話對你們蠻重要的,BM25是一個還是一個很strong的Base Line」 → BM25(稀疏向量、關鍵字比對)到現在仍是很強的 baseline,不是有了 dense vector 就能取代 ## 4. 這章摘要與重要度 word2vec 之後的 GloVe 與 FastText、詞向量怎麼評估,以及一家向量資料庫公司的心得:BM25 仍然很強、句子向量會糊掉、相似不等於相關。(核心) ## 5. 整堂課的提醒(ASR 錯字、老師口誤、投影片缺公式等;只用跟這章有關的) - 0:00:00 那句「有任何疑問或感想,歡迎留言…點讚、訂閱、分享」是語音辨識幻覺,不是老師講的;0:01:21–0:02:30 是設定畫面,0:02:31 才開始上課。 - 0:42:31–0:43:48 疑似麥克風干擾(老師先問「有帶電池嗎」,接著說「為什麼幹擾」),逐字稿變成重複的「這個是電」加亂碼,約 1 分多鐘的內容遺失,大約是 brief p.74 的前半段。 - 作業一說明(1:46:39–2:02:06)用的是 NLP_HW1_word_emb.pdf,不在兩份投影片文字檔裡。本機有原檔(自然語言處理\NTHU_Natural_Language_Processing\2026\Assignments\Assignment1\),也有整理好的 自然語言處理\HW1\HW1_Word_Analogy_規定.md。 - W2 投影片這堂實際講到 p.17(困惑度),不只「開頭幾頁」;W2 p.4 跟 brief p.66(Markov/Shannon)是同一張,老師 2:16:45 自己說兩份投影片有重疊。 - YouTube 影片標題寫「Fall 2025」,實際是 2026-09-24 這堂(以網址為準)。 - brief p.68、p.69、p.89 是純圖頁(只有標題或 [IMAGE-ONLY]),0:26:48–0:36:38 那幾張類比圖各在 p.68 還是 p.69,從文字檔確認不了,寫章節時要轉成 PNG 看圖。 - 0:42:31–0:43:48 逐字稿是亂碼(重複「這個是電」加日文、俄文字元),約 1 分多鐘內容遺失,大概是老師在講 p.74「有出現不見得是相關」的前半;需要的話回去看影片。 - 作業一說明 PDF(NLP_HW1_word_emb.pdf)沒有 _text 文字版,第 5 章的 slides 欄無法標頁碼;需要的話先跑 slides_to_text.py。 - SOP 第 1 節寫 NLP-W3 用 W2 投影片的「開頭幾頁」,實際講到 W2 p.17(困惑度),建議改成 W2 p.1–17。 - 老師兩次說詞向量預設「700 多維」(1:04:34、1:22:11),可能跟 BERT 的 768 維混在一起;就我所知,Gensim word2vec 預設 vector_size 是 100,Google News 預訓練向量是 300 維。寫筆記前要再查證。 - 1:28:38 老師先說 GloVe 是 2013 年、又改口說 2014;投影片 p.91 寫 2014,考試照投影片寫。1:32:25 老師說「一般認為 GloVe 比 word2vec 好」,但投影片 p.93 寫「It depends」,Exam-ready 照投影片寫。 - 逐字稿裡 property/priority/publicity 大多是 probability(例:2:34:56「一串字的priority」),但 0:23:03「在算publicity的時候」比較像 perplexity,要看上下文,不能一律取代。 - 新發現的語音辨識錯字(建議加進 fix_transcript.py):WATTO VECTOR/what-to-vector/Wall-to-back/VoltoVector/waterbath/photo vector=word2vec;GrowVac/grow back=GloVe;Fosting=WordSim;Categor Label=character level;angry/engram=n-gram;CBUS=syllabus;基礎學習跟深入學習=機器學習跟深度學習;GPT ISO=GPTZero;turn in=Turnitin;Tica=TAICA;biblicoding=vibe coding;Contactual=contextual;Cross Entry=cross entropy;Wall-Embedded=word embedding;ntu庫=NTU COOL;Chanon=Shannon;Markup=Markov;annual p=NLP;Geno=genome;多利養=Dolly 羊;絞交=繳交;超習=抄襲;1:06:15「到Fur以後」可能是 BERT(不確定)。 ## 6. 投影片文字(這章範圍) **這幾頁的公式或內容只在圖裡(文字檔抓不到),寫 Exam-ready 與公式前先用 Read 看這幾張圖:** - W1_NLP_brief p.93 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\brief_W1_NLP_brief_p093.png --- W1_NLP_brief p.91 --- GloVe (Global Vectors) 2014 ●word2vec is excellent at learning similarity and linear regularities ●But it doesn’t make full use of co-occurrence statistics ●GloVe improves word2vec by considering global statistical information ●Pre-Trained vectors available here: https://nlp.stanford.edu/projects/glove/ ●The paper is worth reading 91 --- W1_NLP_brief p.92 --- FastText FastText is much newer and has also seen good results. Considers character-level features, and can thus take a guess and generate vectors for out-of-vocabulary words, taking advantage of patterns in morphology Pre-trained vectors are available in many languages: https://fasttext.cc/ 92 For Chinese:CW2Vec, Stroke-rich FastText --- W1_NLP_brief p.93 --- What Vectors Should I Use? --It depends. GloVe is very widely used with good results. FastText is new and adoption may be slow, but can also achieve good results. Training your own with word2vec may be indicated when you have many “out-of-vocabulary” words - i.e. your dictionary has lots of words for which there are no pre-trained vectors. This can happen in special areas - for example when dealing with classical Chinese text. A good idea is to try different vectors on specific tasks. Evaluation: Example dataset: WordSim353 http://www.cs.technion.ac.il/~gabr/resources/data/wordsim353/ 93 https://www.kaggle.com/datasets/julianschelb/wordsim353-crowd --- W1_NLP_brief p.94 --- 37 Things I Learned About Information Retrieval in Two Years at a Vector Database Company BM25 is a strong baseline for search MTEB (Massive Text Embedding Benchmark, https://huggingface.co/spaces/mteb/leaderboard) contextual embeddings (e.g., BERT), vs. static embeddings (e.g., Word2Vec, GloVe). 768 dimensions vs. 1536 dimensions Similar does not necessarily mean relevant. “How to fix a faucet” and “Where to buy a kitchen faucet” keyword-based search vs. vector-based search Vector search is not robust to typos Out-of-domain is not the same as out-of-vocabulary Information retrieval is so hot right now! 94 https://www.leoniemonigatti.com/blog/what_i_learned.html https://weaviate.io/ --- W1_NLP_brief p.95 --- Summary 95 SOP in traditional NLP Structural analysis, document representation Basic word understanding Word vector ## 7. 逐字稿(1:28:24 前後各多 1 分鐘,原始行) [01:27:24] 我就可以學會說 [01:27:25] 原來這個做出來的Metrics [01:27:27] 就是每一個字的Embedded [01:27:30] 然後透過這個字的Embedded [01:27:32] 我再透過這個 [01:27:34] 這有點像字跟字之間的Bullation [01:27:37] 你的Metrics去計算出它的Context的Probability [01:27:43] OK [01:27:45] 這樣算完之後 [01:27:46] 我就可以得到Wall-Embedded [01:27:48] 就不再是One-Hot的東西了這樣子 [01:27:52] OK [01:27:53] 所以我們的第一個Assignment [01:27:56] 你就是要做這件事情 [01:27:59] 那當然你不用自己刻這些模型 [01:28:03] 那你就呼叫這些Package就有現成的模型 [01:28:06] 或者說以後你也不用做這些模型了 [01:28:07] 你也不用自己創建了 [01:28:08] 反正這些現成的套件Wall-Embedded [01:28:11] 雖然也不見得會一直用Wall-Embedded [01:28:14] 反正Wall-Embedded就可以拿人家創建好了 [01:28:17] 然後或我自己再Update一下 [01:28:19] 或我自己創建放Scratch也可以 [01:28:21] 但是精神上就是這樣 [01:28:24] 那我後面有擺兩個 [01:28:29] 一個是GloVe一個是FastText [01:28:32] 當初做這個Wall-to-back出來之後有一些延伸 [01:28:36] Wall-to-back大概是2013年 [01:28:38] 然後GloVe是2013年 [01:28:40] 現在是2014年 [01:28:42] 大佬在這 [01:28:44] Crystal在這 [01:28:45] Stanford [01:28:46] 就是他們其實都跟得很快 [01:28:47] 這些新的東西 [01:28:49] 立刻就把展開所有的研究的問題都出來了這樣子 [01:28:55] 那他的想法是什麼 [01:28:57] 你看到這個Global這個字你就知道 [01:29:00] 原來Wall-to-back的是Local [01:29:02] 它是Global這樣子 [01:29:03] 你可以做這樣的對比 [01:29:05] 的確我們當然剛才的 [01:29:10] 剛才的做康復的這個方式 [01:29:11] Context Window那一塊 [01:29:14] 非常Local [01:29:15] Context Window等於1 [01:29:17] 你說老師我做大一點做到3 [01:29:22] 也蠻Local的這樣子 [01:29:24] 那GloVe他算的是什麼 [01:29:27] 他算的是整體的統計的東西 [01:29:32] 我這邊就擺這幾個字 [01:29:33] 當然如果你有興趣可以去看paper再算的東西 [01:29:37] 所以他多了一點Global的資料之類的 [01:29:40] Global的資料這樣子 [01:29:44] 那 [01:29:45] 其實是 [01:29:46] 蠻可以看的在paper [01:29:49] 那另外一個FastText [01:29:51] 其實 [01:29:53] 當初FastText出來之後 [01:29:56] 大家覺得他應該會是 [01:29:58] 重點 [01:29:59] 因為他有現在的Tokenizer的 [01:30:02] 前型這個雛形的椅子 [01:30:04] 就是 [01:30:05] 他是他有做到Pack Label [01:30:08] 因為其實你做 [01:30:10] 這也會在Assignment 1討論 [01:30:12] 就是說你當你在做這件事情的時候你會發現 [01:30:16] 我一些特殊的字呢 [01:30:18] 我是一些新創的 [01:30:20] 尤其是英文這種 [01:30:21] 常有些奇怪的片語的字 [01:30:24] 以前語料庫沒有 [01:30:25] 學不到他的概念怎麼辦 [01:30:27] 或是常有些醫學上的字是拼湊的 [01:30:31] 拉丁美字那種前後綴的東西拼湊的東西 [01:30:35] 以前沒看過什麼 [01:30:37] 所以FastText其實是有 [01:30:39] 從Categor Label開始做 [01:30:43] 那 [01:30:45] 其實也有一點在做 [01:30:47] n-gram的Sliding [01:30:49] 就是以比如說以中文來講 [01:30:52] 他會做這樣n-gram Sliding [01:30:54] 的確有一些做 [01:30:56] 就是像這幾個如果有機會可以去看 [01:30:59] 但他其實有擺到說 [01:31:02] 中文的Morphology [01:31:05] 就是比如說 [01:31:06] 步驟啊 [01:31:07] 用步驟拆解這樣子 [01:31:09] 不過那個就 [01:31:12] 那學問很大 [01:31:13] 就是說 [01:31:15] 英文我們會做Categor Label [01:31:17] 就是說比如說我會做單 [01:31:18] 單一的字母 [01:31:20] 或是這些前最次比如說IN啊PRE啊 [01:31:23] 或是結尾 [01:31:24] 給了Y的這種的學習 [01:31:27] 但是以中文來講其實很難去 [01:31:30] 做這樣的事啊 [01:31:32] 多半中文可能就是用 [01:31:34] 用比較大一點的n-gram來 [01:31:36] Count這些東西 [01:31:38] 所以其實他可以解決說 [01:31:39] 所謂的Out of Vocabulary的問題 [01:31:42] 就是說他可以靠著雖然也沒看過這個字 [01:31:45] 但他可以拼湊啊 [01:31:47] 他可以拼湊出這個以前叫什麼 [01:31:49] 這個東西叫什麼 [01:31:50] 尤其是醫學醫學很多都可以這樣拼湊出來 [01:31:53] 你會發現醫學字 [01:31:55] 有一些什麼 [01:31:56] 什麼疾病啊症狀啊 [01:31:58] 或是指人體的部位什麼的東西 [01:32:01] 他其實都是拼湊 [01:32:02] 你只要能夠拆解出每個意識 [01:32:04] 意識都蠻接近的 [01:32:06] 他都可以這樣做出來這樣子 [01:32:08] FastText [01:32:09] 現在其實你用套件都可以交出這種 [01:32:13] GloVe FastText的Embedding這樣子 [01:32:17] 所以到底打個好 [01:32:18] 不知道 [01:32:19] 其實 [01:32:20] 各有利弊啊 [01:32:21] 其實你在你的 [01:32:22] 你的不同領域都可以試試看這樣子 [01:32:25] 當然一般來講我們會覺得GloVe比word2vec好 [01:32:29] 這樣子 [01:32:29] 就是 [01:32:31] 某種程度上比較有一些subset superset的關係 [01:32:35] 但是FastText跟GloVe之間的關係 [01:32:38] 倒不一定 [01:32:39] 不一定 [01:32:40] 通常我們 [01:32:42] 以前啊以前就是JLM還沒出來之後 [01:32:44] 以前 [01:32:45] 我們都會他比如說拿這個東西 [01:32:47] 我們自己每一筆在拿自己的Corpus [01:32:51] 再重新圈或是再微調一下這樣子 [01:32:55] 就儘量讓這個OOV的問題降低這樣子 [01:32:59] 那到底什麼怎麼樣去評估我做出來的東西好壞啊 [01:33:03] 有一個dataset叫做Fosting [01:33:05] 這個其實蠻小的 [01:33:07] 這個你看這個數字就知道 [01:33:08] 其實蠻小的 [01:33:09] 它大概就算這些 [01:33:11] 它有一些人工給的 [01:33:13] 這兩個字應該相似度長這樣這樣 [01:33:15] 它就給你一些分數這樣 [01:33:18] 那你自己 [01:33:19] 自己做出 [01:33:20] Embedded之後再去看看我的這兩個字的相似度是不是跟這個很像這樣 [01:33:26] 這個WordSim其實是 [01:33:30] 蠻舊的 [01:33:31] 但是還算是個可以用的啦 [01:33:34] 等下我們會看到 [01:33:35] 這個MTEB這樣子 [01:33:37] 它就更復雜一點了 [01:33:39] 這樣子 [01:33:42] 然後最後這個是 [01:33:43] 這個我們最後 [01:33:46] 其實是這大概是一年前的新聞 [01:33:49] 就是它是一家公司這家公司 [01:33:51] 它其實是 [01:33:52] 做 [01:33:54] Vector Database [01:33:55] 其實你知道有N出來之後 [01:33:57] 大家就發覺其實 [01:33:59] 需要RAG [01:34:00] 需要RAG [01:34:01] 大家就有些公司就去把一堆 [01:34:05] 特殊的語料特殊的資料可能需要授權的資料幹嘛 [01:34:09] 就是這個這個公司說我要這樣服務他就幫 [01:34:12] 這家公司建立所謂的Vector Database [01:34:15] 然後讓他嫁接一些人去提供服務 [01:34:19] 所以 [01:34:20] 有一些公司在做這樣的事情 [01:34:22] 那這是那個公司的 [01:34:24] 技術 [01:34:25] 技術長 [01:34:26] 他講的事情 [01:34:28] 大家可以去看一下這個報道 [01:34:30] 就是他一年前寫的 [01:34:32] 就是他做這個公司的 [01:34:35] 心得 [01:34:36] 其實第一句話對你們蠻重要的 [01:34:39] BM25是一個還是一個很strong的Base Line [01:34:42] 就是 [01:34:44] 還是很有用 [01:34:45] 還是很有用雖然他是一個 [01:34:48] 靠著Sparse [01:34:50] Vector [01:34:51] 簡單的算關鍵字但是他還是有一點權重 [01:34:55] 他有點權重其實 [01:34:57] 就那個效果就會出來 [01:34:59] 那你說 [01:35:00] 老師那他這麼強那我們幹嘛學 [01:35:02] 這種Dense Vector [01:35:04] 幹嘛學所謂的 [01:35:06] Wall Embedding啊 [01:35:07] Sentence Embedding [01:35:09] 的確沒錯啦 [01:35:11] 就是 [01:35:14] 我們做出來的Wall Embedding或是之後提到的Sentence [01:35:18] 或Document Embedding [01:35:19] 的確能夠很 [01:35:21] 比較精確去Capture [01:35:22] 整個句子的意思或是說 [01:35:24] 每個字的動態的表示他能夠抓得到 [01:35:28] 但是你可以想象 [01:35:29] 因為那個向量的表示是 [01:35:33] 整個句子 [01:35:37] 而不是單字的一些概念 [01:35:39] 所以當你 [01:35:40] 你想要找的東西其實就是句子裡面非常重要的關鍵字的概念的時候 [01:35:46] 其實 [01:35:47] 那個 [01:35:49] 通常你的 [01:35:50] 用Sparse的Metrics [01:35:52] 反而效果會比較好 [01:35:54] 比如說我講一句話 [01:35:56] 我今天來上自然語言課程 [01:35:59] 自然語言處理課程 [01:36:00] 然後跟你講一句話我今天去上機器學習課程 [01:36:05] 雖然 [01:36:06] 重點的課不一樣 [01:36:08] 但是你前面的字都一樣啊就是 [01:36:10] 今天跟我然後去上 [01:36:13] 這些都一樣啊 [01:36:14] 那 [01:36:15] 那電腦哪知道你的Highlight是什麼 [01:36:19] 他反正就是把整句話學會一個表示告訴你 [01:36:22] 這學會的表示是什麼 [01:36:23] 其實我們也不知道那個向量是什麼 [01:36:26] 他可能會把說原來是你個人今天做了什麼事 [01:36:30] 只是說那個事情有一個課程在裡面 [01:36:33] 所以你可以想象那個課程其實在整句的Embedding所帶來的含量 [01:36:39] 其實 [01:36:40] 不是 [01:36:42] 不是非常的被凸顯出來 [01:36:44] 雖然你說 [01:36:45] 上了課的課本也不是很重要 [01:36:48] 但是 [01:36:49] 他就會浮掉 [01:36:51] 所以通常我會講模糊就是這樣 [01:36:53] 因為他會跟其他字的概念 [01:36:55] 混在一起 [01:36:56] 所以他的字就他的意義就不是這麼的凸顯 [01:37:01] 所以當你以後如果用一些BERT [01:37:03] 或是你拿LM來當Encode轉換成Sentence Embedding [01:37:08] 或者是Document Embedding的時候 [01:37:10] 你就發現其實 [01:37:12] 那個向量的分佈 [01:37:14] 就違背了我們一開始在講Ombedding的時候 [01:37:17] 我們希望做到 [01:37:19] 就是非常分散 [01:37:21] 非常有鑑別性 [01:37:22] 其實沒有 [01:37:23] 尤其是當你句子越長的時候 [01:37:26] 概念就會 [01:37:27] 概念就會 [01:37:28] 越來越小這樣子 [01:37:29] 這是什麼意思呢 [01:37:31] 就比如說 [01:37:33] 你教員 [01:37:35] 請你把今天的影片輸進去 [01:37:37] 請用一句話來描述老師今天講的重點 [01:37:40] 你覺得他會說什麼 [01:37:43] 然後明天的下禮拜的 [01:37:45] 你再教員去說請用一句話來 [01:37:47] 摘要老師今天講的重點 [01:37:49] 搞不好你發現16周 [01:37:51] 重點都一樣這樣子 [01:37:53] 老師在教NLP這樣子 [01:37:55] OK [01:37:56] 所以當你的句子越長 [01:37:59] 你要講的東西越多的時候 [01:38:01] 你又用同樣的這個 [01:38:04] Embedding Size [01:38:05] 去描述他的時候 [01:38:07] 他的概念就會非常的Centralized [01:38:09] 非常的難以區分 [01:38:12] 所以這個當然就是 [01:38:13] 就是現在用LM當 [01:38:15] Decoder的問題 [01:38:17] 或是說 [01:38:18] 拿LM來當Encode也會有這個問題 [01:38:22] 不過這個就看你自己 [01:38:23] 對這東西體會 [01:38:25] 什麼時候該嫁接什麼樣的東西 [01:38:27] 比較敏感度高 [01:38:29] 所以 [01:38:29] 也不是everything都是拿LM就可以 [01:38:32] 解決掉了 [01:38:34] 後面其實有一些 [01:38:36] 這是他Highlight的一些重點 [01:38:38] 這個MTEB蠻值得看的 [01:38:39] 我不知道我現在點下去 [01:38:41] 我去做啥事 [01:39:05] 做啥事好了 [01:39:13] 把他Tick過來 [01:39:15] 你可以繼續看MTEB [01:39:17] 他其實是一個蠻標準的 [01:39:19] 做Embedding的Benchmark [01:39:21] 然後有分 [01:39:24] 語言 [01:39:25] 有分語言 [01:39:26] 然後有分 [01:39:27] 現在的這種Modality [01:39:29] 或者是說 [01:39:30] 你的任務 [01:39:32] 然後或者是說不同Domain [01:39:34] 比如說Code [01:39:35] 做Code或是什麼 [01:39:38] 其實是一個蠻 [01:39:40] 而且現在也蠻 [01:39:42] 蠻Hard [01:39:43] 也不是說蠻Hard [01:39:44] 就是蠻常被Reference的一個Benchmark的壓縮 [01:39:48] 其實 [01:39:50] 其實做NLP或是做現在AI的人 [01:39:53] 看到Benchmark的壓縮都 [01:39:55] 都會非常興奮 [01:39:57] 這個好多好多 [01:39:58] 然後 [01:39:59] 他搞不好還可以拿來 [01:40:01] 幫你做一些其他事情 [01:40:04] 這個MTEB是 [01:40:05] 蠻值得去看一下 [01:40:07] 那 [01:40:07] 現在如果你自己想做一個非常厲害的Volume Evaluate [01:40:11] 你就會在 [01:40:12] 這些Leaderboard上去跟大家比說 [01:40:14] 這個在 [01:40:15] 某個語言 [01:40:16] 或是某個任務 [01:40:17] 大家做怎麼樣這樣子 [01:40:20] OK [01:40:28] 這樣會跑掉嗎 [01:40:40] 摸個就不要去動他 [01:40:45] 底下幾個重點 [01:40:47] 就是說當然我們現在是 [01:40:49] 做所謂的 [01:40:50] Static Embedding [01:40:51] Waterback GloVe [01:40:52] 就是這個字在哪裡就是這樣的一個向量叫Static [01:40:56] 他擺在哪裡擺在不同的句子 [01:40:58] 還是這樣的意思這樣子 [01:41:00] 那當然這不是我們要的 [01:41:02] 因為這個太死 [01:41:04] 那我們是希望一個比較Contextual Embedding [01:41:06] 那當然之後我們提到BERT就是這樣的概念 [01:41:10] 那這邊其實前面一直沒提到Dimension [01:41:13] 這個就是他們 [01:41:14] 在掙扎的東西 [01:41:16] 我該用768維度還是 [01:41:19] 1000多維度 [01:41:20] 但這邊提到的 [01:41:22] 可能也有跟我們後面要講的 [01:41:25] 這種 [01:41:27] Transformer裡面那個 [01:41:29] 那個Dimension也有點關係 [01:41:31] 不只是單子這個Waterback裡面那個300個Nuron這樣子 [01:41:36] 那 [01:41:37] 這件事其實就有點 [01:41:39] 呼應我剛才講的 [01:41:40] 就是說 [01:41:41] 有時候你覺得相似的 [01:41:43] 相似他其實 [01:41:44] 不見得是相關 [01:41:46] 但這個 [01:41:48] 這句話以前在做 [01:41:50] 資訊檢索 [01:41:51] 也都被探討過了 [01:41:52] 就是 [01:41:53] 算起來很像這個字都有寫得到 [01:41:55] 但是整句話意思完全不一樣這樣子 [01:41:58] 那像這兩句一個是要去買 [01:42:00] 修水龍頭一個是要去 [01:42:02] 如何去買這個 [01:42:04] 廚房的這個水龍頭 [01:42:05] 所以 [01:42:06] 其實整個的Intent都完全不同 [01:42:09] 但是這個字可能 [01:42:11] 他的鑑別度夠 [01:42:13] 所以他其實在整個Embedding的表示 [01:42:15] 跟 [01:42:16] 重要性其實就會凸顯出 [01:42:18] 整個 [01:42:19] 搞不好整個向量其實很接近 [01:42:23] 那 [01:42:24] 到底是不是要做Vector Search [01:42:26] 還是Keyword Search就好 [01:42:28] 其實你看 [01:42:29] 做Vector Database都有這種想法 [01:42:31] 所以 [01:42:32] BM25還是乖乖的用一下這樣子 [01:42:37] 然後Vector Search是 [01:42:40] 對 [01:42:40] 打錯字 [01:42:43] 對打錯字是非常不robust [01:42:46] 他非常sensitive你可以想像我打錯一個字 [01:42:49] 他其實 [01:42:49] 對應到Vector是完全不一樣的 [01:42:51] 那你說 [01:42:52] 老師那我們用這種CharacterBase [01:42:54] 然後Facetest是不是比較好一點 [01:42:58] 可能有對 [01:42:59] 或者說以後我們就 [01:43:01] 做BERT這樣子 [01:43:03] 但是你發現如果 [01:43:05] 如果你發現這個Typo [01:43:07] 其實在 [01:43:08] 意義上 [01:43:09] 就是比如說 [01:43:11] 打錯一個Character [01:43:13] 如果那個看起來 [01:43:14] 或者說那個字不會 [01:43:16] 讓你聯想到其他字 [01:43:17] 可能都還好 [01:43:19] 但是其實很多時候他整個 [01:43:22] 整個 [01:43:22] 向量的空間會跑掉 [01:43:24] 其實 [01:43:27] 第一個assignment你可能做不出這個啦 [01:43:28] 因為你 [01:43:29] 你很難去做句子的embedding [01:43:32] 但是當你 [01:43:33] 你做完BERT之後 [01:43:35] 你可以自己試試看 [01:43:36] 把一個句子 [01:43:37] 改掉一個字 [01:43:38] 或是故意 [01:43:39] 寫錯一個字 [01:43:40] 看他出來的CLS Token [01:43:42] 會長什麼樣子 [01:43:44] 你就可以知道 [01:43:45] 這個人講的事情 [01:43:47] 是對的這樣子 [01:43:49] 然後 [01:43:50] out of domain [01:43:51] 這我們剛剛有提到這個OOV的問題 [01:43:53] 這個縮寫是OOV [01:43:55] 那另外一個是OOD [01:43:58] 這個有點像 [01:43:59] 就是說反正都是沒看過 [01:44:01] 就是我字典裡面找不到 [01:44:03] 跟這個字我看不懂 [01:44:07] 某種程度上以技術來講 [01:44:10] 發生的問題會很像 [01:44:11] 因為都是沒trend過的 [01:44:13] 但是 [01:44:15] 字典沒有的問題很大 [01:44:16] 因為你做了what to better你就發現 [01:44:19] 這個字根本沒有出現 [01:44:21] 他其實就是 [01:44:22] 會有一個tag [01:44:23] unknown的tag [01:44:24] 那unknown的tag基本上在 [01:44:26] 以後在模型上就是一個 [01:44:29] 大家都長的一樣的東西 [01:44:30] 或是一個random的東西 [01:44:33] 當然他也是可以被學的 [01:44:35] 不過 [01:44:36] anyway就是 [01:44:37] 就是一個tone在那裡這樣子 [01:44:40] 那沒看過的字呢 [01:44:42] 就會隨著 [01:44:43] 這個概念 [01:44:44] 你會自己去 [01:44:47] 長出別的意思啊 [01:44:49] 就這個字 [01:44:49] 在這個domain叫這個意思 [01:44:51] 那另外一個domain [01:44:52] 是另外一種意思 [01:44:53] 你的意思會不太一樣 [01:44:55] 他不是unknown [01:44:56] 他可能會 [01:44:57] 會有shift [01:44:58] 會bias之類的 [01:45:00] 其實這個 [01:45:02] 各種可能 [01:45:03] 各種可能 [01:45:04] 但是以技術上來講 [01:45:06] 你面對到的 [01:45:07] 長相會很像 [01:45:10] 這是他去年講的 [01:45:12] 但是這句話我覺得現在 [01:45:14] 不見得這麼的exactly對這樣子 [01:45:17] 因為現在的RAG其實 [01:45:19] 就是這些人越來越強之後 [01:45:22] RAG的 [01:45:23] 需要性 [01:45:26] 有一點 [01:45:27] 不是這麼必要 [01:45:31] 當我沒說 [01:45:33] 就是有時候還是會的 [01:45:35] 就是在一些特定領域 [01:45:37] 還是會這樣子 [01:45:38] 只是說他沒有 [01:45:39] 這個一年前這麼的critical [01:45:41] 就是說這些一定要用RAG來做這樣子 [01:45:44] 你要做RAG [01:45:46] 一定要用IR [01:45:47] 你這邊就逃不掉 [01:45:48] 就是比對 [01:45:49] 就是比對你 [01:45:50] 你的語料的東西 [01:45:51] 因為你沒辦法叫模型重新學這些東西 [01:45:54] 重新看這些東西 [01:45:58] 好 [01:45:59] 這是這個introduction的summary [01:46:01] 就是我們大概勾數一下 [01:46:03] 很快的勾數一下這個 [01:46:05] 這個傳統NLP的SLP這樣子 [01:46:07] 但其實很多細節我們都沒有講這樣子 [01:46:09] 那 [01:46:10] 但是只留下一個 [01:46:12] 很 [01:46:12] 後面會用到的東西 [01:46:14] 我們要怎麼去學字的表示 [01:46:16] 怎麼樣學這個 [01:46:17] 這個讓電腦瞭解這個字的意識 [01:46:20] 用這樣的Valve vector去看 [01:46:21] 帶這樣的概念 [01:46:22] 那我們的 [01:46:24] W2的投影片就會從這個概念繼續接起來這樣子 [01:46:29] 那這也是 [01:46:30] 在做NLP的那個年代大家想 [01:46:32] 知道的 [01:46:33] 東西這樣子 [01:46:36] 好 [01:46:37] 這個 [01:46:37] 第一個部分到這邊 [01:46:39] 那我先秀一下 [01:46:41] 我們的第一個assignment [01:46:43] 其實 [01:46:44] 已經放上去 [01:46:46] 我不知道 [01:46:49] 我又找不到 [01:46:55] PDF [01:47:03] OK [01:47:04] 這樣看得到 [01:47:06] 好 [01:47:06] 其實我們的作業 [01:47:08] 沒有變 [01:47:09] 主題還是一樣這樣子 [01:47:10] 他只是說我們有稍微要求 [01:47:12] 一點東西 [01:47:13] 跟去年不一樣這樣子 [01:47:16] 那 [01:47:17] 對這個可能要再強調一下因為 [01:47:21] 我不知道是Tica辦公室看到我們這門課好像現在人數比以前多 [01:47:26] 我就覺得 [01:47:27] 高老師你應該要嚴格把關一下這樣子 [01:47:30] 對我們 [01:47:32] 這門課的作業難度會稍微比以前稍微再多加一點東西 [01:47:36] 就是讓大家不要 [01:47:38] 好像一句話就把作業做完了這樣子 ## 8. 寫作規則 (這是 `_筆記SOP.md` 第 3.1、4、5、6 節的濃縮版。兩者衝突時以 SOP 為準。) 讀者:碩士生,兩門課期末是英文考試。要只看筆記就能學會,講得比老師好懂。畫面要簡潔。 **概念優先(2026-09-26 主理人)**:主理人只想懂概念,不想補數學、不想看程式碼和座標圖。兩門課的考試也都是問答題、不考算式(AI W1 1:16:52;NLP W3 1:47:41、2:48:36)。所以: - 每段預設看得到的只有:白話摘要(2–4 句)+**一句生活比喻**(例:模擬退火像投資理財,年輕時敢冒險、越老越保守)+「考試可能怎麼問」一句。 - 數學推導、公式、手算、程式碼、座標圖,全部收進標題寫「(進階,可跳過)」的摺疊,例如「它到底怎麼運作?(進階,可跳過)」。每段最多一個進階摺疊,不要寫長篇計算。 - 演算法要能「用文字說出步驟」(考試可能要你描述),這一點放在預設看得到的地方,不用數字。 - **重心比例**:白話理論與概念模式(它在解決什麼問題、核心想法、跟別的方法差在哪、優缺點、生活比喻)占主要篇幅;數學與程式細節只用一兩句帶過,細節收進進階摺疊。 **圖文並茂(2026-09-26 主理人:不要只有文字)**: - 每章至少 2–3 個圖,放在**預設看得到**的地方,每個圖前後各用一兩句白話說明「這張圖在看什麼」。 - 流程、步驟、因果、比較 → 用 mermaid 流程圖(```mermaid,flowchart LR 或 TD;節點文字用中文、加雙引號;一張圖不超過 10 個節點)。 - 投影片上的示意圖、架構圖 → 用 [[IMG: …]] 放投影片圖。 - 仍守「每個 ## 段落最多一種視覺元素」。 ### 輸出兩個檔 1. `chNN.md`(Notion 寫法,不含頁面標題),結構固定: - 第一行:章節包第 1 節那行,原樣照抄。 - `## 重點`:三點中文,每點一到兩句。 - `## Exam-ready`:3–10 行英文,**從章節包的投影片文字逐字抄**,每行 `- **Term**: "原句"(Ch3 p.14)`。老師有明確證據才在行尾加 `【老師強調】(h:mm:ss)`。 **每一行下面一定要有一行縮排的中文解釋**(主理人英文不好,看不懂的英文等於沒用): ``` - **Hill climbing**: "It keeps track of one current state and on each iteration moves to the neighboring state with highest value."(Ch4 p.5) - 中文:爬山法只記住「現在這一個狀態」,每一輪都移到分數最高的鄰居。白話:一直往比較高的地方走一步。 ``` 中文要先把句子意思講清楚,再補一句白話;難的英文單字括號附中文(例:neighboring state(鄰近狀態))。 - 章節包第 2 節的每一段:`## [h:mm:ss](連結) 標題`(照抄),下面 2–4 句白話摘要,其餘全部收進摺疊: ```
問句(例:用生活例子講,BFS 在做什麼?) 內容
``` 摺疊種類(需要才放):用生活例子講?/它到底怎麼運作?/要先懂什麼?(老師假設你會的數學或概念,短版教學)/老師原話是什麼?(「原話」(h:mm:ss),只放重要的,最多 5 句)。 - 「它到底怎麼運作?」要用一組小數字把這段的演算法**真的跑 1–3 步**(例:算出梯度、更新一次、比較兩個 α),不是只示範定義的加減乘除。全章盡量沿用同一組數字,讓前一段的答案能在下一段被驗證。 - 每段正文要回答讀者最可能卡住的一個「為什麼」。投影片公式方向跟題目相反、或投影片說「解不出來」時,用一兩句講出原因,自己補的標(我補充)。 - 投影片句子停在公式前(公式在圖裡)時:Exam-ready 在粗體詞條上補公式、引號內保持原句;正文寫出同一條式子。公式圖看章節包第 6 節列出的 PNG。 - `## Self-check`:2–4 題英文考題,答案收摺疊。**至少一題考老師強調的內容**;不出「老師和投影片哪裡不同」這類不會考的題目。每題格式: ```
Q1. English question?(中文:中文題目) **Answer**: English answer. 中文:把答案完整講一遍(不是只翻一句),讓看不懂英文的人也知道要怎麼答。
``` - **最後一行**:章節包第 1b 節那行(下一章連結),原樣照抄。讓讀完的人直接點下一章。 - 不要把章節包或這份規則裡的指示句寫進筆記(例如「寫筆記時照投影片寫」「已改正 ASR 錯字」)。 - 長度 8,000–14,000 字元。 2. `chNN.concepts.json`:JSON 陣列,4–12 個考試可能問的術語,每個物件: `name`(英文)、`zh`、`type`(概念/演算法/公式/人物事件/前置知識/行政)、`signal`("老師說會考"/"老師強調"/"核心(我判斷)"/"")、`evidence`(有 signal 前兩種時必填:原句+時間)、`definition_en`(投影片原句;沒有就註明 (textbook)/(lecture)/(my wording))、`plain`(一句中文)、`a4`(≤150 字元英文,可夾極短中文;期末拼貼用的小方塊)、`time`、`slides`、`prereq`(英文名陣列)。 ### 風格鐵律 - 不用 emoji 或裝飾符號(✓✗★⚠ 都不要;→ 可以)。不用 callout。不用 `$`。時間不要用 code 樣式。 - 每個 `##` 段落最多一種視覺元素:一張圖、或一個表格、或一個 mermaid。 - 摺疊標題是問句,前面不加符號。 - 圖片最多 3 張,只放文字取代不了的圖。放法:單獨一行 `[[IMG: | 中文圖說]]`,PNG 用 `slides_to_png.py <圖片資料夾> <頁> --dpi=110` 產生。 - 考試訊號只在老師明確說時標。老師只說「不用背」「不講」就寫「注意:……」。 - 老師口誤或跟投影片不同:照投影片寫,加「注意:老師口頭說的是……」。 - 引用老師的話時,ASR 錯字改成正確的字。 ### 沒有投影片時 不要憑記憶逐字重現課本段落或數值表。英文定義用自己的話寫、句尾標 (my wording);Exam-ready 每行標「(自擬,投影片待補)」。例子只用老師講的。 ### 寫完之後(只做一次) 跑檢查: `C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe C:\Users\user\.claude\scripts\check_note.py --transcript <逐字稿> --slides <投影片 txt …> --start <起> --end <訖> --vid <影片 ID>` - STYLE/VISUAL/TIME/FORMAT:全部改掉。 - QUOTE:確認是不是你改正了 ASR 錯字(是就保留),不是就改成原文或拿掉引號。 - ENGLISH:確認是不是投影片斷行造成的(是就保留),不是就改成投影片原句。 **省額度守則**:章節包裡已經有你需要的全部資料。不要再去讀整份逐字稿、整份投影片、segments.json 或手冊。一次寫好整個檔(Write 一次),檢查後集中修改。