日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JoSE:球面上的词向量和句向量

發布時間:2024/10/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JoSE:球面上的词向量和句向量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者丨蘇劍林

單位丨追一科技

研究方向丨NLP,神經網絡

個人主頁丨kexue.fm

這篇文章介紹一個發表在 NeurIPS 2019 的做詞向量和句向量的模型 JoSE(Joint Spherical Embedding),論文名字是 Spherical Text Embedding。JoSE 模型思想上和方法上傳承自 Doc2Vec,評測結果更加漂亮,但寫作有點故弄玄虛之感。不過筆者決定寫這篇文章,是因為覺得里邊的某些分析過程有點意思,可能會對一般的優化問題都有些參考價值。

論文鏈接:https://arxiv.org/abs/1911.01196

優化目標

在思想上,這篇文章基本上跟 Doc2Vec 是一致的:為了訓練句向量,把句子用一個 id 表示,然后把它也當作一個詞,跟句內所有的詞都共現,最后訓練一個 Skip Gram 模型,訓練的方式都是基于負采樣的。跟 Doc2Vec 不一樣的是,JoSE 將全體向量的模長都歸一化了(也就是只考慮單位球面上的向量),然后訓練目標沒有用交叉熵,而是用 hinge loss:

其中 u 是“中心詞”的詞向量,v 是“上下文詞”的詞向量,它們分別來自兩套詞向量空間,d 則是當前句的句向量,而 u′ 負采樣得到的“中心詞”詞向量,最后的 m>0 是一個常數。以前做相似度模型的讀者應該能很輕松讀懂這個優化目標的含義,它就是希望句子內的“詞-詞-句”打分 cos(u,v)+cos(u,d) 要高于“詞-隨機詞-句”打分 cos(u′,v)+cos(u′,d),但不需要太高,只要高出 m 就行了。

假定 u,v,d 都已經歸一化的情況下,那么目標 (1) 就是(每個向量被假設為列向):

梯度下降

目標 (1) 或 (2) 其實并沒有什么新鮮之處,跟大多數詞向量的目標類似,都是用內積衡量詞的相關性,只不過這里的向量歸一化過,所以內積就是 cos ,至于 hinge loss 和交叉熵孰優孰劣,我倒覺得不會有什么太大差別。?

事實上,筆者覺得文章比較有意思的是它后面對梯度的幾何分析,在這里筆者用自己的話重復一下求解過程。設 x 是全體 u, v, d 向量中的其中一個,然后假設現在固定所有的其他向量,只優化 x ,設總的 loss 為 f(x),那這個優化過程有兩種描述方式:

也就是說,我們可以將這個問題理解為帶有約束 ||x||=1 的 f(x) 最小化問題,也可以通過設 x=θ/||θ||?將它轉化為無約束的 f(θ/||θ||) 最小化問題。由于帶約束的優化問題我們不熟悉,所以只好按照后一種方式來理解。

跟復雜模型不同的是,詞向量算是一個比較簡單的模型,所以我們最好手動求出它的梯度形式,然后編寫對應函數進行梯度下降來優化,而不借助于一些自動求導工具。對于 f(θ/||θ||),我們不難求得:

其中已經對部分變量進行了 x=θ/||θ||?的替換,根據上述結果,梯度下降的迭代公式為:

其中是當前時刻的學習率,而因子 1/||θ||?由于只是個標量,所以被整合到學習率中了。然后我們也可以寫出:

再次將 1/||θ||?整合到學習率中,我們可以得到只有的更新公式:

更新量修正

至此,上述內容都是很常規的推導,而接下來就是我說的比較有意思的地方了。首先有:

可以看到,實際上就是向量在方向上的投影分量,而整個 g 其實就是一個與垂直的向量,如下圖示:

▲?梯度的幾何圖示

在上圖中,紅色向量代表,藍色向量代表,如果沒有 ||x||=1 這個約束的話,那更新量應該直接由決定,但是因為有了約束,所以更新量由決定。然而,有下面兩種不同的,都可能導致同一個 g:

▲?第一種情況,?xf(x)跟x的方向很靠近

▲?第二種情況,?xf(x)跟x的方向幾乎相反

第一種情況的的方向跟很靠近,第二種情況則相反,但它們的 g 是一致的。前面說了,如果沒有約束的話,才是梯度,換言之就是合理的更新方向;現在有了約束,雖然不能指出最合理的梯度方向,但直覺來看,它應該還是跟更新量有關的。

在第一種情況下,跟方向差得比較遠,意味著這種情況下更新量應該大一些;而第二種情況下,跟方向比較一致,而我們只關心的方向,不關心它的模長,所以按理說這種情況下更新量應該小一些。

所以,哪怕這兩種情況下 g 都一樣,我們還是需要有所區分,一個很自然的想法是:既然和的方向的一致性會對更新量的大小有所影響,所以不妨用:

來調節更新量,這個調節因子正好滿足“方向越一致,調節因子越小”的特性。這個自然的想法就導致了最終的更新公式:

故弄玄虛

有意思的地方講完了,下面講一下沒有意思的地方了。對 NLP 有稍微深入一點了解的讀者(看過 Word2Vec 的數學原理,推導過常規模型的梯度)應該會覺得,上面前兩節內容并沒有什么很深奧的內容,第三節的幾何解釋和學習率調節有點新穎,但也是有跡可循的內容。不過要是去看原論文的話,那感覺可能就完全不一樣了,作者用“概率分布”、“黎曼流形上的優化”等語言,把上述本該比較容易理解的內容,描述得讓人云里霧里,深有故弄玄虛之感。?

首先,我最不理解的一點是,作者在一開始就做了一個不合理的假設(將詞向量連續化),然后花了不少篇幅來論證和對應著 Von Mises–Fisher 分布。然后呢?就沒有然后了,后面的所有內容跟這個 Von Mises–Fisher 分布可以說沒有半點關系,所以不理解作者寫這部分內容的目的是什么。?

接著,在優化那部分,作者說帶約束 ||x||=1 的 f(x) 最小化問題不能用梯度下降,所以只能用“黎曼梯度下降”,然后就開始“炫技”了:先說說黎曼流形,然后給出一般的指數映射,再然后給出黎曼梯度,一波高端操作下來,最后卻只保留了一個大家都能懂的方案: x=θ/||θ||。這時我就很“服氣”了,雖然作者的邏輯和推導都沒有毛病,但是一波操作下來最后卻給看眾一個 x=θ/||θ||?的樸素結果,那為什么不一開始就直接討論 f(x=θ/||θ||) 的優化呢?非得要去黎曼流形上面把普通讀者繞暈??

此外,我說的比較有意思的部分,就是更新量的幾何解釋以及得到的調節因子,作者也說得挺迷糊的。總之,筆者認為,論文的理論推導部分,很多地方都充斥著很多不必要的專業術語,無端加深了普通看眾的理解難度。?

最后強調一下,筆者從來不反對“一題多解”,也不反對將簡單的內容深化、抽象化,因為“深化”、“抽象化”確實也可能獲得更全面的認識,或者能顯示各個分支之間的聯系。但是這種“深化”、“抽象化”應該要建立在一個大多數人都能理解的簡單解的基礎上進行的,而不是為了“深化”、“抽象化”而特意舍去了大多數人能理解的簡單解。?

實驗結果

吐槽歸吐槽,在實驗部分,JoSE 做得還是很不錯的。首先給出了 JoSE 的高效的 C 語言實現。

https://github.com/yumeng5/Spherical-Text-Embedding

我試用了一下,訓練確實很快速,訓練好的詞/句向量結果可以用 gensim 的 KeyedVectors 加載。另外我還看了一下源代碼,很簡練清晰,也方便做二次修改。至于實驗結果,論文給出的詞/句向量評測上面,JoSE 也是比較領先的:

▲?詞相似度評測

▲?文本聚類評測

文章總結

本文分享了一個發表在 NeurIPS 2019 的文本向量模型 JoSE,著重講了一下筆者覺得有啟發性的部分,并用自己的方法給出了推導過程。JoSE 可以認為是 Doc2Vec 的自然變種,在細微之處做了調整,并且在優化方法上提出了作者自己的見解,除卻一些疑似故弄玄虛的地方之外,還不失為一個可圈可點的工作。

點擊以下標題查看作者其他文章:?

  • 當Bert遇上Keras:這可能是Bert最簡單的打開姿勢

  • 玩轉Keras之Seq2Seq自動生成標題 | 附開源代碼

  • 一文讀懂「Attention is All You Need」| 附代碼實現

  • 基于CNN的閱讀理解式問答模型:DGCNN

  • 基于DGCNN和概率圖的輕量級信息抽取模型

  • ICLR 2019最佳論文 | 用有序神經元表達層次結構

#投 稿 通 道#

?讓你的論文被更多人看到?

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術干貨。我們的目的只有一個,讓知識真正流動起來。

?????來稿標準:

? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?

? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?

? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志

???? 投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨在附件中發送?

? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

▽ 點擊 |?閱讀原文?| 查看作者博客

總結

以上是生活随笔為你收集整理的JoSE:球面上的词向量和句向量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。