javascriptOT算法在协同编辑中的应用yangyiliang

协同编辑的场景是在同一房间内,所有人都可同时操作编辑器内容,关键是让所有人看到的内容是一致的,这里面涉及的技术就包括了web编辑器,消息的广播和保证内容一致的算法,我们今天讨论的是保证内容一致的算法。

让我们看下实现保证内容一致的一些思路:

两个用户,开始的内容都是AAAZ,同时操作,经过传递和转换之后两端的内容就不一致了。OT协同算法的核心就是解决该问题。

OT算法的关键技术点总结为四点:定义原子操作、版本确认机制、操作转换、客户端状态转移,下面就分别讲解。

OT算法中对于内容的操作抽象为三种:

每次对于整个文本的处理都可以用一个有上述3中原子操作的数组表示。下面我举一些直观的例子。

编辑器和服务端之间传输的就是这种操作数组,当收到之后会将其转换为操作对象,定义如下:

functionTextOperation(){this.ops=[];this.baseLength=0;this.targetLength=0;}其中除了this.ops记录操作数组之外,还增加了两个属性this.baseLength和this.targetLength。

举个复杂的例子:

操作转换是OT算法的核心,它的核心公式是:

客户端每次操作不会立刻增加版本,而是要等待服务端的确认后增加版本,同时客户端的操作在没有被服务端确认之前,是不会继续发送新的操作,而是将要发送的操作进行缓存,等待确认后再进行发送,这里客户端就维护了三种状态,除了客户端的发送之外,还可能从服务端接受操作,不通的状态客户端会有不同的处理。

以上讲解了OT算法的关键技术,下面就针对需要进行OT操作的场景进行分析。

OT算法和一整套完整的设计,确实解决了协同操作的问题,本文通过分析纯文本的协同,讲清楚最核心的关键技术点。对于更复杂的场景则需要设计的原子操作和操作转换算法也会更加的复杂。比如腾讯的在线文档,除了文本之外,还需要同步样式、图片元素等等。留一个问题:既然OT算法可以解决协同操作问题,为什么在使用腾讯在线excel的过程中发现多个人同时操作一个表格单元的时候,会出现相互覆盖的问题?

THE END
1.国网智能电网研究院有限公司取得一种云边协同任务调度方法及装置专国网智能电网研究院有限公司取得一种云边协同任务调度方法及装置专利 金融界2024年12月18日消息,国家知识产权局信息显示,国网智能电网研究院有限公司取得一项名为“一种云边协同任务调度方法及装置”的专利,授权公告号 CN 114595049 B,申请日期为2022年3月。 本文源自:金融界 作者:情报员https://www.163.com/dy/article/JJM76AKT0519QIKK.html
2.武汉大学学报(理学版)2.4 基于深度学习的推荐算法的特点 深度学习技术赋予了推荐算法强大的非线性表示能力,使得基于深度学习的推荐算法取得了更好的推荐效果。基于表征的推荐算法,以用户与物品的嵌入向量作为媒介来实现推荐。基于深度协同过滤的推荐算法,本质上也是想获得更好的用户与物品表示,可以通过融入辅助信息来进一步提升推荐效果。基于特征http://xblx.whu.edu.cn/zh/article/20898290/
3.交通流诱导与控制协同的双目标优化模型及准最优求解算法【摘要】:提出了一种基于消散拥堵和系统总出行时间最小的双目标诱导控制协同优化模型,算法引入饱和度的概念,采用小步距微量调整信号配时、试算优化的方法,适当加载或卸载交通量,优化交叉口信号配时,使交通流在不断反馈与不断调整过程中达到最优。采用VISSIM建立模拟路网进行了协同算法试验,并对协同实施效果进行了评价https://www.cnki.com.cn/Article/CJFDTotal-JLGY200702013.htm
4.推荐系统算法实战:从协同过滤到深度学习的架构演进推荐系统是一种信息过滤系统,它可以帮助用户发现和推荐他们可能感兴趣的内容,如商品、音乐、视频等。推荐系统可以分为多个类型,其中基于内容的推荐和协同过滤是比较常见的方法。 协同过滤推荐算法 协同过滤是一种常用的推荐系统算法,它基于用户对项目的评价来发现用户之间的相似性,并利用这种相似性来推荐项目。协同过滤又https://www.jianshu.com/p/8d3164c44113
5.第13届全国计算机支持的协同工作与社会计算学术会议近年来,基于矩阵分解方法的协同过滤算法成为当前推荐系统中最流行的推荐算法之一。在真实的推荐系统中,由于训练数据异构、稀疏并且噪声大,矩阵分解方法难以训练出具有较强泛化能力的模型,导致模型在测试数据上的准确性较差。 针对上述问题,本报告重点介绍下述三个工作:1)一种稳定的矩阵分解算法来降低矩阵分解算法的uniformhttps://www.scholat.com/confweb/ChineseCSCW/qingnianluntan.jsp
6.TCCT通讯Newsletter2017No.01求解PFSP的双种群协同学习算法 控制与决策, 2017 Vol. 32 (01): 12-20 Abstract | PDF 李滔 王士同 适合大规模数据集且基于LLM的0阶TSK模糊分类器 控制与决策, 2017 Vol. 32 (01): 21-30 Abstract | PDF 孙晓燕 张鹏飞 陈杨 时良振 混合比较区间多目标进化优化及在矿井RFID布局的应用 控制与决策, https://tcct.amss.ac.cn/newsletter/2017/201701/journal.html
7.推荐系统之协同过滤推荐算法:DeepCollaborativeFiltering:基于想预览更多内容,点击免费在线预览全文 免费在线预览全文 PAGE1 PAGE1 推荐系统之协同过滤推荐算法:DeepCollaborativeFiltering:基于模型的协同过滤:矩阵分解 1推荐系统概述 1.1推荐系统的基本概念 推荐系统是一种信息过滤系统,其主要目标是预测用户对未接触过的项目可能的兴趣,从而向用户推荐他们可能喜欢的项目。这种系统广泛https://max.book118.com/html/2024/0905/7101021005006150.shtm
8.协同过滤推荐算法(一)原理与实现腾讯云开发者社区协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-basedhttps://cloud.tencent.com/developer/article/2098165
9.十个优秀开源推荐系统/算法/资源基于内容的推荐或者协同过滤算法各有优缺点。为了更准确地推荐产品,还可以使用混合推荐算法,即同时使用基于内容和协同过滤推荐产品。混合推荐算法具有更高的效率和更好的实用性。 三、10个最佳开源推荐系统相关资源 为了进一步理解推荐系统,以下收集了一些用于学习或者开发的最佳开源项目,包括:学习资源、开发包、完整的推荐https://www.easemob.com/news/10998
10.202210313)在线实验 在完成离线实验和用户调查之后,可以将系统上线做AB测试,将它和旧算法进行比较。 在线实验最常用的评测算法是【A/B测试】,它通过一定的规则将用户随机分成几组,对不同组的用户采用不同的算法,然后通过统计不同组的评测指标,比较不同算法的好坏。 https://blog.csdn.net/nalidour/article/details/127624390
11.如何从0到1构建个性化推荐?文化&方法DataFunTalk另外针对业务特殊性,我们改进了职位相似度的计算,加入了职位相似度控制,避免求职目标发散的用户影响职位关系的组织。算法上线后,在点击率、投递率方面都取得了正向收益,其中详情页的相关职位推荐提升超过 25%。 3.3 Embedding 深度召回探索 协同过滤虽然取得了不错的业务收益,但其依赖于用户与物品的行为矩阵,对于行为https://www.infoq.cn/article/achZrHOlReKP441kXJOQ
12.协同研发Heywhale和鲸(官网)和鲸协同研发服务,旨在以平台化的方式,高效解决企业与机构在发展数据智能竞争力、进行数据化转型时,所面临的人才稀缺、任务繁重、课题挑战大、尝试成本高等问题。平台聚合优秀数据人才的力量,通过相互交流、内外协作,进行高水平的研发探索,为企业与机构一系列重要、创新的数据科学难题找到优质解决方案。和鲸定制化的咨询服https://kesci.com/about/collaboration
13.融合用户属性信息的冷启动推荐算法AET最常见的协同过滤算法是KNN[13]。协同过滤最大的困难在于需要大量的用户历史数据,对于新用户而言,缺乏历史数据使得系统难以计算他和其余用户的相似性,难以定位用户的兴趣与需求,从而降低了为新用户推荐的准确性——这个问题被称作冷启动(cold start)问题。http://www.chinaaet.com/article/3000073409