智能商业化模式:信息流广告的动态展现策略

news2024/10/6 2:28:48

目录:

· 摘要

· 引言

· 问题建模

· 实验

· 总结与展望

· 关于我们

· 参考文献

▐ 摘要

大多数的信息流场景会向用户展现自然内容和商业化内容(广告)的混合结果。一种比较常见的做法是,将广告限定在固定位置进行展现,但由于这种静态广告展现策略忽略了用户的个性化偏好,往往比较低效。因此,在本文中我们聚焦于信息流广告的动态展现方法研究,从动态背包问题的角度将其建模,并提出了分层约束下的动态广告展现方法(Hierarchically Constrained Adaptive Ad Exposure,  简称 HCA2E)。本文介绍了该方法对平台多目标优化的近似最优性,可以保障平台所需的拍卖机制性质,同时具备计算高效和效果稳定等优点,大量在线和离线实验验证了 HCA2E 的效果显著优于现有业界应用的方法。目前,HCA2E 已在淘宝平台部署上线,服务于海量用户。该项工作论文已发表在CIKM 2022,欢迎阅读交流。

论 文:Hierarchically Constrained Adaptive Ad Exposure in Feeds

下 载:https://arxiv.org/abs/2205.15759

1. 引言

当前,很多在线平台(例如电商、新闻推荐、社交媒体等)会以推荐和广告混合的信息流形式呈现给用户。为了降低系统设计的复杂度,广告通常会被展现在固定位置上(如图1所示)。然而,由于忽略了用户的个性化偏好,固定位置展现方法往往是比较低效的,并且难以应对不同的业务需求。相比而言,动态位置的广告展现模式能够兼顾平台效果与不同业务需要,逐渐受到业界的关注和研究。

2d0857605eccd835024553921ff27a62.png
图1:固定广告展示(左)与动态广告展示(右)

但是,在大规模信息流平台上部署广告动态位置策略会面临以下几个关键挑战。(1) 广告动态展现是一个多目标优化问题。具体地,展示更多广告会提升平台收入,但是会以损失用户体验为代价,我们需要考虑推荐侧目标与广告侧目标之间的平衡。因此,广告动态展现策略需要是帕累托最优的。(2)在实际的应用场景上会存在不同层级的业务约束:在单次请求视角上,广告位置被严格限制用来保障良好的用户体验;在全局平台视角上,商业化率(一段时间内广告的展现占比)需要被约束不超过特定上界。(3)广告拍卖中的博弈论性质需要得到保障,例如激励兼容性[1]和独立理性[2]可以在理论上鼓励广告主进行真实出价,对于广告生态系统的长期稳定是极为重要的。(4)动态广告展示策略需要具备高计算效率和低反馈延迟,保证整体系统的稳定

目前业界已有一些工作[6, 7, 8, 9]尝试研究动态广告展示问题,但也存在一些不足:(1)只考虑单次请求价值的建模,未考虑平台整体的累积效果,会导致展现策略陷入局部最优;(2)忽视了广告拍卖机制性质要求,可能会导致广告主竞价的混乱;(3)由于复杂度高而难以被部署在大规模平台上。

在本文中,我们提出了多层级约束下面向平台整体效果优化的动态展现策略,主要成果包括:

  • 将广告动态位置展现问题建模为一个动态背包问题,以适配多样的优化目标和约束;

  • 提出分层约束下的动态广告展现方法HCA2E,保留了广告拍卖的博弈论性质,并具备高计算效率和性能稳定性等优点;

  • 在手淘信息流场景搭建了一个混合系统(Merging Server),其接受上游推荐系统和广告系统的候选结果作为输入,基于HCA2E方法产生推荐和广告的返回队列。在线和离线实验结果均验证了该方法的优势。

2. 问题建模

在一段特定的时间内,我们考虑将所有的用户请求描述为一个请求序列。对于单个请求,一种广告展示策略决定了广告的展现位置和顺序。此时,期望的请求效益由所有的展现结果确定。因而,是期望的推荐效益与广告效益的加权和,即:

其中是权重系数。整体优化目标是实现所有请求的累积价值最大化,但是优化过程需满足不同层级的约束条件:

  • 全局视角上,商业化率(即广告展现占比)通常需要小于一个特定的上界,即:

其中,和分别表示广告展现量与总展现量。

  • 单次请求视角上,广告的展现位置需要满足“首个广告的最高位置”和“相邻广告的最小间距”的约束,满足该约束的策略空间我们记作和。

综合以上,完整的优化问题可以表述为如下形式:

05bfaa7e39db955e8e163c91dfc7a53f.png

3. 方法描述

3.1 动态背包问题

直接优化上述问题是存在困难的,主要原因包括:(1)表示不同展现结果的策略是离散变量,因此原始优化问题是非凸的;(2)优化变量受分层约束的限制,实时请求上的展现决策需要考虑全局约束;(3)优化时需要考虑广告拍卖机制与计算复杂度。为了缓解以上困难,我们考虑将策略分解:

  • 全局视角的流量优选策略,其中表示请求被展现广告,反之;

  • 请求视角的广告展现策略可以决定每个被选择的请求上的展现方式。

特别地,我们将不展现广告的策略表示为(当时)。

解决上述优化问题可以从背包问题的思路出发。此时,单个请求被视为背包问题中的物品。基于展示策略,请求的价值被定义为展现广告所带来的的效益增量,即;重量被定义为展现广告的数量,即。特别地,下请求的价值和重量均为0。接下来,我们考虑用一个背包容纳这些请求,且整体重量不超过背包的承受上界。背包价值即为背包内所有请求的累积价值,即。同时,背包的承受上界可以被表示为。由于一定时间内的整体展现量受影响较小,因此我们将视为常量。

综上所述,我们的目标是在背包承重上限的约束下(同时考虑请求上的广告位约束),实现背包价值的最大化,即:

9e5b1dd8436e4ac2da352a61f450e7a0.png

区别于传统的静态背包问题,在上述问题建模中,物品(请求)的价值和重量为变量,因此该问题是一个动态背包问题[3]。我们的解决方法主要分以下几步:(1)设计分层优化框架,确立全局视角和单次请求视角相互解耦的优化目标和范式;(2)利用保序策略,保证广告拍卖机制性质的同时降低了计算复杂度;(3)采用两种轻量级的优化算法分别优化和,确保整体计算复杂度在可控范围内。我们将整体流程概括为分层约束下的动态广告展现方法(Hierarchically Constrained Adaptive Ad Exposure ,简称HCA2E)。

3.2 分层优化框架

确定分层优化框架时,我们先固定优化,即选择哪些请求应该被展现广告。此时,每个请求的价值和重量均为定值,问题简化为一个0-1背包问题。贪婪算法是解决0-1背包问题的常用方法。贪婪算法定义了每个请求的性价比为:

然后将所有请求按照性价比从大到小排序,选择满足背包约束的请求展示广告,未被选择的请求则不展示(如图2所示)。但是,线上对请求进行排序是不实际的。我们注意到,被选中的最后一个请求的性价比可以作为阈值进行筛选。因此,流量优选策略也可以描述为:

实际应用中,我们只需要考虑调节性价比阈值即可达到优化的目的。

58ecc69b1d24ecd1da0875b0b860e222.png
图2:解释贪婪算法求解0-1背包问题

然后,我们固定优化,即在已选请求上搜索请求粒度的最佳广告展示策略。如图3所示,假设其他请求的策略不变,仅请求的展示策略由变为,则的引导价值增量为。同时,的重量变化,会导致阈值附近的请求被挤出,对应的价值变化为。如果我们希望优于,那么。因此,策略寻优的条件可以表示为:

2cf1ac64741ff74e5e7e46f077962284.png

进而,可以推导出给定(即确定)的情况下,最佳展示策略为:

cbb9d7840a605a5fee762bbce22bdaa3.png

我们将称为带来的背包价值增量。

3dff9d4f806f0fa9d8baa50c81796788.png
图3:解释的优化策略

综上,我们可以获得最终策略的表达式:

78b8927e652e98fa54414006c417ad44.png

3.3 保序策略

接下来,我们将考虑如何保障广告的拍卖机制性质。这里我们重点关注激励兼容性和独立理性,其中独立理性保证广告主的收益非负,激励兼容性则能够进一步保证其收益最大化。根据迈尔森理论,广告扣费与其分配顺序相关。然而,许多现有工作中都没有考虑到改变广告的序会影响最终扣费,从而破坏拍卖机制性质,不利于广告系统的长期稳定。对此,我们引入了保序策略:(1)推荐和广告结果的相对顺序与上游系统保持一致;(2)广告的扣费与上游广告系统保持一致。在保序策略下,各个广告主内部的竞争关系保持不变,从而保障拍卖机制性质与定坑条件下一致。不仅如此,保序策略还有以下优势

  • 保序策略允许推荐/广告系统的运转相对独立。较大规模的信息流平台中,由于各自特有的复杂结构和业务目标,推荐和广告系统通常分别由不同部门的团队负责。因此,保序策略可以使得两个子系统之间相对解耦,从而有利于各自快速完成技术迭代和更新。

  • 保序策略还可有效降低的优化复杂度。在保序策略下,优化仅需要确定请求上的每个位置应该放置推荐结果还是广告,然后按照上游顺序依次放入。因此,可以被视为一个展示模板,用一个0-1向量来表示。其中,表示候选的展现位置数量,表示位置展示广告,则标识位置展示推荐。假设所有候选推荐结果和广告的数量总和为,那么引入保序策略后,可能的展现排列结果由降为。因此,最优展现策略的搜索空间被显著减小。

3.4 优化:展现模板搜索

在保序的设定下,策略的优化可以转化为搜索最优展现模板。给定一个请求和展示模板,参考前述定义,在上的价值增量可以表示为:

6e83a1084499450e3281292b4e798855.png

6acf4da71d8fed62640b674407deb820.png
图4:模板搜索方法示意图

考虑到当前复杂度仍然较高(可能的模板数为),我们期望进一步减小模板搜索空间。基于Beam Search算法[4],我们设计了一套模板搜索算法来有效地筛选出每个请求下的次优模板集合。如图4所示,这里我们利用一个树结构来表示模板的搜索过程:树的层数等于位置序号,每个树节点表示一个搜索到当前位置时的子模板。随着树层数的加深,我们将不断对树剪枝以控制树的大小,具体的剪枝规则如下:(1)剔除不符合请求约束的节点;(2)保留价值最大的前个节点(被称为Beam Size)。因此,整个搜索过程的复杂度就降为了,相比之前的进一步降低。在最终的集合中,我们选择价值最大的模板作为最佳展示模板,即:

fa20aab20f68912a949a5e80eac5bb47.png

通过调节,模板搜索方法可以有效在计算复杂度和最优性之间寻求平衡。

3.5 优化:实时反馈调节

性价比阈值在整个广告展示策略中扮演了非常重要的角色,但是预估的可能与理论最佳值之间存在偏差。当时,会有更多低价值广告被展现,且商业化率会超过约束目标;当时,广告展现量降低,会影响平台收入。因此,我们需要动态调控,使得商业化率的实际值和目标值尽可能接近。

这里我们引入了反馈控制方法[5]来实现调节。具体地,我们假设每隔更新一次。每次更新时,我们会实时计算最近一个时间窗口内的商业化率。相应地,更新公式如下:

707f999529d5a1b50025ce484d09fd65.png

其中,为学习率,主要的更新原理:当实际的超过时,会减小以降低和之间的差距;反之,增大。

3.6 在线部署

最后,我们将阐述HCA2E方法如何部署于在线信息流场景。整个过程如图5所示,关键步骤如下:

  • 在线服务时,如果有用户请求到来,首先推荐系统(RS)和广告系统(AS)将分别产生推荐和广告队列。然后混合模块将二者根据上述方法合并。混合结果将被展现给用户,并被记录于日志中。

  • 每隔一定周期,实时调控模块将计算当前的商业化率,然后调节性价比阈值以达到平台的约束要求。

3d58bf6254bf1c60200315650e5cb2f2.png
图5:HCA2E方法在线部署示意图

4. 实验

本文中,离线与在线实验均基于手机淘宝的信息流平台和数据。实验除了观察常见的效果评估指标,如平台收入(Revenue, REV)、交易总额(Gross Merchandise Volume, GMV)、点击率(Click-Through Rate, CTR)等,我们还会评估广告位置的分布和商业化率的稳定程度。

4.1 离线评估

离线实验基于我们利用真实数据构造的模拟器,并选择了已在业界实际应用的方法作为基准方法,包括:固定位置策略(Fixed)、Wholepage Optimization (WPO) [6]和Gap Effect Algorithm (GEA) [7]。同时为了公平对比,我们将所有方法的商业化率进行统一约束。对于多目标优化问题,我们首先关注方法的Pareto效果。为了统一量纲,我们将不同指标的度量均换算成相对于固定位置的相对变化值。在多目标权重分别为的条件下,我们分别绘制了不同方法的Pareto曲线,如图6所示。从图中我们可以发现,本文方法的Pareto曲线明显由于基准方法,主要表现为Pareto曲线更靠向坐标轴的右上角,说明在相同的REV/GMV取值下,HCA2E对应的GMV/REV均比基准方法要高。此外,我们分别将Beam Size取值为1、3、5、7,可以发现整体上随着Beam Size增大,方法效果更好,但是当增大到一定程度后效果提升幅度趋于收敛。

962a6f6f8b4e510bd93452c742d9876a.png
图6:离线Pareto曲线

此外,我们也观察了广告在不同展现位置的分布情况。在信息流场景中,通常越靠前的广告被展现和点击的概率越大,这里主要想要验证广告收入的提升是否来源于广告被展现在更靠前的位置上。我们统计了不同位置上的广告占比(该位置上的广告展现数量/总广告展现数量),如图7(为了更好呈现,我们将位置进行分组聚合,每4个位置为一组)。可以看到,本文提出的方法广告在各个位置上的分布更加均匀,广告整体平均位置(对应图中虚线)更靠后,靠前位置的广告占比明显降低,说明方法带来的效果提升,和展现位置无关,主要得益于全局广告分配效率的提升。

a23c524efe7efed648eeb2a63807c2e1.png
图7:离线实验的广告位置分布

4.2 在线效果

在线实验中,我们将HCA2E部署于手淘APP系统内,并观察其在几个信息流场景(首页猜你喜欢、收藏页、购物车、支付页、订单列表、物流信息等)的效果。从图8中可以看到,我们的方法相比固定位置的方法,在广告侧指标(第二栏)和推荐侧指标(第三栏)上均取得了提升,广告的平均展现位置(最后一栏)更靠后,和离线实验一致。

b4d8084dc9251bcd4dcdf89c4a7370d8.png
图8:多个信息流场景下的在线效果

另外,我们观察HCA2E方法和固定位置方法的商业化率随着时间的变化情况,发现HCA2E每天的商业化率波动很小(基本上在0附近),而固定位置下的商业化率则变化幅度较大。说明通过引入反馈调控的方法,商业化率的稳定性得到增强。

0b6f50327c198bad76106d6db2142205.png
图9:商业化率的天级变化情况

5. 总结与展望

信息流媒体是广告的流量来源,商业化流量的接入不仅要考虑到广告的收入,也要考虑对媒体效率以及用户体验的影响。通过个性化的商业化流量展现策略,实现更原生更贴合用户兴趣的浏览体验,这也是我们设计广告动态展现方案的出发点。在本文中,一方面我们给出了问题的理论最优解,另一方面我们也给出了在各项约束(机制、复杂度、用户体验)下的可行解。尽管目前已取得显著的业务效果,然而现有的版本还远远没有做到最优。未来的规划包括:

  • 跨场景与跨时段的商业化率分配:当前方案是每个场景独立分配的,而且商业化率的调控目标分时段也相同。实际上不同场景以及不同时段的流量分布是有明显差异的,而业务上的商业化率约束是全场景全天整体的。打破场景之间的独立分配模式,并实现不同时段的动态商业化率能够进一步提升整体分配的效率。

  • 序列生成&整页评估:我们将展示策略的优化拆分成了“候选序列生成”以及“序列优选”两步。然而考虑到业务以及复杂度约束,我们目前在这两步中都采取了较为简单的实现。进一步,我们可以尝试在序列优选时通过整页评估的模型建模上下文的影响,进而计算更加精确的背包增量。小流量实验显示,该方案能进一步大幅提升整体效率。

6. 关于我们

我们是阿里妈妈展示广告机制策略算法团队,致力于不断优化阿里展示广告技术体系,驱动业务增长,推动技术持续创新;我们不断升级工程架构以支撑阿里妈妈展示广告业务稳健&高效迭代,深挖商业化价值并优化广告主投放效果,孵化创新产品和创新商业化模式,优化广告生态健壮性;团队创新工作发表于 KDD、CIKM、WSDM、AAAI 等领域知名会议。在此真诚欢迎有ML背景的同学加入我们!

投递简历邮箱(请注明-展示广告机制策略):alimama_tech@service.alibaba.com

参考文献

  1. William Vickrey. 1961. Counterspeculation, auctions, and competitive sealed tenders. The Journal of finance 16, 1 (1961), 8–37.

  2. Hamid Nazerzadeh, Amin Saberi, and Rakesh Vohra. 2013. Dynamic pay-per action mechanisms and applications to online advertising. Operations Research 61, 1 (2013), 98–111.

  3. Deniz Dizdar, Alex Gershkov, and Benny Moldovanu. 2011. Revenue maxi mization in the dynamic knapsack problem. Theoretical Economics 6, 2 (2011), 157–184.

  4. Volker Steinbiss, Bach-Hiep Tran, and Hermann Ney. 1994. Improvements in beam search. In Third international conference on spoken language processing.

  5. Tore Hagglund and Karl J Astrom. 1995. PID controllers: theory, design, and tuning. ISA-The Instrumentation, Systems, and Automation Society (1995).

  6. Weiru Zhang, Chao Wei, Xiaonan Meng, Yi Hu, and Hao Wang. 2018. The whole page optimization via dynamic ad allocation. In Companion Proceedings of the The Web Conference 2018. 1407–1411.

  7. Jinyun Yan, Zhiyuan Xu, Birjodh Tiwana, and Shaunak Chatterjee. 2020. Ads Allocation in Feed via Constrained Optimization. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 3386–3394.

  8. Xiangyu Zhao, Xudong Zheng, Xiwang Yang, Xiaobing Liu, and Jiliang Tang. 2020. Jointly learning to recommend and advertise. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 3319–3327.

  9. Xiangyu Zhao, Xudong Zheng, Xiwang Yang, Xiaobing Liu, and Jiliang Tang. 2020. Jointly learning to recommend and advertise. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 3319–3327.

END

8acf9148185b9e1c724462a79d6aa079.gif

也许你还想看

面向在线广告全链路拍卖机制设计新突破 — Two-stage Auction

Deep GSP :面向多目标优化的工业界广告智能拍卖机制

阿里妈妈展示广告智能拍卖机制的演进之路

关注「阿里妈妈技术」,了解更多~

6843812d09bc1fd177a6760d5e39dba4.gif

喜欢要“分享”,好看要“点赞”ღ~

↓欢迎留言参与讨论↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/125784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7 常用类实例

常用类 1 object类 类的声明:public class object 类所属的包:java.lang object是所有类的根类Java中的所有类,如果没有特殊说明,则默认继承object object的派生类对象都可以调用这些方法,派生类一般会对根据需要重…

2022最新CKA认证指南看这里

目录 🧡CKA简介 🧡CKA报名 🧡注意事项 🧡题目 💟这里是CS大白话专场,让枯燥的学习变得有趣! 💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话&…

代码随想录——二叉树

二叉树遍历 基本介绍: 二叉树主要有两种遍历方式: 深度优先遍历:先往深走,遇到叶子节点再往回走。【前中后序遍历】广度优先遍历:一层一层的去遍历。【层序遍历】 这两种遍历是图论中最基本的两种遍历方式 深度优…

录制电脑内部声音,2个方法,轻松解决

在我们日常的学习、娱乐和工作中,我们经常会遇到需要使用电脑录屏的情况。在电脑录屏的时候,怎么录制电脑内部声音?今天小编分享2个方法,教你如何轻松解决这个问题,一起来看看吧。 录制电脑内部声音方法1:Q…

Python基于PyTorch实现BP神经网络ANN分类模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神…

什么是真正的骨传导耳机,五款真骨传导耳机推荐

市面上真假骨传导耳机不能辨别?真骨传导耳机是没有喇叭传播声音的,通过振子传播声音,我们在区分耳机是不是真骨传导耳机时,可以看看机身有没有喇叭音孔,有音孔的就不是利用骨传导传播声音的方式,下面就给大…

新的AI技术展望

“科学史是克服我们自身认知局限的不懈动力。”——约翰克拉考尔 这些是关于未来人工智能的话语。现在你可能在想,人工智能将如何影响我们,我们将如何处理它? 不用担心; 我有一个答案。AI(人工智能)已经在很多方面影…

easyexcel案例之类型转换,合并单元格,批注,下拉框,导入校验

文章目录easyexcel案例之类型转换,合并单元格,批注,下拉框,导入校验一、依赖二、导出1.类型转换导出2.自定义文件标题3.合并单元格导出注解方式通过 registerWriteHandler 方法注册进去自定义合并规则进行合并4.批注和下拉框导出批…

vulnhub DC系列 DC-2

总结:cewl和wpscan的使用,rbash逃逸,suid提权 下载地址 DC-2.zip (Size: 847 MB)Download: http://www.five86.com/downloads/DC-2.zipDownload (Mirror): https://download.vulnhub.com/dc/DC-2.zip使用方法:解压后,使用vm直接打开ova文件 漏…

MergeTree原理之二级索引

二级索引 除了一级索引之外,MergeTree同样支持二级索引,二级索引又称跳数索引,由数据的聚合信息构建而成。根据索引类型的不同,其聚合信息的内容也不同,当然跳数索引的作用和一级索引是一样的,也是为了查询…

【SpringCloud】什么是微服务?什么是SpringCloud?

【SpringCloud】什么是微服务?什么是SpringCloud? 一、什么是微服务? 1. 微服务架构的演变历程 单体架构 单体架构优缺点 2. 分布式架构 分布式架构优缺点 存在问题 3. 微服务 微服务的架构特征 微服务的优缺点 二、SpringClo…

头部3D建模新应用:护目镜类产品定制,省时高效好选择

自从越来越多人开始了运动健身,不少运动爱好者已经从小白用户升级为高级运动玩家。随着大家对运动装备的要求也越来越高,不少爱好者开始选购一些轻量化的私人订制装备。例如,高度符合用户头部外型的游泳眼镜、骑行护目镜等等。 游泳眼镜是为了…

用ACLS去控制访问文件

ACLs可以针对多个用户以及群组,其他人做出权限控制。文件系统需要挂载被ACL支持。XFS文件系统支持ACL。EXt4在7版本中默认激活ACL.但在更早的版本需要使用acl选项去挂载申请。 上图第十个字符.代表已经有了acl.表示已经设置ALC。文件的owner可以对文件设置ACL. get…

【结构型】组合模式(Composite)

目录组合模式(Composite)适用场景组合模式实例代码(Java)组合模式(Composite) 将对象组合成树型结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 适用场景 想表示对象的部分-整体层次结构。希望用户忽略…

Java判断null的几种方式

组内code review时,有同学提到字符串判断空值的写法,如下两种,(1)null在后,Test public void testDemo1() {String str null;if (str null) {System.out.println("null在后");return;} }&#…

计算机的人机交互

1、 计算机的人机交互发展历史 计算机在刚开始出现的时候,因为占地广、造价高、耗电高的原因,一般都是给军队、政府使用的,并不是给个人使用的。随着计算机的发展,体积越来越小,出现了微型机,才使得计算机…

C# 数据库 ADO.NET概述

一 数据库 1 数据库(Database) 2 数据库管理系统(DBMS) 如Oracle,MS SQL Server 3 数据库系统的优点 共享性、独立性、完整性、冗余数据少。 4 管理功能 数据定义/操纵/完整/完全/并发 二 常用的数据库管理系统 1 微软的…

剑指offer----C语言版----第二天

目录 1. 二维数组中的查找 1.1 题目描述 1.1 思路一 1.2 思路二 1.3 思路三(最优解) 1. 二维数组中的查找 原题链接:剑指 Offer 04. 二维数组中的查找 - 力扣(LeetCode)https://leetcode.cn/problems/er-wei-shu-…

WinServer 2012 域控组策略 用户发布软件部署

本例演示安装 Notepad 这款软件 因为域中发布软件只支持 msi 格式,所以要把 exe 转成 msi 格式,可以用这个软件 https://www.advancedinstaller.com/ 1、转换格式 (1)选择 MSI from EXE (2)定义项目名…

PLC实现十字路口交通灯的控制课程设计毕业设计

微信公众号:创享日记 对话框发送:plc十字路口 获取完整源码源程序文件 要求: 1、信号灯受启动及停止按钮的控制,当按下启动按钮时,信号灯系统开始工作,并周而复始地循环工作,当按下停止按钮时&…