负采样,yyds!
以下⽂章来源于RUC AI Box ,作者徐澜玲
RUC AI Box
本公众号主要关注使⽤⼈⼯智能技术来解决⾃然语⾔处理与社交媒体数据挖掘的研究…
⽂ | 徐澜玲
源 | RUC AI Box
引⾔:负采样⽅法最初是被⽤于加速 Skip-Gram 模型的训练,后来被⼴泛应⽤于⾃然语
⾔处理 (NLP)、计算机视觉 (CV) 和推荐系统 (RS) 等领域,在近两年的对⽐学习研究中
也发挥了重要作⽤。本⽂聚焦于负采样⽅法,将各领域的相关⼯作分为五类进⾏介绍:静
态负采样、强负例采样、对抗式负采样、基于图的负采样和引⼊额外信息的负采样。
开始之前先介绍⼀下!RUC AI Box 开发和维护了⼀个统⼀、全⾯、⾼效的推荐系统代码库
RecBole(发表在 CIKM 2021)。
https://github.com/RUCAIBox/RecBole
RecBole 可以通过参数 neg_sampling 改变负采样策略,⽀持推荐系统中的随机负采样
(RNS, uniform ) 、基于流⾏度的负采样 (PNS, popularity ) 和动态负采样 (DNS, dy
namic ) 三种经典的⽅式。⼤家也可以在此基础上进⾏拓展,欢迎 Clone, Fork 和 Star ~
⽬录
1. 研究背景
1.1 什么是负采样?
1.2 为什么需要负采样?
1.3 为什么需要⾼质量的负采样?
2. 负采样⽅法分类梳理
2.1 静态负采样
2.2 强负例采样
2.3 对抗式负采样
2.4 基于图的负采样
2.5 引⼊额外信息的负采样
3. 未来展望
3.1 伪负例问题
3.2 融⼊课程学习
3.3 负采样⽐例
3.4 去偏采样
3.5 ⽆采样
4. ⼩结
GitHub Repo
1. 研究背景
1.1 什么是负采样?
在深度神经⽹络模型中,数据集中的每个句⼦、每对交互、每张图⽚都可以看作是模型的正样
本,也称正例 (postive example)。在模型的训练过程中,⼀种常⻅的训练⽅式是同时给模型
提供正例与负例 (negative example,不⼀定真实存在),并构造损失函数增⼤正负例的区分
度,从⽽学到数据中的信息。基于⼀定的策略构造与正例相对的负例的过程,称为负采样
(Negative Sampling) 。
在 NLP 中随机替换连贯句⼦中的词语、在 CV 中不同图⽚数据增强的样例,以及 RS 中选择
⽤户未交互的商品,都可以看作是在进⾏负采样。相关的损失函数有⻉叶斯个性化排序损失
(BPR, viz. Bayesian Personalized Ranking loss) 、⼆元交叉熵损失函数 (BCE, viz.
Binary Cross Entropy loss) 和对⽐学习中常⽤的 InfoNCE loss 等。
1.2 为什么需要负采样?
对于不同的领域,这个问题可能需要具体进⾏分析。但总的来说,负采样的作⽤有以下两点:
Efficient:
提升了模型的计算效率。
以推荐系统基于隐式反馈的协同过滤算法 (Implicit Collaborative Filtering) 为例,对
于⽤户交互的每个商品,如果我们不进⾏负采样,⽽是将该⽤户未交互的所有商品都作
为负例进⾏优化,这样每个⽤户的更新都会涉及所有 item embedding,效率低下。
负采样的⽬的之⼀是仅对求代价过程中涉及的向量进⾏优化,减少训练的负荷。
Effective:
保证了模型的训练效果。
即使我们有充⾜的计算资源可以每次优化所有负例,但使⽤⼀定的策略对负例进⾏采样
选择可以达到相同甚⾄更好的结果。
通常来说,我们能够使⽤的正例相对于随机构造的负例来说是⾮常有限的,即使对正例
进⾏数据增⼴,正例与候选负例的数量往往也不在⼀个量级。
训练时我们会优化正例对的得分⾼于负例对,经过⼏轮训练后,正例 pair 的分数相对
随机负例⽽⾔已经⽐较⾼了。尽管负例候选集⼗分庞⼤,但能带来信息增益的负例才是
训练的关键,盲⽬地同等看待所有候选样例很有可能事倍功半。
负采样的另⼀⽬的是有针对性地提供⾼质量的负例,既加快收敛速度,⼜可以让模型朝
着我们希望的⽅向进⾏优化。
1.3 为什么需要⾼质量的负采样?
前⾯的描述可能⽐较抽象,让我们从《三国演义》的⼀个例⼦来具体地体会负例选择的重要性
(对《三国演义》不太熟悉的读者可以依次代⼊四郎、甄嬛、静⽩、浣碧和纯元,或者贾宝
⽟、晴雯、刘姥姥、多姑娘和林黛⽟)。
正所谓“得⼈才者得天下”,已知刘备有关⽻和张⻜两位⼤将,那么张⻜就可以作为刘备的⼀个
正例 (positive example)。由于⼈才永远是最稀缺的资源,如果我们随机从三国时期的千万⼈
群中选⼀个作为负例,那么随机负例 (random negative) 能被刘备赏识并重⽤的概率微乎其
微。换句话说,
刘备 张飞 刘备 ⽆名⼩兵
很难让模型学到有⽤的信息。因
此,模型可能⽆法进⾏良好的参数更新,也不能将略微相关的样例与⾮常相关的样例区分开
来。
我们希望采样得到的是 informative negative,在⽂献中常被称作 hard negative,即强负
例。
在《三国演义》的设定中,张⻜和吕布都是勇猛过⼈的将领,有万夫之勇,也都有各⾃的缺
点。张⻜鞭笞⼠卒、嗜酒⽆度;吕布骄奢淫逸、好⾊贪利。刘备视张⻜为⼿⾜,却在⽩⻔楼说
出“公不⻅丁建阳、董卓之事乎?”,精准为吕布补⼑。
正是因为刘备以仁义闻名天下,最不喜的就是吕布此等忘恩负义、背信弃义的⼩⼈。将吕布这
种具有⼀定竞争⼒的强负例作为训练样本,模型便能更好地挖掘刘备重情重义的特点。
强负例可能增进模型的训练效果,但⾄坚易断,过强易折,强负例超过⼀定界限后可能会采到
未来的正例。对于当前的训练⽽⾔,这种样例在学术中被称作伪负例 (false negative)。也就
是说,如果将刘备很有可能感兴趣的赵云作为与张⻜配对的负例,
刘备 张飞 刘备 赵云
⾮但不能带来正向激励,有时甚⾄会对模型造成负
⾯影响。
针对负例的质量和重要性,Facebook 进⾏了⼀项很有意思的研究⼯作,定量分析了 CV 领域
对⽐学习⾥的负例对模型性能的影响。
▲Are all negatives created equal in contrastive instance discrimination? [93]
⽂章研究发现:
绝⼤多数 (约95%) 负例是 easy negatives,它们与查询在语义上并不相似,仅⽤ easy
negatives 不⾜以训练出⼀个好的模型。
其次,约 5% 的负例是 hard negatives,它们与查询在语义上相似但不同,这些强负例⼏
乎决定了模型的结果,在训练中发挥了关键作⽤。
还有近 0.1% 的负例是 same class negatives,也就是我们之前提到的伪负例。这些负
例表⾯上看与查询并不相似,但本质上语义是相同的(都是狗),把它们作为负例反⽽会
影响模型的结果。
2. 负采样⽅法分类梳理
本⽂聚焦于负采样⽅法,将 NLP、CV、RS、GRL、CL 等领域的相关⼯作分为五类进⾏介
绍:静态负采样 (Static Negative Sampling)、强负例采样 (Hard Negative Sampling)、对
抗式负采样 (Adversarial Sampling)、基于图的负采样 (Graph-based Sampling) 和引⼊额
外信息的负采样 (Additional Data Enhanced Sampling)。
参考⽂献末尾给出了该篇⼯作的所属领域和 PDF 链接,读者可以根据⾃⼰的研究领域和兴趣
⽅向选择性地阅读原⽂。
2.1 静态负采样 (Static Negative Sampling)
如果我们限定从未交互集中选择已知的样例作为负例,那么,通过给不同的样例设置不同的权
重,我们便能根据负例分布进⾏采样。
在不考虑合成新负例的前提下,负采样本质上是学习负例分布的问题。当每个样例被采样为负
例的概率不随训练发⽣变化时,我们就称这种采样策略为静态负采样 (Static Negative
Sampling)。
在静态负采样⽅法中,最简单也是应⽤最⼴泛的⽅法是随机负采样 (RNS, viz. Random
Negative Sampling),也被称为均匀负采样 (Uniform Negative Sampling)。 RNS [1, 2,
11] 随机从负例候选集中选择⼀个作为负例,在不考虑负采样的研究中,研究者们⼀般使⽤
RNS 作为基础的采样⽅法,以便公平地和 baseline 进⾏⽐较。
显然,对于每个正例⽽⾔,不同的负例带来的影响并不相同,⼀种启发式的负例分布的策略是
基于流⾏度的负采样 (PNS, viz. Popularity-biased Negative Sampling)。流⾏度可以通过
频次 (frequency) 或度 (degree) 来反映, ,即样本 被选为负例的概率和 的流⾏度的 次⽅
具有⽐例关系。
当 时,PNS 就退化成了 RNS。
PNS ⾸先在 word2vec [3] 中被提出。在 word2vec 词嵌⼊的表示中,实验发现 的结果较
好,[4] 从理论⻆度对这种负采样策略进⾏了⼀定的解释,⼤多数嵌⼊表示算法 [5, 6, 7, 8]
也沿⽤了该⽅法和超参数。
然⽽, 并不是适⽤于所有领域, 甚⾄不⼀定需要为正数。[10] 将 word2vec 的负采样⽅式应
⽤到推荐系统中发现,PNS 超参数 的选择依赖于数据集和任务。
[10] 在⾳乐推荐任务上研究了 对推荐结果的影响,结果发现 时的结果最佳。为负数意味着更
多地选择不受欢迎的⾳乐作为负样本,这种情况下的 PNS 旨在更好地区分不同受欢迎程度的
歌曲,⽂中也强调了超参数在不同任务场景下的关键作⽤。
▲Word2vec applied to Recommendation: Hyperparameters Matter [10]
在推荐系统领域,更常⻅的基于流⾏度的采样⽅法 [9, 12, 17] 是直接将商品在训练集中的流
⾏程度作为候选负例的权重,即倾向于选择更流⾏的商品作为负例。
这种策略可以⽤流⾏度偏差来解释,借⽤ @Zilize 的描述:在⾼流⾏度(⾼曝光度)的情况
下⽤户没有给予商品正反馈,说明⽤户⼤概率(⽐如 90%)不喜欢这件物品;在低流⾏度时
则是完全不确定的状态(⽐如 50%)。当我们采样⾼流⾏度的负例时,可能只会带来 10% 的
偏差,⽽随机采样会带来 50% 的偏差,从⽽后者对推荐系统的训练不利。
尽管具有⼀定的解释性,但从学术界的相关实验结果来看,PNS 在推荐系统中并不是稳定地
优于 RNS,有时还会显著降低模型结果。如何合理利⽤商品流⾏度仍然是推荐系统中未被充
分探索的问题。
▲Reinforced Negative Sampling over Knowledge Graph for Recommendation [73]
[1]. BPR: Bayesian Personalized Ranking from Implicit Feedback. UAI(2009)
[RS] [PDF]
[2]. Real-Time Top-N Recommendation in Social Streams. RecSys(2012) [RS]
[PDF]
[3]. Distributed Representations of Words and Phrases and their Compositionality.
NIPS(2013) [NLP] [PDF]
[4]. word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-
Embedding Method. arXiv(2014) [NLP] [PDF]
[5]. Deepwalk: Online learning of social representations. KDD(2014) [GRL] [PDF]
[6]. LINE: Large-scale Information Network Embedding. WWW(2015) [GRL] [PDF]
[7]. Context- and Content-aware Embeddings for Query Rewriting in Sponsored
Search. SIGIR(2015) [NLP] [PDF]
[8]. node2vec: Scalable Feature Learning for Networks. KDD(2016) [NLP] [PDF]
[9]. Fast Matrix Factorization for Online Recommendation with Implicit Feedback.
SIGIR(2016) [RS] [PDF]
[10]. Word2vec applied to Recommendation: Hyperparameters Matter. RecSys(20
18) [RS] [PDF]
[11]. General Knowledge Embedded Image Representation Learning. TMM(2018)
[CV] [PDF]
[12]. Alleviating Cold-Start Problems in Recommendation through Pseudo-
Labelling over Knowledge Graph. WSDM(2021) [RS] [PDF]
2.2 强负例采样 (Hard Negative Sampling)
静态负采样⽅法不随训练发⽣变化,⽆法动态地适应并调整候选负例的分布,也就难以挖掘更
有利的负样本。尽管我们没有显式的负例标签,但在训练过程中,模型对每个候选负例的分数
是可以被利⽤的。
所谓强负例 (hard negative) 的 hard 取决于模型,那些被错误分类的样例,或是预测得分更
⾼的负例,与改进模型结果更为相关。我们可以把这种思路类⽐到⼩明做题,得分低的负例是
⼩明已经掌握的简单题,得分⾼的负例是⼩明不太会做的提⾼题或是错题,这些对于⼩明来说
相对 hard 的题更能帮助他掌握所学知识。
Hard Negative Sampling,⼜称 Hard Example Mining,早在 1998 年 CV 领域的⼈脸识
别 [13] 中,研究者们就开始将分类器识别错误的图⽚加⼊到负例集来提升训练质量。
▲Example-based learning for view-based human face detection [13]
在近⼗年的深度学习中,⽆论是 CV 领域的图⽚分类 [16, 28]、⽬标检测 [21, 23, 26, 29]、
跨模态学习 [37],还是 NLP 领域的语⾔模型 [14]、问答系统 [19]、结点表示 [30],或是推
荐系统 [15, 17, 18, 20, 24, 31, 33, 35],或是知识图谱的表示学习 [25, 27, 36],都可以通
过强负例采样提升模型的训练结果。
▲Graph Convolutional Neural Networks for Web-Scale Recommender Systems [70]
⽆论哪个领域,挖掘强负例的最常⻅⽅法都是选择离 anchor/user/query 最近的样本(即在
embedding 空间中最相似的样本)。
既然锚点样本对负例选择有帮助,那么⾃然⽽然可以想到正例也能为配对的负例提供相似度的
信息。[19] 在问答系统中选择与正例最相似的样本作为负例,[25, 27, 36] 中为知识图谱三元
组选取负例时也是选择离正例最接近的实体。KGPolicy [73] 既考虑了与 anchor 的相似度,
⼜考虑了与 positive example 的相似度,将两者相加作为选择强负例的标准。
不过,上述⽅法仍然是选择已有的样例作为强负例,那么我们能不能根据需要⽣成
(synthesize) 所需强负例呢?
▲Hard Negative Mixing for Contrastive Learning [32]
答案是可以的,MoCHi [32] 在对⽐学习的任务中直接合成强负例,通过 Hard Negative
Mixing 的⽅式融合了现有强负例与 query 的表示,从 embedding 空间得到了更能为训练带
来增益的负例。
也就是说,我们不⼀定要执着于学习已知负例的分布,还可以从 synthetic sampling 的⻆度
出发合成我们需要的负样本表示。
[13]. Example-based learning for view-based human face detection. TPAMI(1998
) [CV] [PDF]
[14]. Adaptive Importance Sampling to Accelerate Training of a Neural
Probabilistic Language Model. T-NN(2008) [NLP] [PDF]
[15]. Optimizing Top-N Collaborative Filtering via Dynamic Negative Item
Sampling. SIGIR(2013) [RS] [PDF]
[16]. Bootstrapping Visual Categorization With Relevant Negatives. TMM(2013)
[CV] [PDF]
[17]. Improving Pairwise Learning for Item Recommendation from Implicit
Feedback. WSDM(2014) [RS] [PDF]
[18]. Improving Latent Factor Models via Personalized Feature Projection for One
Class Recommendation. CIKM(2015) [RS] [PDF]
[19]. Noise-Contrastive Estimation for Answer Selection with Deep Neural
Networks. CIKM(2016) [NLP] [PDF]
[20]. RankMBPR: Rank-aware Mutual Bayesian Personalized Ranking for Item
Recommendation. WAIM(2016) [RS] [PDF]
[21]. Training Region-Based Object Detectors With Online Hard Example Mining.
CVPR(2016) [CV] [PDF]
[22]. Hard Negative Mining for Metric Learning Based Zero-Shot Classification. E
CCV(2016) [ML] [PDF]
[23]. Vehicle detection in aerial images based on region convolutional neural
networks and hard negative example mining. Sensors(2017) [CV] [PDF]
[24]. WalkRanker: A Unified Pairwise Ranking Model with Multiple Relations for
Item Recommendation. AAAI(2018) [RS] [PDF]
[25]. Bootstrapping Entity Alignment with Knowledge Graph Embedding. IJCAI(2
018) [KGE] [PDF]
[26]. Improving Occlusion and Hard Negative Handling for Single-Stage
Pedestrian Detectors. CVPR(2018) [CV] [PDF]
[27]. NSCaching: Simple and Efficient Negative Sampling for Knowledge Graph
Embedding. ICDE(2019) [KGE] [PDF]
[28]. Meta-Transfer Learning for Few-Shot Learning. CVPR(2019) [CV] [PDF]
[29]. ULDor: A Universal Lesion Detector for CT Scans with Pseudo Masks and
Hard Negative Example Mining. ISBI(2019) [CV] [PDF]
[30]. Distributed representation learning via node2vec for implicit feedback
recommendation. NCA(2020) [NLP] [PDF]
[31]. Simplify and Robustify Negative Sampling for Implicit Collaborative Filtering.
arXiv(2020) [RS] [PDF]
[32]. Hard Negative Mixing for Contrastive Learning. arXiv(2020) [CL] [PDF]
[33]. Bundle Recommendation with Graph Convolutional Networks. SIGIR(2020)
[RS] [PDF]
[34]. Supervised Contrastive Learning. NIPS(2020) [CL] [PDF]
[35]. Curriculum Meta-Learning for Next POI Recommendation. KDD(2021) [RS]
[PDF]
[36]. Boosting the Speed of Entity Alignment 10×: Dual Attention Matching
Network with Normalized Hard Sample Mining. WWW(2021) [KGE] [PDF]
[37]. Hard-Negatives or Non-Negatives? A Hard-Negative Selection Strategy for
Cross-Modal Retrieval Using the Improved Marginal Ranking Loss. ICCV(2021)
[CV] [PDF]
2.3 对抗式负采样 (Adversarial Sampling)
⽣成对抗⽹络 (GAN, viz. Generative Adversarial Network) 是近⼏年热⻔的⼀种⽆监督算
法,多次出现在各类顶会论⽂中。对抗式负采样⽅法通常基于 GAN 来选择负例,为负采样⽅
法注⼊了新的活⼒。
与 GAN 类似,对抗式负采样⽅法往往也有⼀个⽣成器 (generator) 和⼀个判别器
(discriminator),其中⽣成器充当采样器⽣成样例以混淆判别器,⽽判别器需要判断给定的样
例是正例还是⽣成的样例。理想的均衡状态是判别器⽣成⾮常近似于正例的样例,⽽判别器⽆
法区分正例与⽣成器产⽣的样例。
对抗式负采样的关键在于对抗式的采样器,它在 generator 和 discriminator 之间进⾏
minimax 博弈,从⽽更好地挖掘强数据中的负例信息。从本质上来说,对抗式负采样的⽬的
仍然是为了学习到更好的负例分布。
▲IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval
Models [39]
然⽽,对抗式负采样⽅法的缺点也很突出,复杂的框架、不稳定的训练结果和较⻓的训练时间
都极⼤地限制了该⽅法的应⽤场景,⽣成器与对抗器之间的博弈也不⼀定能收敛到理想的纳什
均衡状态,对抗式负采样⽅法仍有探索和改进的空间。
[38]. Deep Generative Image Models using a Laplacian Pyramid of Adversarial
Networks. NIPS(2015) [CV] [PDF]
[39]. IRGAN: A Minimax Game for Unifying Generative and Discriminative
Information Retrieval Models. SIGIR(2017) [IR] [PDF]
[40]. SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient. AAAI
(2017) [NLP] [PDF]
[41]. KBGAN: Adversarial Learning for Knowledge Graph Embeddings. NAACL(20
18) [KGE] [PDF]
[42]. Neural Memory Streaming Recommender Networks with Adversarial Training.
KDD(2018) [RS] [PDF]
[43]. GraphGAN: Graph Representation Learning with Generative Adversarial
Nets. AAAI(2018) [GRL] [PDF]
[44]. CFGAN: A Generic Collaborative Filtering Framework based on Generative
Adversarial Networks. CIKM(2018) [RS] [PDF]
[45]. Adversarial Contrastive Estimation. ACL(2018) [NLP] [PDF]
[46]. Incorporating GAN for Negative Sampling in Knowledge Representation
Learning. AAAI(2018) [KGE] [PDF]
[47]. Exploring the potential of conditional adversarial networks for optical and
SAR image matching. IEEE J-STARS(2018) [CV] [PDF]
[48]. Deep Adversarial Metric Learning. CVPR(2018) [CV] [PDF]
[49]. Adversarial Detection with Model Interpretation. KDD(2018) [ML] [PDF]
[50]. Adversarial Sampling and Training for Semi-Supervised Information
Retrieval. WWW(2019) [IR] [PDF]
[51]. Deep Adversarial Social Recommendation. IJCAI(2019) [RS] [PDF]
[52]. Adversarial Learning on Heterogeneous Information Networks. KDD(2019)
[HIN] [PDF]
[53]. Regularized Adversarial Sampling and Deep Time-aware Attention for Click-
Through Rate Prediction. CIKM(2019) [RS] [PDF]
[54]. Adversarial Knowledge Representation Learning Without External Model. IE
EE Access(2019) [KGE] [PDF]
[55]. Adversarial Binary Collaborative Filtering for Implicit Feedback. AAAI(2019
) [RS] [PDF]
[56]. ProGAN: Network Embedding via Proximity Generative Adversarial Network.
KDD(2019) [GRL] [PDF]
[57]. Generating Fluent Adversarial Examples for Natural Languages. ACL(2019
) [NLP] [PDF]
[58]. IPGAN: Generating Informative Item Pairs by Adversarial Sampling. TNLLS(
2020) [RS] [PDF]
[59]. Contrastive Learning with Adversarial Examples. arXiv(2020) [CL] [PDF]
[60]. PURE: Positive-Unlabeled Recommendation with Generative Adversarial
Network. KDD(2021) [RS] [PDF]
[61]. Negative Sampling for Knowledge Graph Completion Based on Generative
Adversarial Network. ICCCI(2021) [KGE] [PDF]
[62]. Synthesizing Adversarial Negative Responses for Robust Response Ranking
and Evaluation. arXiv(2021) [NLP] [PDF]
[63]. Adversarial Feature Translation for Multi-domain Recommendation. KDD(202
1) [RS] [PDF]
[64]. Adversarial training regularization for negative sampling based network
embedding. Information Sciences(2021) [GRL] [PDF]
[65]. Adversarial Caching Training: Unsupervised Inductive Network
Representation Learning on Large-Scale Graphs. TNNLS(2021) [GRL] [PDF]
[66]. A Robust and Generalized Framework for Adversarial Graph Embedding. ar
xiv(2021) [GRL] [PDF]
[67]. Instance-wise Hard Negative Example Generation for Contrastive Learning in
Unpaired Image-to-Image Translation. ICCV(2021) [CV] [PDF]
2.4 基于图的负采样 (Graph-based Sampling)
如果说前⾯介绍的 Hard Negative Sampling 和 Adversarial Sampling 充分利⽤的是样例
在 embedding 空间的语义 (semantic) 信息,那么基于图的负采样⽅法则是进⼀步结合样例
在图上的结构 (structural) 信息。
GNEG [69] 是 word2vec 负采样⽅法的改进,先根据语料库中词语的共现关系构造共现 (co-
occurrence) ⽹络,再在通过⽬标结点上的随机游⾛获得更强的负例。RWS [68] 、
SamWalker [71] 和 SamWalker++ [75] 也是类似的随机游⾛ (Random Walking) 策略,只
是应⽤的领域为推荐系统。
KGPolicy [73] 利⽤知识图谱的辅助信息和强化学习的⽅法寻找⾼质量的负例,DSKReG
[76] 则是在知识图谱上根据相连的关系和结点嵌⼊计算邻居结点的相关性分数。
微信扫⼀扫
关注该公众号
2022-02-17 18:00夕⼩瑶的卖萌屋