阿里妹导读:在电子商务中,品牌在用户对商品做点击、购买选择正起着越来越重要的作用,部分原因是用户现在越来越关注商品的质量,而品牌是商品质量的一个保证。 但是,现有的排序系统并不是针对用户对品牌的偏好设计的。某些处理方案一定程度上能减轻这个问题,但仍然无法取得理想的效果或需要增加额外的交互成本。接下来,我们一起来看看,阿里针对这个问题提出了何种解决方案.

我们提出并设计了第一个品牌级排序系统来解决“现有的排序系统并不是针对用户对品牌的偏好设计的”这个问题,该系统的核心挑战是如何有效利用电子商务网站中的大量信息来对品牌作个性化排序。在我们的解决方案中,我们首先针对个性化品牌排序问题设计特征工程,然后在 Attention-GRU模型的基础上,提出了3个重要改进,以便更好地对品牌排序。值得注意的是,这些改进也能应用于很多其他机器学习模型。我们在阿里巴巴天猫商城上做了大量实验来验证这个排序模型的有效性,并测试了真实应用场景中用户对该排序系统的反馈。

1.1 引言

在淘宝网等电子商务网站中,品牌在用户对商品做点击、购买选择起着越来越重要的作用[1]。产生这个现象的原因有很多:一方面,用户喜欢高质量的商品,而品牌是商品质量的保证;另一方面,用户可能因为某些品牌的推广活动而对这些品牌有特殊偏好,比如篮球粉丝会喜欢某NBA明星代言的品牌等。

但是,正如图1.1(a) 所示,已有搜索、推荐系统中的排序结果将不同品牌的商品汇聚在一起,这不能很好地满足有品牌偏好的用户的需求,因为他们必须花费大量的时间去浏览。

(a) 现有排序系统的结果

(b) 点击复选框 Levi’s 后的结果

(c) 品牌级排序系统的结果

图 1.1 在给定搜索词 “jeans” 时不同排序系统展示的搜索结果。红线标注的内容是重要的品牌相关信息。

针对他们不喜欢的品牌商品,有些方案一定程度上可以减轻这个问题:

  1. 将品牌作为系统中排序模型的一个特征,从而使用户喜欢的品牌的商品在排序列表中的位置靠前。但是,不同品牌的商品还是杂糅在一起。
  2. 设置复选框、按钮来过滤品牌,如图1.1(b)所示,在搜索词 “jeans” 的返回页面上,通过点击Levi’s (李维斯) 的按钮,用户可以只浏览李维斯的商品。但是,复选框、按钮只能显示少量品牌,而且没有个性化。另外,当用户想浏览多个品牌时,必须多次点击复选框,这增加了交互成本,降低了用户体验。

因为现有系统存在的上述问题,我们设计了一个品牌级排序系统,其中相同品牌的商品聚集在一起,并根据用户对品牌的偏好来对品牌排序。图1.1(c) 是我们系统的一个演示:首先,对牛仔裤按品牌(比如李维斯和威格 (Wrangler))归类。然后,当系统学习到相比于威格,用户更喜欢李维斯时,李维斯的排序位置将会更靠前。

品牌级排序系统的核心挑战是解决个性化品牌排序问题。电子商务网站上的多种重要信息都可用于对品牌排序。首先,品牌价格特征对品牌建模很重要;其次,用户行为中的序列信息和时间间隔信息对用户兴趣建模也非常重要[2];另外,不同的行为类型(点击和购买)反映了用户对商品不同的偏好(相应地,反映了对品牌的不同偏好)。

比如,一般来说购买行为比点击行为能体现用户更强的喜好程度。这里的核心问题是,如何有效利用用户行为序列中的这些特性来提升个性化品牌排序效果。我们将此定义为一个点排序问题。具体地,首先基于电子商务网站中的不同信息训练一个分类器;然后。给定一个用户,使用分类器预测他喜欢不同品牌的概率,再基于概率对品牌排序。属于同一个品牌的商品可使用传统方法排序。

设计该品牌级排序系统需要完成两个子任务:一个是针对品牌排序问题的特征工 程,我们提出一系列影响品牌排序效果的品牌特征;另一个是排序模型的设计,我们出一个适配的 Attention-GRU模型[3] 来预测用户喜欢不同品牌的概率。循环神经网络 (Recurrent Neural Network,简称 RNN) 已经在用户行为序列建模中取得了很好的效果[2],门循环单元 (Gated Recurrent Unit简称GRU)[4] 是最好的RNN结构之一,注意力机制[5]有助于区分不同行为对当前推荐的影响。因此,我们将 Attention-GRU作为基础模型。然后,在Attention-GRU 的基础上我们出了3个重要改进。

  1. 将启发式设计的品牌特征和由模型学习到的品牌向量进行整合以更好地对品牌建模。在我们的实验中,这个改进能极大提升品牌推荐效果。
  2. 考虑不同的行为类型。我们为不同的行为类型设置不同的矩阵,并显式地将它们对品牌的影响建模成矩阵相乘。
  3. 整合时间门[2] 来对行为间的时间间隔建模,这能更好地捕获用户的长短期兴趣。通过阿里巴巴天猫商城上的离线和在线实验验证了我们提出的模型及基于该模型的品牌级排序系统的有效性。

本章的贡献如下:

  • 我们提出了第一个品牌级排序系统用于个性化品牌排序,并能基于用户的品牌偏好来提升他们的购物体验。
  • 我们针对品牌排序任务设计了相应的特征工程,并提出了一个适配的 Attention-GRU模型。具体地,我们提出了3个重要改进,这些改进能有效提升模型效果。
  • 我们在阿里巴巴天猫商城上做了大量的离线和在线实验。实验结果和真实用户的反馈证明了我们模型和品牌级排序系统的有效性。

1.2 相关工作

1.2.1 RNN, GRU 和 Attention-GRU

RNN [6]已被证明能在序列数据建模中取得非常好的效果,它的数学公式如下:

GRU [4]是RNN 结构中的一个重要组成成分,能防止梯度消失问题,它把公式(1.1)替 换为:

1.2.2 用于行为建模的 RNN 模型

一些方法专注于基于会话场景的 RNN 解决方案,也有方法[12] 针对购物篮推荐设计了相应的 RNN 模型,但我们的工作与它们的设定不同。Time-LSTM模型[2]在LSTM[13]基础上添加了时间门来更好地捕获用户的长短期兴趣。我们提出时间门是一个基本组件, 并可嵌入到其他的 RNN 结构中 (比如本章中的 Attention-GRU)。

1.3 任务定义和模型适配

1.3.1 任务定义

1.3.2 传统 RNN 模型的适配

图 1.2 品牌特征的提取过程。

1.4 品牌级排序系统

为了设计这个品牌级排序系统,我们需要完成两个子任务,即特征工程和排序模型的设计。

1.4.1 特征工程

通过分析淘宝和天猫商城上大量的用户行为日志,用户访问和市场研究,价格区间对于用户和品牌建模非常重要。一方面,用户在做点击、购买决定时,价格是一个重要的考虑因素。另一方面,价格也是反映品牌质量和知名度的一个重要特征。因此,我们根据7 级价格区间来精心设计品牌特征。具体信息如下 (也可参考图1.2):

(2) 给定一个特定的品牌,商品按以上定义的价格级别进行归类。具体地,当一个商品的价格落在某个价格区间,这个商品就属于相应的价格级别。

图 1.3 展示为什么在我们的任务中要使用注意力机制的一个例子。

(3) 给定一个特定的品牌,统计每个价格级别中8个最重要的电子商务指标,生成8维向量。7个价格级别中的所有 8 维向量串接起来生成 56 维的向量。具体地,本章中8个最重要的电子商务指标如表 1.1所示。

1.4.2 排序模型的设计我们设计了一个适配的 Attention-GRU 模型来预测用户喜欢不同品牌的概率。

★ 1.4.2.1 (1) 为什么选择 Attention-GRU

在对用户行为序列建模时,RNN 方法已经取得最好的效果。LSTM 和 GRU 是 RNN 结构的非常重要的组成成分,它们都能避免梯度消失的问题。相比于 LSTM,GRU 能获得差不多的效果,但参数更少,因此它的训练速度更快,需要更少的数据就可以达到同样的泛化能力。图1.3展示了一个例子,来说明为什么要将注意力机制应用于我们的任务中。当预测用户是否会点击、购买阿迪达斯的夹克时,我们希望能提升第一个和第 三个商品对预测的影响,因为相比于手机和电脑、裤子、鞋子与夹克的关系更紧密。在注意力机制中,这反映在第一个和第三个输入有更大的权值。

★ 1.4.2.2 (2) 如何对Attention-GRU进行改进为了获得更好的效果

我们针对Attention-GRU出了3个改进(也可参考图1.4):

图 1.4 我们针对Attention-GRU模型提出的改进,使用虚线和红文本表示。

针对公式 (1.11),我们给出 3 种解释。

通过这种矩阵相乘的方式,显式地对品牌和行为类型的交互建模。

改进 3: 整合时间门以对行为间的时间间隔建模Time-LSTM[2] 中的时间门对捕获用户的长短期兴趣是非常有效的。本章中我们指出,时间门是一个基本组件,并按如下方式将其适配到我们的模型中。首先定义时间门Tm为:

其中

值得注意的是,改进 1 非常具有普适性,可用于人造特征和独热向量存在的很多其他机器学习模型;改进 2 可泛化于处理与输入有不同交互类型的任务;在改进 3 中,我们提出时间门不仅可用于LSTM 中,还可用于其他 RNN 模型中,使用方式可以参考我们在Attention-GRU 中的做法。

★ 1.4.2.3 (3) 损失和训练

类似于 Attention-GRU,我们模型中的p(Bqu)是由公式(1.10)中的 o ̃m 得到的。定义用 户 u 的损失为:

1.5 离线实验

1.5.1 数据集

我们在阿里巴巴天猫商城上收集了一个真实的大规模数据集。具体地,抽取四元 组 <user_id,brand_id,action_type,timestamp>,每个四元组表示用户user_id 在时 刻 timestamp对品牌 brand_id 产生了一个行为 action_type,过滤掉只有少量交互的用户 和品牌。在离线实验中,最后的数据集包含 M =3, 591,372 用户,N = 90, 529 品牌和 82,960,693 次行为。

1.5.2 比较模型和评价指标

用 Attention-GRU-3M (带有 3 个改进的 Attention-GRU) 来表示我们的模型,并将其与其他基准方法比较。GRU : GRU [4] 是最好的 RNN 结构之一。因此,用 GRU 的效果来代表 RNN 模型的最佳效果。

Attention-GRU:相似地,选择 Attention-GRU [3]来代表带注意力机制的 RNN 模型。 Time-LSTM: Time-LSTM[2] 在序列行为建模方面已取得最好的效果。因此,将其作为一个 非常有竞争力的基准方法。

Session-RNN :Session-RNN [9]基于一个会话中的行为序列使用 RNN 方法来捕获用户的短期兴趣。我们使用公开的 python 代码来实现 Session-RNN,其中会话信息通过 Timeout [20]方法获得。

libFM:我们的任务也可看成是一个品牌推荐问题,因此,很多能同时捕获内容信息和协同信息的融合推荐算法也能使用。挑选 libFM 模型[18] 来代表这一类方法。

使用 1.3.2 节中的方法将 GRU,Attention-GRU, Time-LSTM 和 Session-RNN 适配到我们的任务。对于 libFM,我们抽取三元组 <user_id, brand_id, label>,其中,当用户user_id 在真实场景中对品牌 brand_id 发生过行为时,则 label为 1,否则 label 为 0。将user_id 的独热向量,brand_id 的独热向量和相应的品牌特征串接起来生成 x,label 是 libFM 中的 y。

将所有 RNN 模型中隐单元的数目统一设置成 256,其他超参数使用交叉验证或按原 论文进行设置。近期我们将公布本章的代码。

本章使用 AUC 和 F1 [21] 这两个评价指标来评价不同模型的预测性能。

1.5.3 实验结果和结论

★ 1.5.3.1 模型比较

如表1.2所示,Attention-GRU-3M 的性能明显好于所有基准模型,我们将此归功于注意力机制和提出的 3 个改进。基准方法 GRU 和 Session-RNN 没利用任何特性,所以 表现最差。相比于 GRU,Attention-GRU利用了注意力机制,Time-LSTM 利用了 1.4.2 节 中提出的改进 3。因此,它们的效果比 GRU 和 Session-RNN 都更好。作为一个融合推 荐算法,libFM 同时捕获了内容信息和协同信息,但是没有捕获用户行为的序列信息, 而 Attention-GRU-3M 利用了所有信息,这解释了为什么 Attention-GRU-3M 的效果好于 libFM。

★ 1.5.3.2 三个改进的效果

如 1.4.2 节所述,我们提出了 3 个改进来提升 Attention-GRU 的效果。现在,我们每 次去掉 1 个改进来看看每个改进是如何影响预测效果的。同时,我们也改变训练数据的 规模来看看数据集的大小对效果的影响。如图1.5 (AUC 和 F1 的结果是类似的,为方便起见,我们只展示 AUC 的结果) 所示,去掉任何一个改进都会使 AUC 下降,而去掉改进 1。

表 1.2 模型比较 (粗体表示最好的效果。* 表示在显著性水平设为 p < 0.01 时,效果最好的方法相比于第二好的方法是有显著性差异的。)

图 1.5GRU-3M 中去掉每个改进和改变训练数据规模时的效果 (AUC)。No Modification i 表示在 Attention-GRU-3M 中去掉改进 i。

时 AUC 下降得最多,这证明所有改进都对效果提升有帮助,改进 1 的效果最明显。当训 练数据的规模变大时,改进 1 的影响更加明显 (即 “Attention-GRU-3M” 和 “No Modification 1” 之间的差距变大)。一个可能的解释是,相比于其他两个改进,改进 1 有更多的参数 (即Membed的大小的大小),因此它需要更多训练数据来学习最优值。

训练数据的规模对于模型效果来说是个重要的影响因素。如表1.2所示,当数据集大小从50%升到100%时,我们模型提升的效果比其他模型更多。值得注意的是,如图1.5所 示,当增加训练数据的大小,Attention-GRU-3M 效果的增长率比 Attention-GRU升很多,这可能是因为提出的3个改进使得我们的模型更好地拟合本任务中潜在的复杂模式,相应地,它需要更多训练数据进行学习。

1.6 线上实验

图1.6 左边展示了原始的排序系统。用户可以通过点击“Brand” 按钮切换到右边的品牌级排序系统。

表1.3 线上实验的效果 (基准 对应于图1.6左边的系统,新版本表示右边的系统。相对提升是新版本相对于基准的提升,比如,3.40% ≈ (144.90 − 140.13)/140.13)

表1.3展示了线上实验结果。可以看到,相比于基准方法,新排序系统中的 CTR 和 ATIP 都有提升,这证明通过整合品牌级排序系统,用户更愿意点击该系统展示的商品,同时他们购买的商品价格比以前更高 (商品质量相对也更高)。也因此,天猫商城上的核心优化指标 GMV 有了 3.51% 的提升。考虑到整个天猫商城的流量,这将会带来巨大的经济效益。该品牌级排序系统已经在天猫商城正式上线,当前用户需要主动激活这个功能才可 以使用,每天大概有4*10^5个用户使用该品牌级排序系统。

1.7 小结

我们提出了一个品牌级排序系统,以更好地满足有品牌偏好的用户的需求。 这个系统的核心是解决个性化品牌排序问题。在我们的解决方案中,我们首先精心设计品牌特征,然后使用适配的 Attention-GRU 模型,即 Attention-GRU-3M,来对品牌排序。

Attention-GRU-3M包含了3个重要改进,从而能利用资源ID 和资源属性的融合信息,不同用户行为类型及相邻行为的时间间隔来提升品牌排序的效果。但是,当前介绍的几个工 作都只考虑用户与资源之间的二元关系,而随着推荐系统的不断完善,标签等越来越多的元素被添加进来,用户、标签和资源间除了形成二元关系,还会构建 < 用户、标签、资源 > 的三元标注关系。


参考文献:

[1] Daniel Zipser,Yougang Chen, Fang Gong. The modernization of the chinese consumer[J]. McKinseyQuarterly, 2016. [2] YuZhu,HaoLi,YikangLiao,BeidouWang,ZiyuGuan,HaifengLiu,DengCai.Whattodonext:Modelinguser behaviors by time-lstm[C]. In Proceedings of the Twenty-SixthInternational Joint Conference on Artificial Intelligence, IJCAI-17. 2017,3602–3608.

[3]JanKChorowski,DzmitryBahdanau,DmitriySerdyuk,KyunghyunCho,YoshuaBengio.Attention-basedmodels for speech recognition[C]. In Advances in Neural Information ProcessingSystems. 2015, 577–585.

[4] Kyunghyun Cho, BartVan Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, HolgerSchwenk, Yoshua Bengio. Learning phrase representations using rnnencoder-decoder for statistical ma- chine translation[J]. arXiv:1406.1078,2014.

[5] Dzmitry Bahdanau,Kyunghyun Cho, Yoshua Bengio. Neural machine translation by jointly learning toalign and translate[J]. arXiv preprint arXiv:1409.0473, 2014.

[6] Jeffrey L Elman.Finding structure in time[J]. Cognitive science, 1990, 14(2):179–211.

[7] Alex Graves.Generating sequences with recurrent neural networks[J]. arXiv:1308.0850, 2013.[8] VolodymyrMnih,NicolasHeess,AlexGraves,etal.Recurrentmodelsofvisualattention[C].InAdvancesin neural information processing systems. 2014, 2204–2212.

[9] BalázsHidasi,AlexandrosKaratzoglou,LinasBaltrunas,DomonkosTikk.Session-basedrecommendationswith recurrent neural networks[C]. In ICLR. 2016.

[10] Yong Kiam Tan,Xinxing Xu, Yong Liu. Improved recurrent neural networks for session-basedrecommen- dations[C]. In RecSys. ACM, 2016, 17–22.[11] BalázsHidasi,MassimoQuadrana,AlexandrosKaratzoglou,DomonkosTikk.Parallelrecurrentneuralnet-work architectures for feature-rich session-based recommendations[C]. InRecSys. ACM, 2016, 241–248.

[12] Feng Yu, Qiang Liu,Shu Wu, Liang Wang, Tieniu Tan. A dynamic recurrent model for next basketrecom- mendation[C]. In SIGIR. ACM, 2016, 729–732.

[13] Sepp Hochreiter,Jürgen Schmidhuber. Long short-term memory[J]. Neural computation, 1997,9(8):1735–1780.

[14] John Duchi, EladHazan, Yoram Singer. Adaptive subgradient methods for online learning andstochastic optimization[J]. JMLR, 2011, 12(Jul):2121–2159.[15] JunyoungChung,CaglarGulcehre,KyungHyunCho,YoshuaBengio.Empiricalevaluationofgatedrecur-rent neural networks on sequence modeling[J]. arXiv preprint arXiv:1412.3555,2014.[16] RafalJozefowicz,WojciechZaremba,IlyaSutskever.Anempiricalexplorationofrecurrentnetworkarchi-tectures[C]. In Proceedings of the 32nd International Conference on MachineLearning (ICML-15). 2015, 2342–2350.[17] JamesOBerger.StatisticaldecisiontheoryandBayesiananalysis[M].SpringerScience&BusinessMedia,2013.

[18] Steffen Rendle.Factorization machines with libfm[J]. TIST, 2012, 3(3):57.

[19] Rong Pan, YunhongZhou, Bin Cao, Nathan N Liu, Rajan Lukose, Martin Scholz, Qiang Yang. One-classcollaborative filtering[C]. In Data Mining, 2008. ICDM’08. Eighth IEEEInternational Conference on. IEEE, 2008, 502–511.

[20] Xiangji Huang,Fuchun Peng, Aijun An, Dale Schuurmans. Dynamic web log session identificationwith statistical language models[J]. Journal of the American Society forInformation Science and Technology, 2004, 55(14):1290–1303.

[21] Myunghwan Kim, JureLeskovec. Nonparametric multi-group membership model for dynamic network- s[C].In Advances in neural information processing systems. 2013, 1385–1393.

IJCAI 阿里论文 | 基于改进注意力循环控制门 品牌个性化排序升级相关推荐

  1. IJCAI 阿里论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了

    阿里妹导读:在电子商务中,品牌在用户对商品做点击.购买选择正起着越来越重要的作用,部分原因是用户现在越来越关注商品的质量,而品牌是商品质量的一个保证. 但是,现有的排序系统并不是针对用户对品牌的偏好设 ...

  2. IJCAI论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了

    [小叽导读]:在淘宝网等电子商务网站中,品牌在用户对商品做点击.购买选择正起着越来越重要的作用,部分原因是用户现在越来越关注商品的质量,而品牌是商品质量的一个保证. 但是,现有的排序系统并不是针对用户 ...

  3. IJCAI论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了...

    [小叽导读]:在淘宝网等电子商务网站中,品牌在用户对商品做点击.购买选择正起着越来越重要的作用,部分原因是用户现在越来越关注商品的质量,而品牌是商品质量的一个保证. 但是,现有的排序系统并不是针对用户 ...

  4. 【2022研电赛】技术赛华南区一等奖:基于改进GoogLeNet的瘢痕色泽和血管分布评估系统

    本文为2022年第十七届中国研究生设计大赛技术赛道华南赛区一等奖作品介绍,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位:广西科技大学 参赛 ...

  5. IJCAI阿里论文 | JUMP: 一种点击和停留时长的协同预估器...

    小叽导读:在搜索和推荐场景中,基于会话的预测日益受到人们的兴趣和重视,大多这类算法都是基于递归神经网络(RNNs)技术或者它的变种.然而,已有的算法一方面会忽略"停留时长"在表达用 ...

  6. IJCAI阿里论文 | JUMP: 一种点击和停留时长的协同预估器

    小叽导读:在搜索和推荐场景中,基于会话的预测日益受到人们的兴趣和重视,大多这类算法都是基于递归神经网络(RNNs)技术或者它的变种.然而,已有的算法一方面会忽略"停留时长"在表达用 ...

  7. 激情绿茵,助力2022卡塔尔世界杯——基于改进的YOLO模型玩转足球检测分析系统

    四年一届的全球顶级赛事如今正在卡塔尔如火如荼的进行着,竞技体育热血澎湃,有踌躇满志,也有壮志未酬,有精彩纷呈也有无奈遗憾,这才是体育本身的魅力,如今赛程已过大半,上周结束了八强比赛,巴西桑巴军团遗憾落 ...

  8. 基于轻量级YOLOV5+BIFPN的苹果瑕疵检测识别分析系统

    BIFPN是一种比较经典有效的特征融合手段,在很多检测模型中都有集成应用,实际表现也验证了BIFPN的有效性,这里并不是要探讨BIFPN的原理内容,而是想集成这项技术,提升原有模型的性能表现,在我之前 ...

  9. IJCAI 2019 | 为推荐系统生成高质量的文本解释:基于互注意力机制的多任务学习模型...

    编者按:在个性化推荐系统中,如果能在提高推荐准确性的同时生成高质量的文本解释,将更容易获得用户的"芳心".然而,现有方法通常将两者分开优化,或只优化其中一个目标.为了同时兼顾二者, ...

最新文章

  1. 硬件专业化和软件映射的敏捷框架
  2. laravel框架cookie应用到中间件的理解
  3. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
  4. 数据结构与算法-二叉查找树(java描述)
  5. PrimerCH3字符串,向量,迭代器,数组
  6. 【CodeForces - 569A】Music (数学公式化简,模拟追及问题)
  7. 计算机重启是什么原因,电脑自动重启,该怎么办,到底是什么原因,我来详细说明?...
  8. drool-6.5的自学demo
  9. archive.php 不起作用,PHP ZipArchive在Laravel中不起作用
  10. arduino霍尔编码器蓝牙小车代码
  11. Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?
  12. 论文阅读汇总(4)-【篇数:50】
  13. 有赞BI平台实现原理
  14. 开放报名 | “2021 年全国人工智能大赛”正式开赛
  15. Day12-2021.1.20-华为硬件笔试
  16. PerfDog常见问题解决
  17. 更改计算机的主题和桌面背景,禁止更改电脑主题背景的技巧
  18. 美赞臣中国独立后任命朱定平为总裁;思拓凡亚洲首个技术研发卓越中心上海揭幕 | 美通社头条...
  19. Python .pyc的编译和反编译
  20. 互联网酒店预订系统的服务端架构图-4

热门文章

  1. css3 animation动画360旋转。旋转效果用transform:rotate过渡。
  2. 孝经白话:广扬名章第十四
  3. 创业公司给的期权,真的靠谱么?
  4. 生信小白学习日记Day3——NGS基础 NGS分析注解(质量分析软件)
  5. windows系统下vc调用v8脚本引擎执行javascript初探
  6. android播放视频过程cpu占用高,Android App高CPU使用率和电池消耗
  7. 【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)
  8. NanoPi NEO3上手日记第三天——安装3G/4G网卡(OpenWrt系统均适用)
  9. 【23届秋招总结】本科小学弟成功签约滴滴后端开发offer
  10. 【无标题】chatGPT--白话文教你读懂chatGPT