ULMFiT-用于文本分類的通用語言模型微調(diào)

ULMFiT-用于文本分類的通用語言模型微調(diào)

翻譯自《Universal Language Model Fine-tuning for Text Classification》

摘要

歸納遷移學(xué)習(xí)對(duì)于計(jì)算機(jī)視覺有很大的影響,但現(xiàn)有的NLP中的方法仍然需要特定任務(wù)的修改和從頭開始的訓(xùn)練。我們提出通用語言模型微調(diào)(ULMFiT),一種可以應(yīng)用NLP中任何任務(wù)的遷移學(xué)習(xí)方法。同時(shí),我們將介紹微調(diào)語言模型的關(guān)鍵技術(shù)。 我們的方法在6個(gè)文本分類的任務(wù)上顯著優(yōu)于當(dāng)前最好模型,并再大多數(shù)數(shù)據(jù)集上減少18-24%的錯(cuò)誤率。而且,即使只有100個(gè)標(biāo)簽示例,它的表現(xiàn)可以和100倍數(shù)據(jù)從頭開始訓(xùn)練的效果相比擬。 我們開放了我們的預(yù)訓(xùn)練模型和代碼 。

1 簡介

歸納遷移學(xué)習(xí)對(duì)計(jì)算機(jī)視覺(CV)產(chǎn)生了很大的影響關(guān)于。 應(yīng)用CV模型(包括對(duì)象檢測,分類和語義分割)很少從頭開始訓(xùn)練,而是用已有的模型進(jìn)行微調(diào),如在ImageNet,MS-COCO等數(shù)據(jù)集上預(yù)訓(xùn)練的模型。

文本分類是具有現(xiàn)實(shí)應(yīng)用的一個(gè)自然語言處理任務(wù)類別,如:垃圾郵件,欺詐和機(jī)器人檢測等應(yīng)用程序,應(yīng)急響應(yīng)和商業(yè)文件分類,如用于法律發(fā)現(xiàn)。

雖然深度學(xué)習(xí)模型許多NLP任務(wù)上達(dá)到了最好的效果,但這些模型無一不是從頭開始訓(xùn)練的,需要大型數(shù)據(jù)集和漫長的數(shù)據(jù)收集時(shí)間。目前自然語言處理中用到遷移學(xué)習(xí)的,主要是微調(diào)預(yù)訓(xùn)練的詞嵌入,這是一種簡單的遷移技術(shù),它只針對(duì)模型的第一層,但在對(duì)實(shí)際效應(yīng)有著巨大的影響,并運(yùn)用于各種最好的模型中。最新的方法將來自其他任務(wù)的嵌入與不同層次的輸入相結(jié)合,但仍然從頭開始訓(xùn)練主要任務(wù)模型,并將預(yù)訓(xùn)練嵌入視為固定參數(shù),限制了其有用性。

鑒于預(yù)訓(xùn)練的好處,我們應(yīng)該能比隨機(jī)初始化其余模型參數(shù)做得更好。但是,使用微調(diào)的遷移學(xué)習(xí)在NLP領(lǐng)域卻暫時(shí)還未獲得成功。 戴和樂 ( 2015年 )首先提出,我們可以微調(diào)語言模型(LM),但需要數(shù)百萬同領(lǐng)域文本以實(shí)現(xiàn)良好的效果,這嚴(yán)重限制了它的適用性。

我們表明,有問題的不是LM微調(diào)的想法, 而是我們?nèi)狈τ行У厝绾斡?xùn)練他們的知識(shí),這阻礙了其更廣泛的使用。 LM會(huì)過擬合于小型數(shù)據(jù)集并在微調(diào)一個(gè)分類器的時(shí)候遭受災(zāi)難性的遺忘。相對(duì)于CV而言,NLP模型通常更加淺,因此需要不同的微調(diào)方法。

我們提出了一種新方法--通用語言模型微調(diào)(ULMFiT),以解決這些問題,并各種NLP任務(wù)上實(shí)現(xiàn)魯棒的歸納遷移學(xué)習(xí),類似于微調(diào)ImageNet那樣:相同的3層具有相同的超參數(shù)LSTM架構(gòu) ,沒有添加除了微調(diào)dropout超參數(shù)之外的其他東西,并在6個(gè)文本分類任務(wù)中優(yōu)于其他工業(yè)化的遷移學(xué)習(xí)方法。在IMDb上,使用100個(gè)標(biāo)注的樣板,ULMFiT可以達(dá)到用10倍數(shù)據(jù)從頭開始訓(xùn)練的性能,再加上50k未標(biāo)記的樣例 - 則可以達(dá)到100倍以上數(shù)據(jù)的效果。

貢獻(xiàn)

我們的貢獻(xiàn)如下:1)我們提出通用語言模型微調(diào)(ULMFiT),一種可以在任何自然語言處理任務(wù)上實(shí)現(xiàn)類似CV的轉(zhuǎn)移學(xué)習(xí)的方法。 2)我們提出動(dòng)態(tài)微調(diào),傾斜三角學(xué)習(xí)率,漸進(jìn)式解凍,等新的技術(shù)來保持過往知識(shí)和避免微調(diào)中的災(zāi)難性遺忘。 3)我們六個(gè)代表性文本分類的達(dá)到了最好的效果,并在大多數(shù)數(shù)據(jù)集上減少了18-24%的誤差。 4)我們的方法能夠?qū)崿F(xiàn)極其樣本有效的遷移學(xué)習(xí)并進(jìn)行廣泛的消融分析。 5)我們制作了預(yù)訓(xùn)練模型,我們的代碼將可以被更廣泛的采用。

2 相關(guān)工作

CV中的遷移學(xué)習(xí)

CV中深度神經(jīng)網(wǎng)絡(luò)從第一層到最后一層的特征被從一般性任務(wù)遷移到特殊的任務(wù)。 出于這個(gè)原因,CV中的大多數(shù)工作都集中在轉(zhuǎn)移模型的第一層.Sharif Razavian et al(2014)使用ImageNet模型的特征作為簡單分類器的輸入來實(shí)現(xiàn)最終結(jié)果。 近年來,通過微調(diào)預(yù)訓(xùn)練模型的最后一層或幾層,并使剩余的層凍結(jié)的新方法,已經(jīng)取代了這種方法。

Hypercolumns

在NLP中,最近才有非詞嵌入的遷移學(xué)習(xí)方法被提出。 流行的做法是預(yù)訓(xùn)練嵌入,通過其他任務(wù)獲取額外的上下文信息。 然后將不同級(jí)別的嵌入用作特征,與單詞嵌入或中間層的輸入連接。 這種方法就是是CV中已知的hypercolumns,并最近在NLP被彼得斯等人分別使用語言建模,釋義,蘊(yùn)涵和機(jī)器翻譯(MT)進(jìn)行預(yù)訓(xùn)練。但是,彼得斯等人的方法需要設(shè)計(jì)定制的架構(gòu),而我們?cè)谝幌盗腥蝿?wù)中使用相同的基本架構(gòu)展示出了最先進(jìn)的性能。 同時(shí),在CV中,hypercolumns也幾乎已經(jīng)完全被端到端的微調(diào)所取代。

CV中像素的超列(hypercolumns)是該像素上方所有CNN單元的激活矢量。 類似地,NLP中的單詞或句子的超列是在預(yù)訓(xùn)練模型中的不同層處的嵌入的串聯(lián)。

多任務(wù)學(xué)習(xí)

還有一個(gè)相關(guān)的方向是多任務(wù)學(xué)習(xí)(MTL)。 這是Rei(2017)和Liu(2018)等人采用的方法。 他們將語言建模目標(biāo)添加到與主任務(wù)模型聯(lián)合訓(xùn)練的模型中。 MTL要求每次都從頭開始訓(xùn)練任務(wù),這使得效率低下并且通常需要仔細(xì)權(quán)衡任務(wù)特定的目標(biāo)函數(shù)。

微調(diào)

微調(diào)已經(jīng)被成功的用于相似任務(wù)的遷移,例如, 在QA中,對(duì)于遠(yuǎn)程監(jiān)督的情緒分析,或在MT領(lǐng)域,但已被證明在不相關(guān)的情緒之間效果不好。 Dai和Le(2015)也對(duì)語言模型進(jìn)行了微調(diào),但過度使用了10k標(biāo)記的示例,需要數(shù)百萬個(gè)域內(nèi)文檔才能獲得良好的性能。 相比之下,ULMFiT利用通用域預(yù)訓(xùn)練和新穎的微調(diào)技術(shù)來防止過度擬合,即使只有100個(gè)標(biāo)記示例,也可以在小數(shù)據(jù)集上實(shí)現(xiàn)最先進(jìn)的結(jié)果。

3 通用語言模型微調(diào)

我們對(duì)NLP最普遍的歸納遷移學(xué)習(xí)設(shè)置感興趣:給定靜態(tài)源任務(wù)TS和TS ! = TT的任何目標(biāo)任務(wù)TT,我們希望提高TT的性能。語言建模可以被視為理想的源任務(wù)和ImageNet for NLP的對(duì)應(yīng)物:它捕獲了與下游任務(wù)相關(guān)的語言的許多方面,例如長期依賴,層次關(guān)系和情緒。與MT和蘊(yùn)涵等任務(wù)相比,它為大多數(shù)域和語言提供接近無限數(shù)量的數(shù)據(jù)。此外,預(yù)訓(xùn)練的LM可以很容易地適應(yīng)目標(biāo)任務(wù)的特性,我們可以顯著提高性能。此外,語言建模已經(jīng)是MT和對(duì)話建模等現(xiàn)有任務(wù)的關(guān)鍵組成部分。形式上,語言建模引發(fā)了一個(gè)假設(shè)空間H,它應(yīng)該對(duì)許多其他NLP任務(wù)有用。

我們提出通用語言模型微調(diào)(ULMFiT),它在大型通用域語料庫中預(yù)先訓(xùn)練語言模型(LM),并使用新技術(shù)在目標(biāo)任務(wù)上對(duì)其進(jìn)行微調(diào)。 該方法在滿足以下實(shí)際標(biāo)準(zhǔn)的意義上是通用的:1)它適用于不同文檔大小,數(shù)量和標(biāo)簽類型的任務(wù); 2)它使用單一的架構(gòu)和訓(xùn)練過程; 3)它不需要自定義特征工程或預(yù)處理; 4)它不需要額外的域內(nèi)文件或標(biāo)簽。

在我們的實(shí)驗(yàn)中,我們使用最先進(jìn)的語言模型AWD-LSTM(Merity等,2017a),一個(gè)常規(guī)LSTM(沒有注意,快捷連接或其他復(fù)雜的添加),具有各種調(diào)諧dropout超參數(shù)。 與CV類似,我們預(yù)計(jì)未來可以通過使用更高性能的語言模型來提高下游性能。

ULMFiT包括以下步驟,我們?cè)趫D1中顯示:a)通用域LM預(yù)訓(xùn)練(x3.1); b)目標(biāo)任務(wù)LM微調(diào)(x3.2); c)目標(biāo)任務(wù)分類器微調(diào) (X3.3)。 我們將在以下部分討論這些內(nèi)容。

001-training_for_ULMFiT.png

圖1:ULMFiT由三個(gè)階段組成:a)LM在一般領(lǐng)域語料庫上進(jìn)行訓(xùn)練,以捕獲不同層次語言的一般特征。 b)使用判別性微調(diào)('Discr')和傾斜三角學(xué)習(xí)率(STLR)對(duì)目標(biāo)任務(wù)數(shù)據(jù)進(jìn)行微調(diào),以學(xué)習(xí)任務(wù)特定的功能。 c)使用逐漸解凍,'Discr'和STLR對(duì)目標(biāo)任務(wù)進(jìn)行微調(diào),以保留低級(jí)表示并適應(yīng)高級(jí)表示(陰影:解凍階段;黑色:凍結(jié))。

3.1通用域LM預(yù)訓(xùn)練

類似ImageNet的語言語料庫應(yīng)該很大并且可以捕獲語言的一般屬性。 我們預(yù)測了Wikitext-103上的語言模型,該模型包含28,595個(gè)預(yù)處理的維基百科文章和1.03億個(gè)單詞。 預(yù)訓(xùn)練對(duì)于具有小數(shù)據(jù)集的任務(wù)最有利,并且即使使用100個(gè)標(biāo)記示例也能夠進(jìn)行泛化。 我們將更多樣化的預(yù)訓(xùn)練語料庫的探索留給未來的工作,但期望它們會(huì)提升性能。 雖然這個(gè)階段是最昂貴的,但它只需要執(zhí)行一次并改善下游模型的性能和收斂性。

3.2目標(biāo)任務(wù)LM微調(diào)

無論用于預(yù)訓(xùn)練的通用域數(shù)據(jù)多么多樣,目標(biāo)任務(wù)的數(shù)據(jù)可能來自不同的分布。 因此,我們微調(diào)LM目標(biāo)任務(wù)的數(shù)據(jù)。 給定一個(gè)預(yù)訓(xùn)練的通用域LM,這個(gè)階段收斂得更快,因?yàn)樗恍枰m應(yīng)目標(biāo)數(shù)據(jù)的特性,它允許我們訓(xùn)練一個(gè)強(qiáng)大的LM,即使對(duì)于小數(shù)據(jù)集。 我們提出了用于微調(diào)LM的判別微調(diào)和傾斜三角學(xué)習(xí)速率,我們?cè)谙旅娼榻B。

判別微調(diào)
由于不同的層捕獲不同類型的信息,它們應(yīng)該在不同程度上進(jìn)行微調(diào)。 為此,我們提出了一種新穎的微調(diào)方法,即辨別性的微調(diào)。

不是對(duì)模型的所有層使用相同的學(xué)習(xí)速率,而是區(qū)分性微調(diào)允許我們以不同的學(xué)習(xí)速率調(diào)整每個(gè)層。 對(duì)于上下文,時(shí)間步長t處模型參數(shù)θ的常規(guī)隨機(jī)梯度下降(SGD)更新如下所示:
\theta_t = \theta_{t-1} - \eta \cdot \nabla_\theta J(\theta)
其中η是學(xué)習(xí)率,\nabla_\theta J(\theta)是關(guān)于模型目標(biāo)函數(shù)的梯度。 對(duì)于判別性微調(diào),我們將參數(shù)θ分成{\theta^1,...,\theta^L}其中\theta^l包含第l層模型的參數(shù),L是模型的層數(shù)。 同樣,我們得到{\eta^1,...,\eta^L}其中\eta^l是第l層的學(xué)習(xí)速率。

具有判別性微調(diào)的SGD更新如下:
\theta_t^l = \theta_{t-1}^l - \eta^l \cdot \nabla_{\theta^l} J(\theta)
我們憑經(jīng)驗(yàn)發(fā)現(xiàn),首先選擇最后一層的學(xué)習(xí)率η^L,僅微調(diào)最后一層, 然后通過使用\eta^{l-1}=\eta^l / 2.6作為較低層的學(xué)習(xí)率,是最有效的。

傾斜的三角學(xué)習(xí)率

為了使其參數(shù)適應(yīng)任務(wù)特定的特征,我們希望模型在訓(xùn)練開始時(shí)快速收斂到參數(shù)空間的合適區(qū)域,然后細(xì)化其參數(shù)。 在整個(gè)訓(xùn)練過程中使用相同的學(xué)習(xí)率(LR)或退火學(xué)習(xí)率并不是實(shí)現(xiàn)此行為的最佳方法。 相反,我們提出傾斜的三角學(xué)習(xí)率(STLR),它首先線性地增加學(xué)習(xí)率,然后根據(jù)以下更新時(shí)間表線性衰減它,如圖2所示:

\begin{align*} cut &= \lfloor T \cdot cut\_frac \rfloor \\ p &= \begin{cases} t/cut,&if \ t < cut \\ 1 - \frac{t-cut}{cut \cdot (ratio -1)}, &otherwise \end{cases}\\ \eta_t &= \eta_{max} \cdot \frac{1+p \cdot (ratio-1)}{ratio} \end{align*}

其中T是訓(xùn)練迭代的次數(shù),cut_frac是我們?cè)黾覮R的迭代的分?jǐn)?shù),cut是當(dāng)我們從增加切換到減少LR時(shí)的迭代,p是我們?cè)黾踊驅(qū)p少的迭代次數(shù)的分?jǐn)?shù), ration指定最小LR與最大LR ηmax相比小多少,ηt是迭代t時(shí)的學(xué)習(xí)速率。 我們通常使用cut_frac = 0.1,ratio = 32和ηmax= 0:01。

STLR修改了三角學(xué)習(xí)率(Smith,2017),具有短期增長和長衰減期,這是我們發(fā)現(xiàn)良好性能的關(guān)鍵。在第5節(jié)中,我們將比較積極的余弦退火,一種最近用于在CV中實(shí)現(xiàn)最先進(jìn)性能的類似計(jì)劃

001-slanted_triangular_learning_rate.png

3.3 目標(biāo)任務(wù)分類器微調(diào)

最后,為了微調(diào)分類器,我們使用兩個(gè)額外的線性塊來增強(qiáng)預(yù)訓(xùn)練語言模型。 遵循CV分類器的標(biāo)準(zhǔn)實(shí)踐,每個(gè)塊使用批量標(biāo)準(zhǔn)化和dropout,中間層的ReLU激活和softmax激活,在最后一層輸出目標(biāo)類的概率分布。 請(qǐng)注意,這些特定于任務(wù)的分類器層中的參數(shù)是從頭開始學(xué)習(xí)的唯一參數(shù)。 第一個(gè)線性層將合并的最后隱藏層狀態(tài)作為輸入。

pooling拼接

文本分類任務(wù)中的信號(hào)通常包含在幾個(gè)單詞中,這些單詞可能出現(xiàn)在文檔中的任何位置。 由于輸入文檔可能包含數(shù)百個(gè)單詞,如果我們只考慮模型的最后隱藏狀態(tài),信息可能會(huì)丟失。 出于這個(gè)原因,我們將文檔的最后一個(gè)步驟hT的隱藏狀態(tài)與各時(shí)間步長的隱藏狀態(tài)的max-pooled和mean-pooled表示拼接,獲得一個(gè)gpu顯存相對(duì)合適的文本表示:H ={h_1, ..., h_T}:
h_c = [h_T, maxpool(H), meanpool(H)]

微調(diào)目標(biāo)分類器是轉(zhuǎn)移學(xué)習(xí)方法中最關(guān)鍵的部分。 過于激進(jìn)的微調(diào)將導(dǎo)致災(zāi)難性的遺忘,消除通過語言建模捕獲的信息的好處; 過于謹(jǐn)慎的微調(diào)會(huì)導(dǎo)致收斂緩慢(以及由此導(dǎo)致的過度擬合)。 除了差別性微調(diào)和三角學(xué)習(xí)率之外,我們還建議逐步解凍以微調(diào)分類器.

逐漸解凍

我們建議從最后一層開始逐漸解凍模型,而不是一次微調(diào)所有層,這會(huì)導(dǎo)致災(zāi)難性的遺忘,因?yàn)檫@包含最少的一般知識(shí):我們首先解凍最后一層, 在一個(gè)時(shí)期內(nèi)微調(diào)所有未凍結(jié)的層。 然后我們解凍下一個(gè)較低的凍結(jié)層并重復(fù),直到我們微調(diào)所有層,直到最后一次迭代收斂。 這類似于'鏈解凍',不過我們一次向一組'解凍'層添加一層,而不是一次只訓(xùn)練一層。

區(qū)別性微調(diào),傾斜三角學(xué)習(xí)率和逐漸解凍都是有益的,我們?cè)诘?節(jié)中表明它們相互補(bǔ)充并使我們的方法能夠在不同的數(shù)據(jù)集中表現(xiàn)良好。

用于文本分類的BPTT(BPT3C)

通過時(shí)間反向傳播(BPTT)訓(xùn)練語言模型,以實(shí)現(xiàn)大輸入序列的梯度傳播。 為了使大型文檔的分類器微調(diào)可行,我們提出了BPTT for Text Classification(BPT3C):我們將文檔劃分為大小為b的固定長度批次。 在每個(gè)批次的開頭,模型初始化為前一批次的最終狀態(tài); 我們跟蹤平均值和最大池的隱藏狀態(tài); 梯度反向傳播到批次,其隱藏狀態(tài)有助于最終預(yù)測。 在實(shí)踐中,我們使用可變長度反向傳播序列。

雙向語言模型

與現(xiàn)有工作類似(Peters等,2017,2018),我們不僅限于微調(diào)單向語言模型。 對(duì)于我們所有的實(shí)驗(yàn),我們預(yù)先訓(xùn)練前向和后向LM。 我們使用BPT3C獨(dú)立微調(diào)每個(gè)LM的分類器并平均分類器預(yù)測。

4 實(shí)驗(yàn)

雖然我們的方法同樣適用于序列標(biāo)記任務(wù),但由于其重要的真實(shí)世界應(yīng)用,我們專注于此工作中的文本分類任務(wù)。

4.1 實(shí)驗(yàn)設(shè)置

數(shù)據(jù)集和任務(wù)

我們?cè)诹鶄€(gè)廣泛研究的數(shù)據(jù)集上評(píng)估我們的方法,這些數(shù)據(jù)集具有不同數(shù)量的文檔和不同的文檔長度,由最先進(jìn)的文本分類和轉(zhuǎn)移學(xué)習(xí)方法使用(Johnson和Zhang,2017; McCann等,2017) 作為三個(gè)常見文本分類任務(wù)的實(shí)例:情感分析,問題分類和主題分類。 我們顯示表1中每個(gè)數(shù)據(jù)集和任務(wù)的統(tǒng)計(jì)數(shù)據(jù)。

Dataset Type #classes #examples
TREC-6 Question 6 5.5k
IMDb Sentiment 2 25k
Yelp-bi Sentiment 2 560k
Yelp-full Sentiment 5 650k
AG Topic 4 120k
DBpedia Topic 14 560k

文本分類數(shù)據(jù)集和任務(wù)類別數(shù)量和數(shù)據(jù)量

情感分析

對(duì)于情緒分析,我們?cè)u(píng)估我們對(duì)二元電影評(píng)論IMDb數(shù)據(jù)集(Maas等,2011)以及Zhang等人(2015)編制的Yelp評(píng)論數(shù)據(jù)集的二元和五類版本的方法。

問題分類

我們使用小型TREC數(shù)據(jù)集的6類別版本,該數(shù)據(jù)由開放域的、基于事實(shí)的問題按廣泛語言分類標(biāo)準(zhǔn)制作而成。

主題分類

對(duì)于主題分類,我們?cè)u(píng)估了Zhang等人創(chuàng)建的大型AG新聞和DBpedia本體數(shù)據(jù)集。

預(yù)處理

我們使用與早期工作相同的預(yù)處理。 此外,為了使語言模型能夠捕獲可能與分類相關(guān)的方面,我們?yōu)榇髮憜卧~,伸長和重復(fù)添加了特殊標(biāo)記。

超參數(shù)

我們感興趣的是一個(gè)能夠在各種任務(wù)中執(zhí)行的模型。 為此,如果沒有另外提及,我們?cè)谌蝿?wù)中使用相同的一組超參數(shù),我們?cè)贗MDb驗(yàn)證集上進(jìn)行調(diào)整。 我們使用AWD-LSTM語言模型(Merity等,2017a),嵌入大小為400,3層,每層隱藏激活1150次,BPTT批量大小為70.我們將0.4的dropout應(yīng)用于最后一層, 0.3應(yīng)用于RNN層,0.4應(yīng)用于輸入嵌入層,0.05應(yīng)用于嵌入層,0.5的權(quán)重dropout到RNN的hidden-to-hidden矩陣。 分類器有一個(gè)大小為50的隱藏層。我們使用Adam的β1= 0.7而不是默認(rèn)的β1= 0.9和β2= 0.99。 我們使用批量大小為64,基本學(xué)習(xí)率為0.004和0.01分別對(duì)LM和分類器進(jìn)行微調(diào),并調(diào)整每個(gè)任務(wù)的驗(yàn)證集上的epoch數(shù)量。 我們使用和(Merity et al., 2017a)相同的做法。

baselines和比較模型

對(duì)于每項(xiàng)任務(wù),我們都會(huì)與當(dāng)前的狀態(tài)進(jìn)行比較。 對(duì)于IMDb和TREC-6數(shù)據(jù)集,我們與CoVe(McCann等,2017)進(jìn)行比較,這是一種先進(jìn)的NLP轉(zhuǎn)移學(xué)習(xí)方法。 對(duì)于AG,Yelp和DBpedia數(shù)據(jù)集,我們與Johnson和Zhang(2017)的最新文本分類方法進(jìn)行了比較。

4.2 結(jié)果

001-test_error_on_ulmfit.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,115評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,234評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,621評(píng)論 1 326
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,822評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,380評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,128評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,319評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,548評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評(píng)論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,048評(píng)論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,285評(píng)論 2 376

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