教你如何快速入門用戶畫(huà)像

本文首發(fā)于 博客園

大家可能經(jīng)常會(huì)聽(tīng)到用戶畫(huà)像這個(gè)詞畅蹂,但是具體在做的時(shí)候又會(huì)覺(jué)得無(wú)從下手,或者認(rèn)為只是常規(guī)的標(biāo)簽統(tǒng)計(jì),這往往是一個(gè)誤區(qū)。本人在某互聯(lián)網(wǎng)企業(yè)從事了將近一年半的用戶畫(huà)像開(kāi)發(fā)领追。從一個(gè)剛剛接觸用戶畫(huà)像的小菜鳥(niǎo),到現(xiàn)在逐漸成長(zhǎng)為畫(huà)像開(kāi)發(fā)的主力程序員响逢,中間有許多的感受與經(jīng)驗(yàn)想總結(jié)下來(lái),分享給大家棕孙,大家也可以討論討論舔亭。

用戶畫(huà)像的應(yīng)用

用戶畫(huà)像是目前數(shù)據(jù)挖掘當(dāng)中比較容易入門的一個(gè)領(lǐng)域。它比較熱門的應(yīng)用便是推薦蟀俊,最近常說(shuō)的千人千面的核心基礎(chǔ)便是構(gòu)建人群的畫(huà)像钦铺,通過(guò)人群的不同畫(huà)像來(lái)做到個(gè)性化推薦。另外廣告也是非常需要用戶畫(huà)像的支持肢预,通過(guò)個(gè)性化的廣告推送矛洞,也可以提高廣告的點(diǎn)擊率,帶來(lái)更高的廣告收入烫映。其次用戶畫(huà)像很多時(shí)候都是可以做為銷售的線索打包出售給特定的公司和合作伙伴來(lái)直接獲取利潤(rùn)或者交換數(shù)據(jù)沼本。

如果我們將一個(gè)用戶各方面的畫(huà)像整合起來(lái)使用,它的身份锭沟,性別抽兆,教育程度,學(xué)歷信息族淮,收入大致范圍辫红,購(gòu)買力凭涂,常用位置等等標(biāo)簽一目了然,一個(gè)人的整體形象就躍然紙上贴妻。你有時(shí)候會(huì)覺(jué)得隨著用戶畫(huà)像的技術(shù)的完善切油,用戶的隱私會(huì)越來(lái)越少。我目前供職的還僅僅只是一家中型互聯(lián)網(wǎng)公司名惩,用戶量也并非很多澎胡,對(duì)用戶的各種畫(huà)像挖掘就已經(jīng)到了一個(gè)令我震驚的程度,阿里騰訊等大公司的用戶畫(huà)像只會(huì)做的更加完善绢片。

用戶畫(huà)像初相識(shí)

剛開(kāi)始接觸用戶畫(huà)像并非是我的意愿滤馍,所以對(duì)用戶畫(huà)像完全不了解就開(kāi)始上手了。當(dāng)時(shí)對(duì)用戶畫(huà)像僅有的直觀影響就是給用戶打標(biāo)簽底循,比如一個(gè)人是男的還是女的巢株,有車還是沒(méi)車,喜歡看什么文章之類的熙涤。如果做過(guò)機(jī)器學(xué)習(xí)項(xiàng)目的話阁苞,會(huì)發(fā)現(xiàn)這個(gè)就是我們平時(shí)自己提取的特征。事實(shí)上剛開(kāi)始做的話祠挫,整天便是寫(xiě)sql那槽,從數(shù)據(jù)倉(cāng)庫(kù)以及各種數(shù)據(jù)來(lái)源提取數(shù)據(jù),按照一定的處理邏輯來(lái)規(guī)整數(shù)據(jù)等舔,最后處理的數(shù)據(jù)以HIVE 表的形式存到 HDFS骚灸,Hbase,Redis慌植。不同的是甚牲,我們?cè)谀硞€(gè)項(xiàng)目提取的特征只會(huì)用于這個(gè)項(xiàng)目,一般不會(huì)用于其他的地方蝶柿。但是用戶畫(huà)像的一個(gè)基本要求畫(huà)像必須是可以通用的丈钙。就需要有一系列的規(guī)范來(lái)保證每個(gè)字段必須是可解釋的,HIVE 表的命名是有意義交汤,數(shù)據(jù)的輸出是規(guī)范一致的雏赦。一切的一切都應(yīng)該是有文檔來(lái)記錄以保證畫(huà)像的通用性。

用戶畫(huà)像的基本前提

用戶畫(huà)像最重要的其實(shí)就是用戶了芙扎,有人說(shuō)這個(gè)就是廢話星岗。其實(shí)不是的,我們做用戶畫(huà)像需要獲取這個(gè)用戶在我們公司網(wǎng)站 pc端纵顾,app伍茄,m端(在手機(jī)端登錄公司的網(wǎng)站)所有的數(shù)據(jù)。只有獲取了這個(gè)用戶在我們公司所有的數(shù)據(jù)施逾,我們才能獲取這個(gè)用戶在我們公司最完整的畫(huà)像敷矫,否則這個(gè)用戶的畫(huà)像就是有失偏頗的例获,不會(huì)那么準(zhǔn)。這個(gè)問(wèn)題完全可以通過(guò)非技術(shù)的手段來(lái)解決曹仗,比如用一個(gè)標(biāo)志來(lái)標(biāo)識(shí)用戶在 pc端榨汤,app,和 m端的訪問(wèn)行為,這個(gè)標(biāo)志一般就是我們所說(shuō)的公司賬號(hào)怎茫。有些公司是強(qiáng)賬號(hào)體系收壕,比如騰訊的qq號(hào),阿里的淘寶賬戶轨蛤,微博的微博賬戶蜜宪,所以這些公司的用戶畫(huà)像天然就可以做的比較好。但是大部分公司都沒(méi)有這種強(qiáng)賬號(hào)體系祥山,厲害如百度迄今也沒(méi)有自己的強(qiáng)賬號(hào)體系圃验。所以百度掉隊(duì)不是沒(méi)有原因的。

那么那些沒(méi)有自己強(qiáng)賬號(hào)體系的公司是不是就沒(méi)法開(kāi)發(fā)出自己的用戶畫(huà)像體系呢缝呕?其實(shí)也是可以折衷的澳窑,那就是用戶連線。通過(guò)各種連接信息供常,將同一個(gè)用戶來(lái)自pc端的 cookie摊聋,app端的device_id,m端的cookie 數(shù)據(jù)連接在一起栈暇。判斷一個(gè)公司的用戶畫(huà)像水平基本可以通過(guò)用戶連線這一塊了解個(gè)大概麻裁,這個(gè)也是每個(gè)用戶畫(huà)像部門最核心的算法之一。但是通過(guò)用戶連線來(lái)做的畫(huà)像準(zhǔn)確率畢竟比不上有強(qiáng)賬號(hào)體系的公司源祈。主要是是因?yàn)檫B線的覆蓋率和準(zhǔn)確率一般是矛盾的悲立,如果連線的覆蓋率低了,雖然準(zhǔn)確率高了新博,但是連的用戶少了,比如就連線100個(gè)用戶脚草,對(duì)整體畫(huà)像的準(zhǔn)確率不會(huì)有明顯的提升赫悄。如果連線的覆蓋率上去了,準(zhǔn)確率往往會(huì)下降馏慨,你連線連一堆錯(cuò)的埂淮,還不如不連線。這中間的折衷往往是取決于業(yè)務(wù)本身的需求写隶。

用戶畫(huà)像的類別

用戶畫(huà)像一般是分為兩類的倔撞。一類是實(shí)時(shí)用戶畫(huà)像,這類畫(huà)像的處理邏輯一般都很簡(jiǎn)單慕趴,要求迅速響應(yīng)痪蝇,實(shí)時(shí)處理鄙陡。數(shù)據(jù)從kafaka過(guò)來(lái),通過(guò)storm 等實(shí)時(shí)開(kāi)源框架處理之后存入redis 當(dāng)中躏啰。

第二類便是離線用戶畫(huà)像趁矾,這類用戶畫(huà)像是把當(dāng)天業(yè)務(wù)方需要的用戶畫(huà)像提前算好,然后供給業(yè)務(wù)方使用给僵。由于對(duì)數(shù)據(jù)的時(shí)效性要求不是那么的高毫捣,可以使用較復(fù)雜的處理邏輯或者各種離線機(jī)器學(xué)習(xí)模型來(lái)保證畫(huà)像的準(zhǔn)確性。數(shù)據(jù)一般存在HDFS 和 Hbase 里面帝际。

離線用戶畫(huà)像的一般處理邏輯

離線的用戶畫(huà)像的數(shù)據(jù)來(lái)源一般是來(lái)自采集或者數(shù)據(jù)倉(cāng)庫(kù)蔓同。如果是某些特殊數(shù)據(jù)的話,可能得先經(jīng)過(guò)反作弊團(tuán)隊(duì)的預(yù)處理蹲诀,比如淘寶的刷單行為斑粱,某些品類異常的瀏覽行為等等。我們利用sql 從這些數(shù)據(jù)源獲取到我們需要的數(shù)據(jù)以后侧甫,首先經(jīng)過(guò)用戶連線將同一個(gè)用戶的行為全部連線到一起珊佣,然后利用 mapreduce 按照一定的處理邏輯進(jìn)行處理。處理完的結(jié)果可以和歷史的數(shù)據(jù)進(jìn)行合并 插入到當(dāng)天的分區(qū)表當(dāng)中去或者存入到 hbase 當(dāng)中披粟。整體而言處理的邏輯是比較的清晰的咒锻。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖一 :用戶畫(huà)像處理的一般邏輯

可能有同學(xué)會(huì)好奇?那么倉(cāng)庫(kù)的數(shù)據(jù)是從哪里來(lái)的守屉。其實(shí)都是來(lái)自我們?nèi)粘T谶@個(gè)公司網(wǎng)站點(diǎn)擊惑艇,瀏覽,購(gòu)買拇泛,評(píng)論等行為滨巴。這些數(shù)據(jù)由公司的前端埋點(diǎn)以后,會(huì)不斷的由采集收到倉(cāng)庫(kù)進(jìn)行整理俺叭,整理成當(dāng)天的流量日志恭取。大部分的畫(huà)像標(biāo)簽的數(shù)據(jù)源都是流量日志

用戶畫(huà)像的體系建設(shè)

單個(gè)的用戶畫(huà)像很好做熄守,但用戶畫(huà)像真正想發(fā)揮用途蜈垮,必須得建立起自己的體系來(lái)。這樣才能對(duì)一個(gè)用戶進(jìn)行全方面的描述裕照。打包賣給別人的話攒发,也更加值錢。初步來(lái)看用戶畫(huà)像的體系建設(shè)應(yīng)該包括幾個(gè)方面

標(biāo)簽系統(tǒng)的頂層設(shè)計(jì)晋南,具體就是我們這個(gè)標(biāo)簽系統(tǒng)系統(tǒng)需要為哪些業(yè)務(wù)方服務(wù)惠猿,需要涵蓋哪些類別,需要做哪些標(biāo)簽

標(biāo)簽系統(tǒng)的維度系統(tǒng)建設(shè)负间,我們的畫(huà)像對(duì)外輸出偶妖,如果只是輸出中文的話姜凄,不大好用,有時(shí)候也不大好處理餐屎,就需要我們將標(biāo)簽的輸出的值數(shù)值化檀葛,維度化。整個(gè)標(biāo)簽系統(tǒng)的值都可以通過(guò)一個(gè)統(tǒng)一的數(shù)值系統(tǒng)或者向量系統(tǒng)來(lái)進(jìn)行描述腹缩。

標(biāo)簽開(kāi)發(fā)規(guī)范屿聋,這個(gè)是保證標(biāo)簽代碼的可維護(hù)性,易讀性藏鹊。

標(biāo)簽系統(tǒng)的可擴(kuò)展性润讥,由于很多業(yè)務(wù)方都需要根據(jù)自己的需求來(lái)定制化標(biāo)簽,就要求我們的標(biāo)簽系統(tǒng)應(yīng)該是可擴(kuò)展的盘寡,外部業(yè)務(wù)方自己定制的標(biāo)簽如果符合我們標(biāo)簽的維度系統(tǒng)以及開(kāi)發(fā)規(guī)范楚殿,就應(yīng)該是可以擴(kuò)展進(jìn)我們本身的標(biāo)簽系統(tǒng)的,供給全公司使用竿痰。

標(biāo)簽對(duì)外平臺(tái)的開(kāi)發(fā)脆粥,所有的標(biāo)簽最好只能有一個(gè)統(tǒng)一的輸出口徑對(duì)外輸出,這樣就可以切實(shí)保證只有符合我們標(biāo)簽開(kāi)發(fā)規(guī)范的標(biāo)簽接入其中影涉,同時(shí)也能做好標(biāo)簽系統(tǒng)的權(quán)限管理变隔。

用戶畫(huà)像當(dāng)前的困境

目前大部分用戶畫(huà)像都是基于統(tǒng)計(jì)的方法來(lái)做的,這種方法的優(yōu)點(diǎn)是基礎(chǔ)準(zhǔn)確率比較高蟹倾,但是整體的覆蓋率不會(huì)很高匣缘。比如我要在一個(gè)購(gòu)物網(wǎng)站做用戶感興趣的商品的畫(huà)像。如果我使用基于統(tǒng)計(jì)的方法利用用戶在購(gòu)物網(wǎng)站 pc鲜棠,m肌厨,app端的點(diǎn)擊,瀏覽豁陆,下單柑爸,購(gòu)買等一系列用戶行為來(lái)對(duì)用戶打標(biāo)簽,只能夠得到用戶關(guān)于她/他 已經(jīng)點(diǎn)擊盒音,瀏覽竖配,下單,購(gòu)買的商品的畫(huà)像里逆。但是其他商品,我雖然沒(méi)有點(diǎn)擊用爪,不代表我對(duì)這些商品沒(méi)有興趣原押,可是基于統(tǒng)計(jì)的方法無(wú)法推廣到這些用戶沒(méi)用點(diǎn)擊,瀏覽偎血,下單诸衔,購(gòu)買的商品盯漂。

基于統(tǒng)計(jì)的方法無(wú)法進(jìn)行更深層次的推廣,也就是缺乏我們常說(shuō)的泛化能力笨农,只會(huì)死讀書(shū)就缆,不會(huì)舉一反三。我們更多的會(huì)通過(guò)使用機(jī)器學(xué)習(xí)或者其他算法來(lái)嘗試解決這個(gè)問(wèn)題谒亦。遺憾的是對(duì)于業(yè)界來(lái)說(shuō)竭宰,這種標(biāo)簽占整個(gè)用戶畫(huà)像體系的比例也不會(huì)很高。因?yàn)檫@種標(biāo)簽做的費(fèi)時(shí)費(fèi)力份招,而且效果不一定好切揭。有一個(gè)很關(guān)鍵的原因,我們舉一個(gè)例子來(lái)嘗試說(shuō)明一下锁摔。比如某個(gè)汽車網(wǎng)站想預(yù)測(cè)用戶有車無(wú)車廓旬,很多時(shí)候該汽車網(wǎng)站通過(guò)和4s店合作等等途徑能夠獲取到只有哪些用戶確切有車。我們?cè)陬A(yù)測(cè)的時(shí)候谐腰,可以把這些有車的用戶當(dāng)作正樣本來(lái)處理孕豹。問(wèn)題在于我們找不到確切無(wú)車的用戶,相當(dāng)于找不到負(fù)樣本十气。

一般的做法是我們把流量日志當(dāng)中那些不是確切有車的的用戶都當(dāng)作無(wú)車用戶來(lái)看励背,也就是當(dāng)做負(fù)樣本來(lái)看。但是這個(gè)只能說(shuō)明這些用戶只是在該公司的數(shù)據(jù)庫(kù)里是沒(méi)有買車的桦踊,他現(xiàn)實(shí)生活中可能是有車的椅野,但是該公司并不清楚這一點(diǎn)。這樣做的后果就是負(fù)樣本里面參入了正樣本籍胯,更可怕的是參入的比例有時(shí)候我們也不大好估計(jì)竟闪。這種情況就會(huì)導(dǎo)致模型在訓(xùn)練的時(shí)候準(zhǔn)確率下降。

這樣看來(lái)很多基于機(jī)器學(xué)習(xí)的算法其實(shí)都有樣本標(biāo)注的問(wèn)題杖狼,對(duì)于這類標(biāo)注的問(wèn)題炼蛤,一方面我們可以通過(guò)其他不同的數(shù)據(jù)來(lái)源,相互驗(yàn)證來(lái)保證標(biāo)注的數(shù)據(jù)盡量準(zhǔn)確蝶涩。一方面可以考慮一下無(wú)監(jiān)督的學(xué)習(xí)算法比如聚類算法來(lái)解決這個(gè)問(wèn)題理朋。但是目前來(lái)看,還不大清楚有沒(méi)有其他比較實(shí)用的方式來(lái)解決這類問(wèn)題绿聘。

總結(jié)

從數(shù)據(jù)挖掘的不同方向來(lái)看的話嗽上,用戶畫(huà)像應(yīng)該是最好入門的一個(gè)方向之一。它對(duì)技術(shù)人員的要求是會(huì)sql和mapreduce 即可兽愤。其他機(jī)器學(xué)習(xí)的知識(shí)可以一邊學(xué)習(xí)一邊上手。作為一個(gè)程序員浅萧,其實(shí)我內(nèi)心一開(kāi)始是很不喜歡用戶畫(huà)像這個(gè)崗位的,畢竟每天重復(fù)性的工作很容易讓人疲倦洼畅。但他確實(shí)也非常的重要吩案,是整個(gè)數(shù)據(jù)挖掘方向最靠近業(yè)務(wù)的一個(gè)方向了。很多時(shí)候帝簇,深度學(xué)習(xí)也好機(jī)器學(xué)習(xí)也罷都離業(yè)務(wù)太遠(yuǎn)了,有時(shí)候是無(wú)法落地給公司帶來(lái)直接的產(chǎn)出崎岂,非常容易就被邊緣化了。并且在互聯(lián)網(wǎng)行業(yè)數(shù)據(jù)挖掘從業(yè)者的平均薪資也還不錯(cuò)闪湾。那么就常常會(huì)有一個(gè)問(wèn)題冲甘,數(shù)據(jù)挖掘部門的整體人力成本很高,但是產(chǎn)出卻相當(dāng)?shù)牡屯狙瑢?duì)于整個(gè)公司來(lái)看其實(shí)也是一個(gè)很大的負(fù)擔(dān)。

所以對(duì)于我個(gè)人來(lái)說(shuō)的話陶夜,技術(shù)是很重要的裆站,但是技術(shù)本身是沒(méi)有產(chǎn)出的,所以我要盡量去想辦法讓我的技術(shù)有產(chǎn)出并且是可以度量的宏胯。這點(diǎn)落在選擇公司的時(shí)候,我更多的也會(huì)考慮這個(gè)部門有沒(méi)有很有前景的業(yè)務(wù)肩袍,再看這個(gè)部門的方向是否是感興趣的。這樣能夠最大限度保證我的技術(shù)有落地魂爪,有產(chǎn)出艰管,不至于被邊緣化,同時(shí)也能一直保持我對(duì)技術(shù)的熱情牲芋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市浇衬,隨后出現(xiàn)的幾起案子餐济,更是在濱河造成了極大的恐慌,老刑警劉巖醉冤,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篙悯,死亡現(xiàn)場(chǎng)離奇詭異蚁阳,居然都是意外死亡鸽照,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門定血,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诞外,“玉大人,你說(shuō)我怎么就攤上這事茫虽〖让牵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵贤壁,是天一觀的道長(zhǎng)脾拆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)名船,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任蜈块,我火速辦了婚禮,結(jié)果婚禮上爽哎,老公的妹妹穿的比我還像新娘器一。我一直安慰自己,他們只是感情好祈秕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布请毛。 她就那樣靜靜地躺著,像睡著了一般方仿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玻孟,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天鳍征,我揣著相機(jī)與錄音,去河邊找鬼匣掸。 笑死氮双,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戴差。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼袭厂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼纹磺!你這毒婦竟也來(lái)了亮曹?” 一聲冷哼從身側(cè)響起秘症,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤式矫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后采转,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體氏义,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡图云,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了克婶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丹泉。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖筋岛,靈堂內(nèi)的尸體忽然破棺而出晒哄,到底是詐尸還是另有隱情,我是刑警寧澤寝凌,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布较木,位于F島的核電站,受9級(jí)特大地震影響伐债,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雌桑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一祖今、第九天 我趴在偏房一處隱蔽的房頂上張望拣技。 院中可真熱鬧耍目,春花似錦、人聲如沸莫辨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蟆融。三九已至守呜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間查乒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工由境, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留憔晒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓嘹屯,卻偏偏與公主長(zhǎng)得像从撼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子低零,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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