推薦系統(tǒng)遇上深度學(xué)習(xí)(三十九)-推薦系統(tǒng)中召回策略演進(jìn)!

推薦系統(tǒng)中的核心是從海量的商品庫挑選合適商品最終展示給用戶沾鳄。由于商品庫數(shù)量巨大慨飘,因此常見的推薦系統(tǒng)一般分為兩個階段,即召回階段和排序階段译荞。召回階段主要是從全量的商品庫中得到用戶可能感興趣的一小部分候選集瓤的,排序階段則是將召回階段得到的候選集進(jìn)行精準(zhǔn)排序休弃,推薦給用戶。

本篇我們來總結(jié)一下推薦系統(tǒng)中幾種常用的召回策略堤瘤。主要有協(xié)同過濾玫芦、向量化召回和阿里最近在Aicon中提到的深度樹匹配模型浆熔。

1本辐、協(xié)同過濾

協(xié)同過濾主要可以分為基于用戶的協(xié)同過濾、 基于物品的協(xié)同過濾医增。當(dāng)然還有基于模型的協(xié)同過濾慎皱,如矩陣分解等,本文不對這部分進(jìn)行介紹叶骨。

1.1 基于用戶的協(xié)同過濾

基于用戶的協(xié)同過濾算法的基本思想是:當(dāng)召回用戶A的候選集時茫多,可以先找到和他有相似興趣的其他用戶,然后把那些用戶喜歡的忽刽、而用戶A沒有未交互的物品作為候選集天揖。

因此,我們首先需要計算兩個用戶的興趣相似度跪帝。給定用戶u和用戶v今膊,令N(u)表示用戶u曾經(jīng)有過正反饋的物品集合,令N(v) 為用戶v曾經(jīng)有過正反饋的物品集合伞剑。那么我們可以通過以下兩種方法計算用戶的相似度:

基于Jaccard公式
基于余弦相似度

余弦相似度為什么是上面這種寫法呢斑唬,因為這里,我們并不是用的用戶對物品的評分黎泣,而是用的0-1表示恕刘,所以對兩個集合做交集,相當(dāng)于進(jìn)行了點乘抒倚。如果我們的矩陣是用戶對物品的評分褐着,那么計算余弦相似度的時候可以利用用戶的具體評分而不是0-1值。

如果簡單的基于余弦相似度托呕,顯得過于粗糙献起,以圖書為例,如果兩個用戶都曾經(jīng)買過《新華字典》镣陕,這絲毫不能說明他們興趣相似谴餐, 因為絕大多數(shù)中國人小時候都買過《新華字典》。但如果兩個用戶都買過《數(shù)據(jù)挖掘?qū)д摗反粢郑强?以認(rèn)為他們的興趣比較相似岂嗓,因為只有研究數(shù)據(jù)挖掘的人才會買這本書。換句話說鹊碍,兩個用戶對冷門物品采取過同樣的行為更能說明他們興趣的相似度厌殉,因此食绿,我們可以基于物品的流行度對熱門物品進(jìn)行一定的懲罰:

得到用戶之間的興趣相似度后,UserCF算法會給用戶推薦和他興趣最相似的K個用戶喜歡的 物品公罕。如下的公式度量了UserCF算法中用戶u對物品i的感興趣程度:

其中器紧,S(u, K)包含和用戶u興趣最接近的K個用戶,N(i)是對物品i有過行為的用戶集合楼眷,wuv是用戶u和用戶v的興趣相似度铲汪,rvi代表用戶v對物品i的興趣.

1.2 基于物品的協(xié)同過濾

UserCF在一些網(wǎng)站(如Digg)中得到了應(yīng)用,但該算法有一些缺點罐柳。首先掌腰, 隨著網(wǎng)站的用戶數(shù)目越來越大,計算用戶興趣相似度矩陣將越來越困難张吉,其運算時間復(fù)雜度和空間復(fù)雜度的增長和用戶數(shù)的增長近似于平方關(guān)系齿梁。其次,基于用戶的協(xié)同過濾很難對推薦結(jié)果作出解釋肮蛹。因此勺择,著名的電子商務(wù)公司亞馬遜提出了另一個算法——基于物品的協(xié)同過濾算法。
基于物品的協(xié)同過濾算法(簡稱ItemCF)給用戶推薦那些和他們之前喜歡的物品相似的物品伦忠。 比如省核,該算法會因為你購買過《數(shù)據(jù)挖掘?qū)д摗范o你推薦《機(jī)器學(xué)習(xí)》。不過缓苛,ItemCF算法并不利用物品的內(nèi)容屬性計算物品之間的相似度芳撒,它主要通過分析用戶的行為記錄計算物品之間的相似度。該算法認(rèn)為未桥,物品A和物品B具有很大的相似度是因為喜歡物品A的用戶大都也喜歡物品 B笔刹。

基于物品的協(xié)同過濾算法主要分為兩步。
(1) 計算物品之間的相似度冬耿。
(2) 根據(jù)物品的相似度和用戶的歷史行為給用戶生成召回候選集舌菜。

ItemCF的第一步是計算物品之間的相似度,在網(wǎng)站中亦镶,我們經(jīng)橙赵拢看到這么一句話:Customers Who Bought This Item Also Bought,那么從這句話的定義出發(fā)缤骨,我們可以用下面的公式定義物品相似度:

這里爱咬,分母|N(i)|是喜歡物品i的用戶數(shù),而分子 N(i)?N(j) 是同時喜歡物品i和物品j的用戶數(shù)绊起。因此精拟,上述公式可以理解為喜歡物品i的用戶中有多少比例的用戶也喜歡物品j。但是卻存在一個問題。如果物品j很熱門蜂绎,很多人都喜歡栅表,那么Wij就會很大,接近1师枣。因此怪瓶,該公式會造成任何物品都會和熱門的物品有很大的相似度,這 對于致力于挖掘長尾信息的推薦系統(tǒng)來說顯然不是一個好的特性践美。為了避免推薦出熱門的物品洗贰,可以用下面的公式:

這里由于還是0-1的原因,我們的余弦相似度可以寫成上面的形式拨脉。但是哆姻,是不是每個用戶的貢獻(xiàn)都相同呢? 假設(shè)有這么一個用戶宣增,他是開書店的玫膀,并且買了當(dāng)當(dāng)網(wǎng)上80%的書準(zhǔn)備用來自己賣。那么爹脾, 他的購物車?yán)锇?dāng)當(dāng)網(wǎng)80%的書帖旨。假設(shè)當(dāng)當(dāng)網(wǎng)有100萬本書,也就是說他買了80萬本灵妨。從前面 對ItemCF的討論可以看到解阅,這意味著因為存在這么一個用戶,有80萬本書兩兩之間就產(chǎn)生了相似度泌霍。這個用戶雖然活躍货抄,但是買這些書并非都是出于自身的興趣,而且這些書覆 蓋了當(dāng)當(dāng)網(wǎng)圖書的很多領(lǐng)域朱转,所以這個用戶對于他所購買書的兩兩相似度的貢獻(xiàn)應(yīng)該遠(yuǎn)遠(yuǎn)小于一個只買了十幾本自己喜歡的書的文學(xué)青年蟹地。因此,我們要對這樣的用戶進(jìn)行一定的懲罰藤为,John S. Breese在論文1中提出了一個稱為IUF(Inverse User Frequence)怪与,即用戶活躍度對數(shù)的 倒數(shù)的參數(shù),他也認(rèn)為活躍用戶對物品相似度的貢獻(xiàn)應(yīng)該小于不活躍的用戶缅疟,他提出應(yīng)該增加IUF參數(shù)來修正物品相似度的計算公式:

在得到物品之間的相似度后分别,ItemCF通過如下公式計算用戶u對一個物品j的興趣:

這里N(u)是用戶喜歡的物品的集合,S(j,K)是和物品j最相似的K個物品的集合存淫,wji是物品j和i 的相似度耘斩,rui是用戶u對物品i的興趣。

1.3 UserCF和ItemCF的比較

先說結(jié)論:新聞網(wǎng)站一般使用UserCF桅咆,而圖書括授、電商網(wǎng)站一般使用ItemCF!
首先回顧一下UserCF算法和ItemCF算法的推薦原理。UserCF給用戶推薦那些和他有共同興 趣愛好的用戶喜歡的物品刽脖,而ItemCF給用戶推薦那些和他之前喜歡的物品類似的物品羞海。從這個算 法的原理可以看到,UserCF的推薦結(jié)果著重于反映和用戶興趣相似的小群體的熱點曲管,而ItemCF 的推薦結(jié)果著重于維系用戶的歷史興趣却邓。換句話說,UserCF的推薦更社會化院水,反映了用戶所在的小型興趣群體中物品的熱門程度腊徙,而ItemCF的推薦更加個性化,反映了用戶自己的興趣傳承檬某。
在新聞網(wǎng)站中撬腾,用戶的興趣不是特別細(xì)化,絕大多數(shù)用戶都喜歡看熱門的新聞恢恼。個性化新聞推薦更加強(qiáng)調(diào)抓住 新聞熱點民傻,熱門程度和時效性是個性化新聞推薦的重點,而個性化相對于這兩點略顯次要场斑。因 此漓踢,UserCF可以給用戶推薦和他有相似愛好的一群其他用戶今天都在看的新聞,這樣在抓住熱 點和時效性的同時漏隐,保證了一定程度的個性化喧半。同時,在新聞網(wǎng)站中青责,物品的更新速度遠(yuǎn)遠(yuǎn)快于新用戶的加入速度挺据,而且 對于新用戶,完全可以給他推薦最熱門的新聞脖隶,因此UserCF顯然是利大于弊扁耐。

但是,在圖書浩村、電子商務(wù)和電影網(wǎng)站做葵,比如亞馬遜、豆瓣心墅、Netflix中酿矢,ItemCF則能極大地發(fā) 揮優(yōu)勢。首先怎燥,在這些網(wǎng)站中瘫筐,用戶的興趣是比較固定和持久的。一個技術(shù)人員可能都是在購買 技術(shù)方面的書铐姚,而且他們對書的熱門程度并不是那么敏感策肝,事實上越是資深的技術(shù)人員肛捍,他們看 的書就越可能不熱門。此外之众,這些系統(tǒng)中的用戶大都不太需要流行度來輔助他們判斷一個物品的 好壞拙毫,而是可以通過自己熟悉領(lǐng)域的知識自己判斷物品的質(zhì)量。因此棺禾,這些網(wǎng)站中個性化推薦的 任務(wù)是幫助用戶發(fā)現(xiàn)和他研究領(lǐng)域相關(guān)的物品缀蹄。因此,ItemCF算法成為了這些網(wǎng)站的首選算法膘婶。 此外缺前,這些網(wǎng)站的物品更新速度不會特別快,一天一次更新物品相似度矩陣對它們來說不會造成 太大的損失悬襟,是可以接受的衅码。同時,從技術(shù)上考慮脊岳,UserCF需要維護(hù)一個用戶相似度的矩陣逝段,而ItemCF需要維護(hù)一個物品 相似度矩陣。從存儲的角度說逸绎,如果用戶很多惹恃,那么維護(hù)用戶興趣相似度矩陣需要很大的空間夭谤, 同理棺牧,如果物品很多,那么維護(hù)物品相似度矩陣代價較大朗儒。

下表是對二者的一個全面的比較:

1.4 協(xié)同過濾總結(jié)

協(xié)同過濾方法通過在用戶歷史行為里面找相似的商品和用戶颊乘,保證了基礎(chǔ)的相關(guān)性。與此同時醉锄,因為只找相似的商品或相似用戶的商品乏悄,所以系統(tǒng)屏蔽了大規(guī)模的計算,使整個召回的過程能夠高效地完成恳不。

但是協(xié)同過濾方法存在一定的弊端:在召回的時候檩小,并不能真正的面向全量商品庫來做檢索,如itemCF方法烟勋,系統(tǒng)只能在用戶歷史行為過的商品里面找到侯選的相似商品來做召回规求,使得整個推薦結(jié)果的多樣性和發(fā)現(xiàn)性比較差。這樣做的結(jié)果就是卵惦,用戶經(jīng)常抱怨:為什么總給我推薦相同的東西阻肿!

2、向量化召回

向量化召回沮尿,主要通過模型來學(xué)習(xí)用戶和物品的興趣向量丛塌,并通過內(nèi)積來計算用戶和物品之間的相似性,從而得到最終的候選集。其中赴邻,比較經(jīng)典的模型便是Youtube召回模型印衔。在實際線上應(yīng)用時,由于物品空間巨大姥敛,計算用戶興趣向量和所有物品興趣向量的內(nèi)積当编,耗時十分巨大,有時候會通過局部敏感Hash等方法來進(jìn)行近似求解徒溪。

2.1 Youtube召回模型

Youtube召回模型的架構(gòu)如下:

從模型結(jié)構(gòu)可以看出忿偷,在離線訓(xùn)練階段,將其視為一個分類問題臊泌。我們使用隱式反饋來進(jìn)行學(xué)習(xí)鲤桥,用戶完整觀看過一個視頻,便視作一個正例渠概。如果將視頻庫中的每一個視頻當(dāng)作一個類別茶凳,那么在時刻t,對于用戶U和上下文C播揪,用戶會觀看視頻i的概率為:

其中贮喧,u是用戶的embedding,這個embedding猪狈,是網(wǎng)絡(luò)最后一個Relu激活函數(shù)的輸出箱沦,vi是視頻i的embedding。那么問題來了雇庙,輸入時谓形,每一個視頻也有一個對應(yīng)的embedding,這個embedding是不是計算softmax的embedding呢疆前?個人認(rèn)為是兩組不同的embedding寒跳,輸入層的embedding分別是用戶空間和視頻空間的向量,最終的輸出層竹椒,二者通過一系列全聯(lián)接層的線性變化童太,轉(zhuǎn)換到了同一空間,所以對于用戶和視頻來說胸完,輸出層的embedding是同一空間书释,可以認(rèn)為是興趣空間,這樣二者的內(nèi)積可以代表相似性舶吗。

使用多分類問題的一個弊端是征冷,我們有百萬級別的classes,模型是非常難以訓(xùn)練的誓琼,因此在實際中检激,Youtube并使用負(fù)樣本采樣(negative sampling)的方法肴捉,將class的數(shù)量減小。

對于在線服務(wù)來說叔收,有嚴(yán)格的性能要求齿穗,必須在幾十毫秒內(nèi)返回結(jié)果。因此饺律,youtube沒有重新跑一遍模型窃页,而是通過保存用戶興趣embedding和視頻興趣embedding,通過最近鄰搜索的方法得到top N的結(jié)果复濒。該近似方法中的代表是局部敏感Hash方法脖卖。我們在下一節(jié)中進(jìn)行介紹。

2.2 局部敏感哈希(Locality-Sensitive Hashing, LSH)

這里我們簡單介紹一下局部敏感哈希(Locality-Sensitive Hashing, LSH)的基本思想巧颈,更加詳細(xì)的介紹可以參考參考文獻(xiàn)3畦木。

LSH的基本思想如下:我們首先對原始數(shù)據(jù)空間中的向量進(jìn)行hash映射,得到一個hash table砸泛,我們希望十籍,原始數(shù)據(jù)空間中的兩個相鄰向量通過相同的hash變換后,被映射到同一個桶的概率很大唇礁,而不相鄰的向量被映射到同一個桶的概率很小勾栗。因此,在召回階段盏筐,我們便可以將所有的物品興趣向量映射到不同的桶內(nèi)围俘,然后將用戶興趣向量映射到桶內(nèi),此時机断,只需要將用戶向量跟該桶內(nèi)的物品向量求內(nèi)積即可楷拳。這樣計算量被大大減小。

關(guān)鍵的問題是吏奸,如何確定hash-function?在LSH中陶耍,合適的hash-function需要滿足下面兩個條件:
1)如果d(x,y) ≤ d1奋蔚, 則h(x) = h(y)的概率至少為p1;
2)如果d(x,y) ≥ d2烈钞, 則h(x) = h(y)的概率至多為p2泊碑;
其中d(x,y)表示x和y之間的距離, h(x)和h(y)分別表示對x和y進(jìn)行hash變換毯欣。

滿足以上兩個條件的hash function稱為(d1,d2,p1,p2)-sensitive馒过。而通過一個或多個(d1,d2,p1,p2)-sensitive的hash function對原始數(shù)據(jù)集合進(jìn)行hashing生成一個或多個hash table的過程稱為Locality-sensitive Hashing。

2.3 向量化召回評價

向量化召回是目前推薦召回核心發(fā)展的一代技術(shù)酗钞,但是它對模型結(jié)構(gòu)做了很大的限制腹忽,必須要求模型圍繞著用戶和向量的embedding展開来累,同時在頂層進(jìn)行內(nèi)積運算得到相似性。在深度學(xué)習(xí)領(lǐng)域其實模型結(jié)構(gòu)層出不窮窘奏,百花齊放嘹锁,但是這樣一個特定的結(jié)構(gòu)實際上對模型能力造成了很大的限制。

3着裹、深度樹匹配

上面兩種方法领猾,揭示了召回中兩個比較關(guān)鍵的問題:全庫搜索先進(jìn)模型骇扇。如果說向量化召回通過內(nèi)積運算的方式打開了全庫搜索的天花板摔竿,那么下一階段應(yīng)該是:能否設(shè)計一套全新的推薦算法框架,它允許容納任意先進(jìn)的模型而非限定內(nèi)積形式少孝,并且能夠?qū)θ珟爝M(jìn)行更好的檢索拯坟。深度樹匹配,就是從這個視角出發(fā)做的技術(shù)探索韭山。這里我們簡單介紹一下深度樹匹配(Tree-based Deep Match郁季,TDM)技術(shù),ppt和詳細(xì)介紹參照文獻(xiàn)5和6钱磅。

深度樹匹配的核心是構(gòu)造一棵興趣樹梦裂,其葉子結(jié)點是全量的物品,每一層代表一種細(xì)分的興趣:

接下來盖淡,我們主要介紹三個方面的內(nèi)容:
1)怎么基于樹來實現(xiàn)高效的檢索
2)怎么在樹上面做興趣建模
3)興趣樹是怎么構(gòu)建的

3.1 怎么基于樹來實現(xiàn)高效的檢索

在這里年柠,假設(shè)已經(jīng)得到深度樹的情況下,高效檢索采用的是Beam-Search的方式:

3.2 怎么在樹上面做興趣建模

在已經(jīng)得到深度樹的情況下褪迟,一個新來的用戶冗恨,我們怎么知道他對哪個分支的興趣更大呢?我們首先需要將樹建立為一棵最大堆樹味赃。

在實踐中掀抹,構(gòu)造最大堆樹可以舉個簡單的例子,假設(shè)用戶對葉子層 ITEM6 這樣一個節(jié)點是感興趣的心俗,那么可以認(rèn)為它的興趣是 1傲武,同層其他的節(jié)點興趣為 0,從而也就可以認(rèn)為 ITEM6 的這個節(jié)點上述的路徑的父節(jié)點興趣都為 1城榛,那么這一層就是 SN3 的興趣為 1揪利,其他的為 0,這層就是 LN2 的興趣為 1狠持,其他為 0疟位。如下圖所示:

當(dāng)建立起如上的樹之后,我們就可以在每一層構(gòu)建一定的正負(fù)樣本喘垂,通過構(gòu)建模型來學(xué)習(xí)用戶對于每一層節(jié)點的興趣偏好甜刻。注意的是绍撞,每層的偏好都要學(xué)習(xí),也就是說每層都要構(gòu)建一個模型罢吃。同時楚午,模型只需要關(guān)心是否足夠擬合樣本就可以了,并沒有要求模型一定要把用戶特征和 item 特征轉(zhuǎn)換為頂層向量內(nèi)積的形式尿招,這樣就給了模型很大的自由度矾柜,只要去擬合好足夠的樣本,那么任意的模型都是 OK 的就谜。下面是一個模型的示例:

3.3 興趣樹是怎么構(gòu)建的

前面兩個問題怪蔑,都是在給定樹結(jié)構(gòu)的情況下來介紹的,那么怎么來構(gòu)建一棵興趣樹呢丧荐?每層是怎么分叉的呢缆瓣?

樹的葉節(jié)點對應(yīng)具體的 item,目標(biāo)是構(gòu)建一個好的樹結(jié)構(gòu)來優(yōu)化我們的檢索效果虹统。通過前面的分析知道弓坞,在進(jìn)行興趣建模時,對于葉子層的樣本我們通過用戶行為反饋得到车荔,而中間層的樣本則通過樹結(jié)構(gòu)采樣得到渡冻。所以樹結(jié)構(gòu)決定了中間層的樣本。

在進(jìn)行快速檢索時忧便,采用從頂向下的檢索策略族吻,利用的是對每一層節(jié)點興趣建模進(jìn)行快速剪枝。要保證最終的檢索效果珠增,就需要每一層的興趣判別模型能力足夠強(qiáng)超歌。由于樹結(jié)構(gòu)負(fù)責(zé)我們中間層的樣本生成常熙,所以我們的思路是通過優(yōu)化樹結(jié)構(gòu)影響樣本生成進(jìn)而提升模型能力简软。具體來說州叠,通過樹結(jié)構(gòu)優(yōu)化降低中間層的樣本混淆度罩引,讓中間層樣本盡可能可分。

所以柱告,整個樹結(jié)構(gòu)的生成創(chuàng)建和優(yōu)化的過程击胜,實際上是圍繞著怎么來生成更好的樣本换怖、幫助模型學(xué)習(xí)的視角進(jìn)行的苔严,而不是只是考慮相似、聚類這樣的模式孤澎。那么這里的核心方案是什么呢届氢?

方案總結(jié)來說,就是最小化用戶行為序列中相近的item-pair在樹上的距離覆旭。假設(shè)用戶的行為序列為A-》B-》D-》C退子,那么我們希望(A,B),(B,D),(D,C)在樹上的距離越近越好岖妄。兩個葉子結(jié)點的距離通過其最近的公共祖先確定。

好了寂祥,到這里荐虐,對深度樹匹配模型做一個簡單的總結(jié):

4、總結(jié)

本文介紹了推薦系統(tǒng)在召回階段常用的模型丸凭,有協(xié)同過濾模型福扬、向量化召回模型和深度樹匹配算法。

協(xié)同過濾模型無法做到全局檢索惜犀,而向量化模型對模型的結(jié)構(gòu)進(jìn)行了限制铛碑。深度樹匹配模型解決了上述兩個方面的限制,可以做到全局檢索+使用先進(jìn)模型虽界。

參考文獻(xiàn)

1汽烦、推薦系統(tǒng)理論(二) -- 利用用戶行為數(shù)據(jù)進(jìn)行推薦(協(xié)同過濾):http://www.reibang.com/p/8d90824d52c5
2、項亮:《推薦系統(tǒng)實踐》
3莉御、局部敏感hash:https://www.cnblogs.com/wt869054461/p/8148940.html
4撇吞、推薦系統(tǒng)遇上深度學(xué)習(xí)(三十四)--YouTube深度學(xué)習(xí)推薦系統(tǒng):http://www.reibang.com/p/8fa4dcbd5588
5、深度樹匹配slide:https://myslide.cn/slides/10614
6礁叔、深度樹匹配詳解:http://www.6aiq.com/article/1554659383706

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牍颈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晴圾,更是在濱河造成了極大的恐慌颂砸,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件死姚,死亡現(xiàn)場離奇詭異人乓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)都毒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門色罚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人账劲,你說我怎么就攤上這事戳护。” “怎么了瀑焦?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵腌且,是天一觀的道長。 經(jīng)常有香客問我榛瓮,道長铺董,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任禀晓,我火速辦了婚禮精续,結(jié)果婚禮上坝锰,老公的妹妹穿的比我還像新娘。我一直安慰自己重付,他們只是感情好顷级,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著确垫,像睡著了一般弓颈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上森爽,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天恨豁,我揣著相機(jī)與錄音,去河邊找鬼爬迟。 笑死橘蜜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的付呕。 我是一名探鬼主播计福,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼徽职!你這毒婦竟也來了象颖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤姆钉,失蹤者是張志新(化名)和其女友劉穎说订,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潮瓶,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡陶冷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了毯辅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埂伦。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖思恐,靈堂內(nèi)的尸體忽然破棺而出沾谜,到底是詐尸還是另有隱情,我是刑警寧澤胀莹,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布基跑,位于F島的核電站,受9級特大地震影響描焰,放射性物質(zhì)發(fā)生泄漏涩僻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一栈顷、第九天 我趴在偏房一處隱蔽的房頂上張望逆日。 院中可真熱鬧,春花似錦萄凤、人聲如沸室抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坪圾。三九已至,卻和暖如春惑朦,著一層夾襖步出監(jiān)牢的瞬間兽泄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工漾月, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留病梢,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓梁肿,卻偏偏與公主長得像蜓陌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吩蔑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

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