2019斯坦福CS224N筆記-(2)詞向量的優(yōu)化與評(píng)價(jià)

【2019斯坦福CS224N筆記】(2)詞向量的優(yōu)化與評(píng)價(jià)

[toc]

寫在前面

在【2019斯坦福CS224N筆記】(1)中牡昆,我們介紹了計(jì)算機(jī)是如何表示單詞的語(yǔ)義攒霹,以及重點(diǎn)講解了word2vec方法及其梯度下降的推導(dǎo)菇存,但是其中還存在一些問題灌诅,需要進(jìn)行優(yōu)化。本節(jié)我們將介紹一些關(guān)于word2vec的優(yōu)化方法及詞向量的評(píng)價(jià)方式停做。


本節(jié)的主要內(nèi)容包括:

  • word2vec的優(yōu)化
  • word2vec的一些表示方法
  • 如何評(píng)價(jià)詞向量

一钳踊、word2vec的優(yōu)化

1.復(fù)習(xí):word2vec的主要思想:

word2vec算法一般可分為CBOW和Skip-Grams兩種模型衷敌。我們?nèi)绻ㄟ^上下文來預(yù)測(cè)中心的詞是什么,這樣的方法叫做Continuous Bag of Words(CBOW)拓瞪。反之缴罗,我們?nèi)羰窍胍ㄟ^中心詞來預(yù)測(cè)上下文的詞,這樣的方法叫Skip-grams祭埂,本文講的是第二種方法面氓,其主要思路為:

  • 遍歷整個(gè)語(yǔ)料庫(kù)中的每個(gè)單詞
  • 每個(gè)單詞用分別用中心詞和上下文詞向量表示
  • 更新參數(shù)以使目標(biāo)函數(shù)最小化

順便說一下,為什么我們要用兩個(gè)向量表示一個(gè)單詞蛆橡?答案很簡(jiǎn)單舌界,因?yàn)閮蓚€(gè)向量更容易我們表示單詞,因?yàn)橥粋€(gè)單詞泰演,它既可能作為中心詞呻拌,也可能是別的單詞的上下文詞。你可以通過平均兩個(gè)向量來得到最后的一個(gè)向量睦焕,也可以求和藐握,拼接等等。

那么垃喊,Word2vec中的參數(shù)是如何計(jì)算呢猾普?如圖:

  1. 首先,我們需要注意在TensorFlow本谜、Pytorch等一些框架中初家,單詞向量表示為行 。U耕突、V兩個(gè)矩陣都有六個(gè)單詞笤成,每個(gè)單詞有一個(gè)五維向量评架。其中U為每個(gè)單詞作為上下文詞時(shí)的表示向量眷茁,V為每個(gè)單詞作為中心詞時(shí)的表示向量
  2. 對(duì)U,v4Tv_4^Tv4T做點(diǎn)積運(yùn)算纵诞,其中v_4是V矩陣中的一個(gè)行向量上祈。
  3. 最后對(duì)上一步的每一個(gè)數(shù)字上,做softmax,這就會(huì)得到上下文中單詞的概率分布

我們?cè)賮砗?jiǎn)單回顧一下梯度下降算法:

  • 我們最小化目標(biāo)函數(shù):J
  • 而梯度下降是一種最小化J的算法
  • 思想:對(duì)于當(dāng)前θ值登刺,計(jì)算J的值籽腕,然后在負(fù)梯度的方向上邁步

  • 更新方程(以矩陣表示)

  • 新方程(對(duì)于單個(gè)參數(shù))

  • 算法

但是,隨機(jī)梯度下降算法存在一個(gè)很大問題纸俭。即目標(biāo)函數(shù)中的每個(gè)向量皇耗,是語(yǔ)料庫(kù)中所有窗口的函數(shù)(數(shù)以億計(jì)),所以計(jì)算J(θ)的梯度非常耗費(fèi)資源揍很,您需要等待很長(zhǎng)時(shí)間才能進(jìn)行一次更新郎楼,對(duì)于幾乎所有的神經(jīng)網(wǎng)絡(luò)來說,這是一個(gè)非常糟糕的方法窒悔。所以我們提出了用隨機(jī)梯度下降算法進(jìn)行優(yōu)化呜袁。

2.隨機(jī)梯度下降

隨機(jī)梯度下降算法(Stochastic gradient descent,SGD)简珠,我們只取了一個(gè)采樣窗口阶界,在實(shí)踐中,我們采用一個(gè)small batch,一般為32或者64的batch聋庵,用小批量計(jì)算梯度膘融。這樣做有兩個(gè)優(yōu)點(diǎn),一個(gè)是可以減少噪音估計(jì)祭玉。第二個(gè)原因托启,如果我們?cè)谑褂肎PU時(shí)希望計(jì)算速度快,需要得到一大堆相同的操作并行化攘宙。因此屯耸,如果你使用32或64等批次,你可以獲得更好的加速蹭劈。而不是用42或者別的數(shù)字疗绣,只因?yàn)樗悄阕钕矚g的數(shù)字。

隨機(jī)梯度下降算法:

  • 隨機(jī)梯度下降與詞向量:迭代地在每個(gè)這樣的窗口為SGD取梯度铺韧,但是在每個(gè)窗口中多矮,我們最多只有2m + 1個(gè)單詞,所以?θJt(θ)\nabla_\theta J_t(\theta)?θJt(θ)非常稀疏(會(huì)有很多的0元素)哈打,我們只能更新出樣本中出現(xiàn)的向量塔逃,如圖:

3.negative sampling

為什么提出負(fù)樣本這個(gè)概念?因?yàn)闅w一化時(shí)料仗,分母的計(jì)算開銷太大湾盗。如下圖。因此立轧,在標(biāo)準(zhǔn)word2vec中格粪,使用負(fù)抽樣實(shí)現(xiàn)skip gram模型躏吊,我們以前是研究一個(gè)多分類問題:給定一個(gè)單詞,預(yù)測(cè)其周圍的單詞可能是N個(gè)中的哪一個(gè)(N為字典的長(zhǎng)度)帐萎。而負(fù)采樣算法將問題變?yōu)榱?strong>二分類:給定兩個(gè)詞比伏,預(yù)測(cè)這兩個(gè)詞是否應(yīng)該挨在一起。

我們令x為第一個(gè)詞o的U詞向量和第二個(gè)詞c的V詞向量的乘積疆导,即x = Uo * Vc采用sigmoid函數(shù)來得到概率分布赁项。如果這兩個(gè)詞應(yīng)該挨在一起,比如“我”澈段,“是”這兩個(gè)詞挨在一起的概率很大肤舞,組合可以是“我是個(gè)好人”。那么x = Uo * Vc后均蜜,我們希望x是一個(gè)很大的整數(shù)李剖。若兩個(gè)詞毫無(wú)關(guān)聯(lián),如“螞蟻”囤耳,“木星”篙顺,我們希望x是一個(gè)絕對(duì)值很大的負(fù)數(shù)。我們使用sigmoid函數(shù)可以將x的取值縮放到0-1之間充择。我們用σ(x)來表示兩個(gè)詞是否應(yīng)該挨在一起的概率德玫。

主要思想(該思路來源于論文:“Distributed Representations of Words and Phrases and their Compositionality” (Mikolov et al. 2013)):**對(duì)分子進(jìn)行改變。**即椎麦,想要將實(shí)際觀察到的單詞概率更大化宰僧。訓(xùn)練一個(gè)真詞對(duì)(中心詞及其上下文窗口中的詞)與隨機(jī)采樣幾個(gè)噪聲對(duì)(一般不超過15個(gè),使中心詞與隨機(jī)詞搭配,盡量給它們盡可能低的概率)

該論文提出的整體目標(biāo)函數(shù)(使其最大化)如下圖:

下圖是改進(jìn)后的新目標(biāo)函數(shù):

  • 取k個(gè)負(fù)樣本观挎,例如:10琴儿,15個(gè),使真實(shí)的上下文單詞出現(xiàn)的概率最大化嘁捷,加負(fù)號(hào)后造成,相當(dāng)于使問題最小化。
  • 使用unigram分布來挑選負(fù)樣本詞雄嚣,其中晒屎,分母Z是用于歸一化,以使所有的詞被選取的概率和等于一缓升,即∑p(w)=1鼓鲁。通過這種方式,減少你采樣中非常常見的單詞港谊,使頻率較低的單詞(稀有詞)被更頻繁地采樣
  • 需要注意骇吭,窗口的大小我們作為一個(gè)超參數(shù)(一般為2-10),進(jìn)行調(diào)試封锉,嘗試幾個(gè)數(shù)字绵跷,來看看實(shí)際效果,這里并沒有什么科學(xué)依據(jù)成福。這里3/4其實(shí)也是一個(gè)超參數(shù)碾局。

unigram分布如下圖所示:


接下來我們來簡(jiǎn)單總結(jié)一下詞向量的表示方法

二、基于統(tǒng)計(jì)的一些詞向量表示方法

1.HAL算法(Hyperspace Analogue to Language method)

與word2vec類似奴艾,在每個(gè)單詞周圍使用窗口净当,同時(shí)包含語(yǔ)法(POS)和語(yǔ)義信息。例子(基于窗口的共現(xiàn)矩陣):

  • 窗口長(zhǎng)度1(更常見:5-10)
  • 對(duì)稱的(與左右上下文無(wú)關(guān))
  • 語(yǔ)料庫(kù)示例:I like deep learning.I like NLP.I enjoy flying.

該算法存在一些問題:
如果語(yǔ)料庫(kù)的詞匯量很大蕴潦,非常高維:需要很大的存儲(chǔ)空間 共現(xiàn)矩陣存在稀疏性問題像啼。

2.LSA算法(Latent Semantic Analysis)

為了解決上述問題,我們可以采用低維向量表示潭苞。主要思想:將“大多數(shù)”重要信息存儲(chǔ)在一個(gè)固定的忽冻、少量的維度中:一個(gè)密集的向量。通常是25-1000個(gè)維度此疹,類似于word2vec僧诚。如何降低維度?我們可以采用共現(xiàn)矩陣X的奇異值分解(對(duì)于任何矩陣,都可以做奇異值分解)蝗碎。因式分解X到UΣV^T, U和V是正交的湖笨。即 ,如下圖:

如圖,在將X分解為三個(gè)矩陣后蹦骑,我們舍棄圖中被框柱(這些部分存儲(chǔ)的信息不是很重要)慈省。之后我們將剩余的U、∑眠菇、V矩陣重新合并為X矩陣边败。新的X矩陣會(huì)比原來的矩陣小很多(根據(jù)舍棄U、∑捎废、V矩陣的比例而定)放闺,且保留的內(nèi)容都是十分重要的信息。

當(dāng)然缕坎,這里也有一些小的trick怖侦,比如說:

  • the/he/has這里詞出現(xiàn)的次數(shù)太多了∶仗荆可以限制共現(xiàn)矩陣X中每個(gè)值最大取100匾寝,或者在矩陣X中刪除所有the/he/has這樣常見的詞。
  • 計(jì)算次數(shù)時(shí)可以加權(quán)計(jì)算荷腊。離中心詞越近的詞權(quán)重越高艳悔,越遠(yuǎn)的詞權(quán)重越低。另外女仰,除了用SVD降維猜年,我們還可以使用PCA來實(shí)現(xiàn)降維抡锈。

三、基于神經(jīng)網(wǎng)絡(luò)方法

神經(jīng)網(wǎng)絡(luò)方法:我們將詞向量當(dāng)做神經(jīng)網(wǎng)絡(luò)中的一層(詞嵌入層)乔外。假設(shè)我們的詞典有N個(gè)詞床三,詞向量維度為D。那么我們輸入一個(gè)詞的one-hot編碼(X = [0, 0, 0, …, 1, … 0, 0]^T杨幼,大小為N * 1)撇簿,經(jīng)過詞嵌入層W(大小為N*D)之后,我們會(huì)得到該詞的詞向量(如X’ = [0.23, -0.49, 0.32, …, 0.48]差购,1 * D)四瘫。即一個(gè)詞的詞向量為:

此處詞嵌入W的取值,我們可以采用之前HAL欲逃、LSA找蜜、word2vec等算法得到的詞向量,也可以完全隨機(jī)初始化稳析。

只要我們的訓(xùn)練樣本足夠大锹杈,我們完全可以讓執(zhí)行某一NLP任務(wù)(如機(jī)器翻譯、閱讀理解迈着、文本分類等等)的神經(jīng)網(wǎng)絡(luò)的詞嵌入層隨機(jī)初始竭望,詞嵌入層會(huì)隨著神經(jīng)網(wǎng)絡(luò)的訓(xùn)練而不斷更新,直到收斂裕菠。在有海量訓(xùn)練數(shù)據(jù)的情況下咬清,隨著神經(jīng)網(wǎng)絡(luò)一起訓(xùn)練的詞向量往往學(xué)習(xí)到了詞與詞之間的相似性,以及捕獲了語(yǔ)法和語(yǔ)義的信息奴潘。關(guān)于如何用神經(jīng)網(wǎng)絡(luò)執(zhí)行NLP任務(wù)旧烧,我們將會(huì)在下一篇文章中講述。

迭代法:即針對(duì)某一個(gè)目標(biāo)函數(shù)画髓,通過不斷迭代掘剪,如梯度下降法或者隨機(jī)梯度下降算法使目標(biāo)函數(shù)不斷變小。當(dāng)目標(biāo)函數(shù)收斂至某一極小值時(shí)奈虾,我們選擇該過程的中間產(chǎn)物作為我們的詞向量夺谁。常見的算法有word2vec、Glove肉微。

基于計(jì)數(shù)的預(yù)測(cè)vs.直接預(yù)測(cè)的比較:

基于計(jì)數(shù)的算法訓(xùn)練速度相對(duì)較快匾鸥,且很好地利用了統(tǒng)計(jì)學(xué)的知識(shí)。但是這種算法只是捕捉到了詞與詞之間的相似度碉纳。

而使用直接預(yù)測(cè)的算法勿负,雖然能捕獲到詞語(yǔ)相似度以外更復(fù)雜的語(yǔ)義信息,使用此類算法得到的詞向量用于NLP任務(wù)時(shí)可以獲得更好的效果劳曹,但此類算法沒有很好地利用統(tǒng)計(jì)學(xué)知識(shí)奴愉,且訓(xùn)練時(shí)間一般較長(zhǎng)琅摩。

四、基于統(tǒng)計(jì)與預(yù)測(cè)相結(jié)合——Glove

我們可以結(jié)合兩種思想锭硼,通過控制共現(xiàn)概率與編碼意義之間的比率房资,從而有了Glove算法。

如上圖所示账忘,當(dāng)x取solid時(shí)志膀,ice(冰)周圍出現(xiàn)的概率很大熙宇,在steam(蒸汽)這個(gè)詞周圍出現(xiàn)的概率很小鳖擒。那么 P(x|ice)/P(x|steam)將會(huì)是一個(gè)很大的值,那就意味著x和ice關(guān)系極大烫止,和steam關(guān)系極小蒋荚。

在word2vec負(fù)采樣中,我們希望兩個(gè)詞的詞向量Uo * Vc很大代表詞o和詞c相鄰馆蠕,Uo * Vc很小代表詞o和詞c不相鄰期升。類比這個(gè)思想,在Glove中互躬,每個(gè)詞只有一個(gè)詞向量播赁,我們希望詞i和詞j的詞向量乘積可以代表詞i在詞j周圍出現(xiàn)的概率。

如上圖吼渡,glove中容为,每個(gè)詞只有一個(gè)詞向量,詞i和詞j的詞向量乘積代表詞i在詞j周圍出現(xiàn)的概率寺酪。Wx ( Wa – Wb )越大坎背,x與a有關(guān);越小寄雀,x與b有關(guān)得滤;取值適中,x可能與a和b都有關(guān)或都無(wú)關(guān)盒犹。

這里的P(x|a)是詞a周圍x出現(xiàn)的頻率懂更,是通過計(jì)數(shù)的方法來統(tǒng)計(jì)的,類似LSA算法急膀,需要計(jì)算共現(xiàn)矩陣

此外膜蛔,glove模型還有一個(gè)目標(biāo)函數(shù),此處就體現(xiàn)了預(yù)測(cè)算法的特點(diǎn):

上圖中w是詞向量脖阵,X是共現(xiàn)矩陣皂股,b是偏置(神經(jīng)網(wǎng)絡(luò)中很常見)。f(x)是一個(gè)人為規(guī)定的函數(shù)命黔,該函數(shù)如下圖呜呐【徒铮可近似為min(t,100),意義是降低常見的”the”蘑辑,”a” 這類詞的重要性,f函數(shù)限制了常見單詞對(duì)系統(tǒng)的影響洋机。glove模型即使使用小語(yǔ)料庫(kù)和小向量,性能也很好洋魂。

我們最小化上述目標(biāo)函數(shù)J绷旗,其意義是我們希望兩個(gè)詞向量的乘積可以代表著兩個(gè)詞共同出現(xiàn)的頻率。

五副砍、如何評(píng)詞向量衔肢?

與NLP的一般評(píng)估相關(guān):內(nèi)部與外部評(píng)價(jià)。

  • 內(nèi)部評(píng)價(jià)是在一個(gè)中間任務(wù)上評(píng)價(jià)詞向量的好壞豁翎。該方法計(jì)算速度快角骤,能幫助我們更好地理解系統(tǒng)。但是在Intrinsic上表現(xiàn)好并不意味著詞向量在真實(shí)任務(wù)中會(huì)有好的效果心剥。
  • 外部評(píng)價(jià)是在一個(gè)真正的NLP任務(wù)(如文本分類邦尊、機(jī)器翻譯)中使用詞向量,以此來評(píng)判詞向量的好壞优烧。但是計(jì)算Extrinsic任務(wù)會(huì)消耗很長(zhǎng)的時(shí)間蝉揍。即使Extrinsic任務(wù)出現(xiàn)了問題,我們也不清楚是詞向量的問題還是其他子系統(tǒng)的問題畦娄。

關(guān)于Intrinsic:

我們希望詞向量能捕獲語(yǔ)義和語(yǔ)法信息又沾。(語(yǔ)義如 男孩:女孩 = 男人:女人,語(yǔ)法則如 small:smaller = tall:taller)

比如詞向量可以知道“man”類比于“woman”就相當(dāng)于“king”類比于“queen”纷责;“eat”類比于“ate”就相當(dāng)于“drink”類比于“drunk”;“small”類比于“smaller”就相當(dāng)于“tall”類比于“taller”等等捍掺。

這樣的類比在詞向量中其實(shí)很簡(jiǎn)單,“woman”詞向量減去“man”詞向量近似于“king”詞向量減去“queen”詞向量即可再膳。就如下圖:

我們先人為規(guī)定幾百條挺勿、上千條這樣的類比規(guī)則。然后采用man:woman = king:?的方式喂柒,已知三個(gè)詞不瓶,求另一個(gè)詞。算法如下:

在詞向量應(yīng)用上圖算法得到另一個(gè)詞之后灾杰,我們對(duì)比詞向量得到的詞是否與我們?nèi)藶橐?guī)定的詞相符蚊丐。如man:woman = king:? 中,問號(hào)處應(yīng)該填queen艳吠。

我們統(tǒng)計(jì)其預(yù)測(cè)的正確率麦备,以此來代表詞向量的好壞。

不同算法(CBOW,Glove等)在不同詞向量維度上(100維凛篙、300維黍匾、1000維)以及不同訓(xùn)練文本大小(15億——42億)上訓(xùn)練的詞向量在某一個(gè)Intrinsic評(píng)價(jià)數(shù)據(jù)集上的結(jié)果。(Sem.代表語(yǔ)義得分呛梆,Syn.代表句法得分锐涯,Tot.代表總分)

上圖說明:

不同的詞向量訓(xùn)練算法的效果截然不同。

詞向量的效果隨著訓(xùn)練文本量的增加而增加填物。

不對(duì)稱上下文(只有左邊的單詞)就不那么好了

詞向量維度過低或過高時(shí)纹腌,在300維的時(shí)候,訓(xùn)練效果較好滞磺。(過低模型偏差大升薯,過高則模型方差大)

glove模型在Window size = 8 時(shí)效果比較好

上圖說明,在維基百科中的數(shù)據(jù)語(yǔ)義精確性比較高雁刷,可能是因?yàn)榫S基百科本身里的內(nèi)容就是在說什么是什么的問題覆劈。

Intrinsic評(píng)判標(biāo)準(zhǔn)除了上述的a:b=c:? 查看語(yǔ)義語(yǔ)法以外保礼,還有查看詞語(yǔ)之間的相似度沛励。

比如找10個(gè)人,問他們認(rèn)為“老虎”和“貓”之間的相似度是多少炮障,讓他們從0-10中打分目派。之后我們平均這10個(gè)人的打分,得到“老虎”這個(gè)單詞和“貓”這個(gè)單詞的相似度胁赢。以這樣的方法企蹭,我們?nèi)藶闃?biāo)記單詞之間的相似度。計(jì)算詞向量中兩個(gè)單詞的相似度(歐氏距離智末、乘積谅摄、向量夾角等方法),然后對(duì)比其與我們?nèi)藶槎x的標(biāo)準(zhǔn)的差距系馆。

其他:

一詞多義的現(xiàn)象很普遍送漠。像“好”這樣的詞,可以是“質(zhì)量好”的意思由蘑,也可以是“非趁龉眩”的意思,如“好奇怪”尼酿。此時(shí)爷狈,如果能將一個(gè)詞的多個(gè)意思用不同的詞向量來表示就更好的。

讀者若是有興趣可以參考Linear Algebraic Structure of Word Senses, with Applications to Polysemy裳擎。該文章講述了如何將多義詞用多個(gè)詞向量來表達(dá)涎永。

小結(jié)

計(jì)算詞向量的方法多種多樣。定義并最小化一個(gè)目標(biāo)函數(shù),從而學(xué)習(xí)到某些參數(shù)羡微。這是深度學(xué)習(xí)中最常見的方法支救。負(fù)采樣方法將多分類問題變?yōu)槎诸悊栴},避免了計(jì)算softmax函數(shù)拷淘,大大降低了計(jì)算量各墨。 Glove算法結(jié)合了共現(xiàn)矩陣與優(yōu)化目標(biāo)函數(shù)。由Glove算法的到的詞向量表現(xiàn)效果很好启涯。

評(píng)價(jià)詞向量的好壞有Intrinsic Evaluation(內(nèi)部評(píng)價(jià))和Extrinsic Evaluation(外部評(píng)價(jià))兩種贬堵。內(nèi)部評(píng)價(jià)可快速得知詞向量的對(duì)于語(yǔ)法、語(yǔ)義等信息的捕獲效果结洼,但是不知道詞向量在真實(shí)任務(wù)中的效果如何黎做。外部評(píng)價(jià)可以知道詞向量的應(yīng)用效果如何,但計(jì)算太慢松忍。

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蒸殿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸣峭,更是在濱河造成了極大的恐慌宏所,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摊溶,死亡現(xiàn)場(chǎng)離奇詭異爬骤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)莫换,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門霞玄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拉岁,你說我怎么就攤上這事坷剧。” “怎么了喊暖?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵惫企,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我哄啄,道長(zhǎng)雅任,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任咨跌,我火速辦了婚禮沪么,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锌半。我一直安慰自己禽车,他們只是感情好寇漫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殉摔,像睡著了一般州胳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逸月,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天栓撞,我揣著相機(jī)與錄音,去河邊找鬼碗硬。 笑死瓤湘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恩尾。 我是一名探鬼主播弛说,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼翰意!你這毒婦竟也來了木人?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤冀偶,失蹤者是張志新(化名)和其女友劉穎醒第,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔫磨,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淘讥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年圃伶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堤如。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窒朋,死狀恐怖搀罢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侥猩,我是刑警寧澤榔至,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站欺劳,受9級(jí)特大地震影響唧取,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜划提,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一枫弟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹏往,春花似錦淡诗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)款违。三九已至,卻和暖如春群凶,著一層夾襖步出監(jiān)牢的瞬間插爹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工请梢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留递惋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓溢陪,卻偏偏與公主長(zhǎng)得像萍虽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子形真,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容