最近有開發(fā)者自制了一套圖書推薦系統(tǒng),使用Word2Vec算法將書目表示為向量,可以同時(shí)獲得幾種書籍的推薦結(jié)果,并獲得書籍的TSNE圖及相似度最高的推薦。圖書數(shù)據(jù)來自GoodReads上的評價(jià)最高的前10000本書。開發(fā)者表示,采用較小的batchsize和長度可變的窗口可提升推薦相似度。
近日,有開發(fā)人員自制了一套圖書推薦系統(tǒng),使用Word2Vec算法將書目表示為向量,可以同時(shí)獲得幾種書籍的推薦,并獲得書籍的TSNE圖以及相似度最高的推薦信息。訓(xùn)練數(shù)據(jù)來自GoodReads上的評價(jià)最高的前10000本書。
作者將這一系統(tǒng)在Reddit論壇上進(jìn)行了算法介紹和推薦效果圖分享,引發(fā)廣泛討論。我們不妨來看看這個(gè)自制薦書系統(tǒng)是怎么做的。
以下是作者自己給出的系統(tǒng)展示和介紹,最后是技術(shù)實(shí)現(xiàn)環(huán)節(jié)的相關(guān)討論。
下面的圖片來自兩個(gè)2D TSNE生成的圖書嵌入圖。第一部分是數(shù)據(jù)中最常出現(xiàn)的3000本書的TNSE(已經(jīng)過10000本書的數(shù)據(jù)訓(xùn)練),第二部分是全部10000本書的TSNE。
我做了兩個(gè)TSNE圖,因?yàn)殡S著書籍書目的增加,推薦的準(zhǔn)確度趨于下降,所以我想查看最常出現(xiàn)的書籍的分布圖,然后再處理其余的書。
首先最常出現(xiàn)的3000本書的TSNE圖,先給出幾個(gè)局部放大圖,最后放上全圖。
下圖為作于最近30-40年間的奇幻/古典奇幻類書
中間的部分大部分是漫畫書,周圍是一些科學(xué)類書籍
宇宙科幻類:
喜劇類(主要是電視劇)
全圖
然后是全部10000本書的TSNE圖,同樣先給出幾個(gè)局部圖,最后是全圖。
歷史類書籍。圖左半部為美國史,右半部為世界通史
宇宙史和起源理論
兒童經(jīng)典書目
食品科學(xué)和新聞類
Word2Vec薦書系統(tǒng)的技術(shù)實(shí)現(xiàn)
下面是一些技術(shù)上的實(shí)現(xiàn)要點(diǎn),對機(jī)器學(xué)習(xí)感興趣的小伙伴們可以關(guān)注一下。
1、使用較小的batch size
訓(xùn)練中使用batch size較?。?2和64)對于確保所有書籍向量的穩(wěn)健性非常重要。在更高的batch size(128、256和512)下,大多數(shù)向量具有相當(dāng)?shù)南嗨菩?,但似乎總是有一些書的向量不具備相似性?/p>
以《哈利·波特》2-7部的推薦結(jié)果為例,如果直接查看數(shù)據(jù),很容易知道與這些書相似度最高的書應(yīng)該是該系列中的其他《哈利·波特》書,但最初推薦模型給出的相似圖書結(jié)果并非如此。但是,在把batch size設(shè)置為64后,推薦結(jié)果的相似度很快得到明顯改善。
由于平均窗口大小為112,并在20到200之間變化(取決于用戶閱讀的書籍?dāng)?shù)量),因此像《哈利·波特》這樣的系列叢書中的一些書,很可能會與其他書籍匹配為相似了。
假設(shè)某系列叢書中共有7本書,并且用戶對所有7本書都進(jìn)行了評分,該用戶還評價(jià)了112本其他書,那么,其中一本《哈利·波特》書與另一本《哈利·波特》在該用戶的標(biāo)簽下實(shí)現(xiàn)配對的概率是6/112。
在這種情況下,由于word2vec試圖一次性優(yōu)化多個(gè)嵌入,因此對于窗口大小很小且恒定的情況,更高的batch size會比word2vec算法的應(yīng)用對結(jié)果優(yōu)化造成更加明顯的阻礙。
2、Softmax嵌入向量算術(shù)
到目前為止,上面的所有矢量算術(shù)示例都是我在書籍輸入嵌入上執(zhí)行加法和/或減法,然后針對softmax嵌入對結(jié)果矢量執(zhí)行相似性結(jié)果的情況。比結(jié)果向量與輸入嵌入進(jìn)行比較要穩(wěn)健得多。
3、可變長度窗口(VLW)
最初的Word2Vec Cbow算法使用固定的窗口大小的單詞用作特定目標(biāo)的輸入。比如,如果窗口大小是目標(biāo)詞左側(cè)和右側(cè)的2個(gè)單詞,那么在這句“The cat in the hat”中,如果目標(biāo)詞(標(biāo)簽)是“in”,那么單詞'The ','cat','the'和'hat'將各自向量進(jìn)行平均,并將得到的結(jié)果向量作為輸入。
而在這個(gè)薦書系統(tǒng)中,窗口大小不可能是固定的。對于特定數(shù)據(jù)點(diǎn)(輸入),由用戶輸入的所有對全部書籍的評價(jià)都可能作為潛在的輸入,而且每個(gè)用戶瀏覽過的書籍?dāng)?shù)量彼此存在很大差異,因此窗口大小不可能恒定。
盡管窗口大小不是恒定的,但是平均輸入向量的數(shù)量是保持不變的。所有提供的數(shù)據(jù)都使用兩個(gè)平均向量作為輸入,這樣向量的算術(shù)屬性的穩(wěn)健性是最高的。改變輸入平均向量的數(shù)量,在相似性推薦屬性方面并沒有表現(xiàn)出明顯優(yōu)勢。
-
算法
+關(guān)注
關(guān)注
23文章
4629瀏覽量
93234 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8438瀏覽量
132970
原文標(biāo)題:【Reddit今日最火】Lit2Vec圖書推薦系統(tǒng),自動推薦適合你的AI好書!
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論